diff --git a/README.md b/README.md index dd060860..ac724feb 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ A repository of `provider` interface documents supporting [stackql](https://stac StackQL provider interface documents inform the stackql application on how to interact with a given provider (like `aws`, `azure`, `google`, etc), including what methods are available in the provider and how to invoke these using SQL semantics. Provider interface documents are `yaml` formatted, OpenAPI specifications with extensions. -The documents are versioned per provider in this repository, and built as signed and compressed as packaged artifacts. The packaged artifacts are registered and published to the StackQL Provider Registry Artifact Repository in AWS S3. The provider registry API is a [Deno Deploy](https://deno.com/deploy) application that serves the provider interface documents to the stackql application using the `REGISTRY LIST` and `REGISTRY PULL` commands. +The documents are versioned per provider in this repository, and built as signed and compressed packaged artifacts. The packaged artifacts are registered and published to the StackQL Provider Registry Artifact Repository in AWS S3 (the master/archive store). The full docs tree is then mirrored to Cloudflare R2 and served at the edge by a Cloudflare Worker (source in [origin/](origin/)), which provides the provider interface documents to the stackql application using the `REGISTRY LIST` and `REGISTRY PULL` commands. The following diagram shows the context of the provider registry: @@ -20,26 +20,24 @@ C4Context System_Ext(github_repo, "stackql-provider-registry", "GitHub Repository") System_Ext(github_actions, "Build and Deploy", "GitHub Actions") SystemDb(artifact_repo, "Artifact Repository", "AWS S3") - System(deno_registry, "Provider Registry API", "Deno Deploy") + SystemDb(r2_bucket, "Docs Mirror", "Cloudflare R2") + System(cf_worker, "Provider Registry Origin", "Cloudflare Worker") System(stackql, "StackQL Application", "stackql") Rel(github_repo, github_actions, "triggers...") Rel(github_actions, artifact_repo, "registers and pushes to...", "signed tgz package") - Rel(github_actions, deno_registry, "pushes to...", "signed tgz package") - Rel(stackql, deno_registry, "list and pulls registry docs from...", "REGISTRY LIST | REGISTRY PULL") + Rel(github_actions, r2_bucket, "syncs docs tree to...") + Rel(cf_worker, r2_bucket, "reads provider docs from...") + Rel(stackql, cf_worker, "list and pulls registry docs from...", "REGISTRY LIST | REGISTRY PULL") UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="0") - UpdateRelStyle(github_repo, github_actions, $offsetY="10", $offsetX="-20") - UpdateRelStyle(github_actions, artifact_repo, $offsetY="44", $offsetX="-55") - UpdateRelStyle(github_actions, deno_registry, $offsetY="-18", $offsetX="-130") - UpdateRelStyle(stackql, deno_registry, $offsetY="40", $offsetX="-40") ``` -The public StackQL Provider Registry is distributed via [Deno Deploy](https://deno.com/deploy), using the following endpoints: +The public StackQL Provider Registry is served from Cloudflare, using the following endpoints: | Endpoint | Description | | --- | --- | | [registry.stackql.app](https://registry.stackql.app/ping) | Production registry (built from `main`) | -| [registry-dev.stackql.app](https://registry.stackql.app/ping) | Development registry (built from `develop`) | +| [registry-dev.stackql.app](https://registry-dev.stackql.app/ping) | Development registry (built from `dev`) | ## Contributing @@ -53,7 +51,7 @@ Once you have an OpenAPI specification, you can use the [openapisaurus](https:// ## Build and Deployment Workflow -The provider registry is built and deployed using GitHub Actions. Provider documents are validated and tested in workflow steps and then packaged and stored in the artifact repository. The most recent packaged versions are published to the registry API (a [Deno Deploy](https://deno.com/deploy) application), where they are available from the `stackql` application using `REGISTRY LIST` or `REGISTRY PULL`. See [docs/build-and-deployment.md](docs/build-and-deployment.md) for more information. +The provider registry is built and deployed using GitHub Actions. Provider documents are validated and tested in workflow steps and then packaged and stored in the artifact repository. The reconstructed docs tree is mirrored to Cloudflare R2 and served by the Cloudflare Worker origin, where the provider documents are available from the `stackql` application using `REGISTRY LIST` or `REGISTRY PULL`. See [docs/build-and-deployment.md](docs/build-and-deployment.md) for more information. A separate workflow guards against providers being deleted from `providers/src` on any push; intentional removals require an explicit override in the commit message. See [provider delete guard](docs/build-and-deployment.md#provider-delete-guard) for details. diff --git a/origin/README.md b/origin/README.md index 64e65311..98457e91 100644 --- a/origin/README.md +++ b/origin/README.md @@ -1,9 +1,7 @@ # StackQL Provider Registry origin (Cloudflare Worker) Origin server for the public StackQL provider registry, served from Cloudflare -Workers + R2 (docs) + D1 (download analytics). This is the "green" origin in the -blue-green migration away from Deno Deploy. It preserves the existing URL -contract exactly: +Workers + R2 (docs) + D1 (download analytics). The URL contract is: | Request | Response | | ------------------------------------------ | ----------------------------------------------------- | @@ -16,7 +14,7 @@ contract exactly: | any non-GET method | 405 | Docs are read from the R2 binding `REGISTRY_BUCKET` using the request path with -the leading slash stripped (the same layout the Deno origin read from disk). +the leading slash stripped as the object key (`providers/dist/...`). Analytics are written one row per `.tgz` pull to the D1 binding `ANALYTICS_DB` inside `ctx.waitUntil`, so logging never adds latency to a pull. @@ -26,7 +24,7 @@ inside `ctx.waitUntil`, so logging never adds latency to a pull. origin/ wrangler.toml two envs: dev (dev branch) and production (main branch) schema.sql D1 downloads table + index - src/index.ts the Worker (port of deno-deploy-registry/website/index.ts) + src/index.ts the Worker package.json wrangler + types ``` @@ -66,10 +64,12 @@ npm install npx wrangler d1 execute stackql-registry-analytics-dev --local --file=./schema.sql # seed a known object pair into the dev bucket so the endpoint checks pass +# ( is a local copy of the reconstructed registry docs tree, e.g. a +# `providers/dist` directory pulled from the artifact repository) npx wrangler r2 object put stackql-provider-registry-dev/providers/dist/providers.yaml \ - --file=../tmp/deno-deploy-registry/website/providers/dist/providers.yaml + --file=/providers/dist/providers.yaml npx wrangler r2 object put stackql-provider-registry-dev/providers/dist/aws/v0.1.3.tgz \ - --file=../tmp/deno-deploy-registry/website/providers/dist/aws/v0.1.3.tgz + --file=/providers/dist/aws/v0.1.3.tgz npm run dev ``` @@ -88,8 +88,8 @@ curl -i http://localhost:8787/analytics/last24hours # 200 applicati curl -i -X POST http://localhost:8787/ping # 405 ``` -Note: `localhost` Host headers are intentionally not logged to D1 (matches the -Deno origin). Test analytics writes against a deployed hostname. +Note: `localhost` Host headers are intentionally not logged to D1. Test +analytics writes against a deployed hostname. ## Deploy diff --git a/origin/src/index.ts b/origin/src/index.ts index e26a42ac..9a42a6b3 100644 --- a/origin/src/index.ts +++ b/origin/src/index.ts @@ -1,8 +1,7 @@ /** - * StackQL Provider Registry origin - Cloudflare Worker (green). + * StackQL Provider Registry origin - Cloudflare Worker. * - * Port of the Deno Deploy origin (deno-deploy-registry/website/index.ts). - * The URL contract is preserved exactly: + * The URL contract: * * GET (anything).tgz -> 200 application/gzip, log one download event * GET (anything)providers.yaml -> 200 text/plain, not logged @@ -31,7 +30,7 @@ interface RequestMetadata { function extractRequestMetadata(request: Request): RequestMetadata { return { - // Deno used conn.remoteAddr.hostname; on Cloudflare the real client IP is here. + // On Cloudflare the real client IP is in the CF-Connecting-IP header. ipAddr: request.headers.get('CF-Connecting-IP') || '', ts: new Date().toISOString(), userAgent: request.headers.get('user-agent') || '', @@ -362,7 +361,7 @@ async function handleRequest(request: Request, env: Env, ctx: ExecutionContext): }); } - // R2 key mirrors the Deno on-disk layout: `.${pathname}` -> strip the leading slash + // R2 key is the request path with the leading slash stripped (`providers/dist/...`) const key = pathname.replace(/^\//, ''); const obj = await env.REGISTRY_BUCKET.get(key); diff --git a/origin/wrangler.toml b/origin/wrangler.toml index f32bf070..ce34e2cb 100644 --- a/origin/wrangler.toml +++ b/origin/wrangler.toml @@ -1,9 +1,9 @@ # -# StackQL Provider Registry origin Worker (green). +# StackQL Provider Registry origin Worker. # -# Two environments mirror the existing dev/prod Deno Deploy split: -# - `dev` -> deployed from the `dev` branch (cutover host: registry-dev.stackql.app) -# - `production` -> deployed from the `main` branch (cutover host: registry.stackql.app) +# Two environments: +# - `dev` -> deployed from the `dev` branch (host: registry-dev.stackql.app) +# - `production` -> deployed from the `main` branch (host: registry.stackql.app) # # Named environments do NOT inherit top-level bindings, so each environment # declares its own R2 + D1 bindings explicitly. The top-level block below is diff --git a/providers/src/deno/v00.00.00000/provider.yaml b/providers/src/deno/v00.00.00000/provider.yaml index 552da320..2efcd861 100644 --- a/providers/src/deno/v00.00.00000/provider.yaml +++ b/providers/src/deno/v00.00.00000/provider.yaml @@ -2,52 +2,128 @@ id: deno name: deno version: v00.00.00000 providerServices: - database: - id: database:v00.00.00000 - name: database + apps: + id: apps:v00.00.00000 + name: apps preferred: true service: - $ref: deno/v00.00.00000/services/database.yaml - title: database API + $ref: deno/v00.00.00000/services/apps.yaml + title: apps API version: v00.00.00000 - description: Operations about databases - deployment: - id: deployment:v00.00.00000 - name: deployment + description: >- + An app is the top-level container for a deployable application. + + Apps have configuration (build settings, environment variables), can + reference layers for shared config, and contain revisions (deployments). + + + **Key characteristics:** + + + - Identified by UUID or human-readable slug. App slugs must be 3–32 + characters long, may contain only lowercase letters, numbers, and hyphens, + cannot contain underscores, must not start or end with a hyphen, must not + have consecutive hyphens in positions 3 and 4, and cannot be a reserved + slug. App IDs are UUIDs. + + - Support up to 5 labels for filtering and grouping + + - Reference layers via `layers` array for inherited configuration + + - Have app-specific `env_vars` that override layer values + + - Have a `config` that provides defaults for revisions + databases: + id: databases:v00.00.00000 + name: databases preferred: true service: - $ref: deno/v00.00.00000/services/deployment.yaml - title: deployment API + $ref: deno/v00.00.00000/services/databases.yaml + title: databases API version: v00.00.00000 - description: Operations about deployments - domain: - id: domain:v00.00.00000 - name: domain + description: >- + Create database instances (BYO Postgres, Deno KV, Prisma) and bind the + manual databases hosted on them. Manual databases are bound to one of an + app's timelines (`production`, `preview`, etc.) and coexist with the + per-timeline databases provisioned by default. Use the deploy endpoint's + `databases` parameter to bind a specific manual database to an individual + revision without affecting other revisions on the timeline. + domains: + id: domains:v00.00.00000 + name: domains preferred: true service: - $ref: deno/v00.00.00000/services/domain.yaml - title: domain API + $ref: deno/v00.00.00000/services/domains.yaml + title: domains API version: v00.00.00000 - description: Operations about domains - organization: - id: organization:v00.00.00000 - name: organization + description: >- + A domain is a hostname (apex or wildcard) owned by an organization. Once + registered, a domain must be verified via a DNS-published + `_acme-challenge.` token, then receives a TLS certificate + (uploaded manually or provisioned via ACME). + + + **Lifecycle:** + + + 1. `POST /domains` — register the domain and receive the DNS records to + publish. + + 2. `POST /domains/{domainId}/verify` — re-runs DNS verification once + records propagate. + + 3. Either `POST /domains/{domainId}/certificates` (manual) or `POST + /domains/{domainId}/certificates/provision` (automatic ACME). + + 4. Attach to revisions via deploy or per-revision endpoints. + layers: + id: layers:v00.00.00000 + name: layers preferred: true service: - $ref: deno/v00.00.00000/services/organization.yaml - title: organization API + $ref: deno/v00.00.00000/services/layers.yaml + title: layers API version: v00.00.00000 - description: Operations about organizations - project: - id: project:v00.00.00000 - name: project + description: >- + A layer is a mutable configuration object that can be shared across + multiple apps. Layers provide the solution for bulk environment variable + management: instead of updating thousands of apps individually, you create + a layer, attach it to apps, then update the layer once. + + + **Key characteristics:** + + + - Organization-scoped and identified by ID or slug + + - Contain environment variables + + - Can include other layers (base layers) for hierarchical configuration + + - Apps reference layers in their `layers` array + + - Updating a layer is O(1) regardless of how many apps reference it + + - Layer updates cause running isolates to restart but do not require + redeployment + revisions: + id: revisions:v00.00.00000 + name: revisions preferred: true service: - $ref: deno/v00.00.00000/services/project.yaml - title: project API + $ref: deno/v00.00.00000/services/revisions.yaml + title: revisions API version: v00.00.00000 - description: Operations about projects + description: >- + A revision represents a specific build and deployment of an app. Revisions + are immutable once created — to make changes, you create a new revision. + The only mutable property is `retention` (enterprise opt-in), a + garbage-collection policy of `auto` or `indefinite`. + + + Status lifecycle: `queued` → `building` → `succeeded` (success), `queued` + → `failed` (build error, cancelled, or timeout), or `queued` → `skipped`. config: auth: - credentialsenvvar: DENO_DEPLOY_TOKEN type: bearer + credentialsenvvar: DENO_DEPLOY_TOKEN diff --git a/providers/src/deno/v00.00.00000/services/apps.yaml b/providers/src/deno/v00.00.00000/services/apps.yaml new file mode 100644 index 00000000..b4f1a315 --- /dev/null +++ b/providers/src/deno/v00.00.00000/services/apps.yaml @@ -0,0 +1,911 @@ +openapi: 3.1.1 +info: + title: apps API + description: |- + An app is the top-level container for a deployable application. + Apps have configuration (build settings, environment variables), can reference layers for shared config, and contain revisions (deployments). + + **Key characteristics:** + + - Identified by UUID or human-readable slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + - Support up to 5 labels for filtering and grouping + - Reference layers via `layers` array for inherited configuration + - Have app-specific `env_vars` that override layer values + - Have a `config` that provides defaults for revisions + version: 2.0.0 +paths: + /v2/apps/{app}: + get: + operationId: apps.get + summary: Get app details + description: Get detailed information about an app, including labels, layers, environment variables, and config. + tags: + - apps + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/App' + patch: + operationId: apps.update + summary: Update app + description: |- + All fields are optional. `labels` and `layers` replace the entire value. `env_vars` performs a deep merge with existing variables. `config` replaces the entire deploy config (no deep merge). + + Updating `layers` or `env_vars` will restart running isolates. + tags: + - apps + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + slug: + type: string + description: New app slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. + labels: + $ref: '#/components/schemas/Labels' + description: Replace all labels + layers: + type: array + items: + $ref: '#/components/schemas/LayerRefInput' + description: Replace all layer references + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVarUpdate' + description: Deep merge with existing environment variables + config: + $ref: '#/components/schemas/Config' + description: Replace the entire deploy config + required: [] + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/App' + delete: + operationId: apps.delete + summary: Delete app + description: Delete an app and all its revisions. + tags: + - apps + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + responses: + '204': + description: OK + /v2/apps: + get: + operationId: apps.list + summary: List apps + description: |- + List apps with optional filtering by labels or layer. + + Use `labels[key]=value` query parameters to filter by label values. Use `layer` to filter apps that reference a specific layer. + tags: + - apps + parameters: + - name: cursor + in: query + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The pagination cursor + - name: limit + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + allowEmptyValue: true + allowReserved: true + description: The maximum number of items to return + - name: layer + in: query + schema: + type: string + style: deepObject + explode: true + allowEmptyValue: true + allowReserved: true + description: Layer ID or slug. Slugs cannot contain underscores; IDs always do. + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AppListItem' + post: + operationId: apps.create + summary: Create app + description: Apps can reference layers for shared configuration, have app-specific environment variables, and a config that provides defaults for revisions. + tags: + - apps + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + slug: + type: string + description: App slug. If omitted, a random slug is generated. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. + labels: + $ref: '#/components/schemas/Labels' + description: Key-value labels for filtering and grouping (max 5) + layers: + type: array + items: + $ref: '#/components/schemas/LayerRefInput' + description: Layers to reference for inherited configuration + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVarInput' + description: App-specific environment variables + config: + $ref: '#/components/schemas/Config' + description: Default build and runtime configuration + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/App' + /v2/apps/{app}/analytics: + get: + operationId: apps.analytics + summary: Get app analytics + description: |- + Get fixed app-scoped usage analytics in a Deploy Classic-style table envelope. + + The response contains only `fields` and `values`. The current Phase 1 response returns these fields: `time`, `request_count`, `cpu_seconds`, `runtime_seconds`, `memory_time_byte_seconds`, `network_ingress_bytes`, `network_egress_bytes`, `kv_read_units`, and `kv_write_units`. Clients should map row values by `fields[].name` instead of column position; future responses may include additional fields. Buckets are fixed 15-minute UTC buckets, and only buckets fully contained in the effective `[since, until)` range are returned. Recent buckets may be delayed or updated as telemetry is ingested, and missing rollup rows inside the returned range are zero-filled. Data is available from the analytics rollup rollout time onward and is not invoice-authoritative billing data. + tags: + - apps + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + - name: since + in: query + required: false + schema: + type: string + format: date-time + minLength: 1 + allowReserved: true + description: Inclusive lower bound as a non-empty RFC 3339 timestamp + - name: until + in: query + required: false + schema: + type: string + format: date-time + minLength: 1 + allowReserved: true + description: Exclusive upper bound as a non-empty RFC 3339 timestamp + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsResponse' + /v2/apps/{app}/logs: + get: + operationId: apps.logs + summary: Get or stream logs + description: |- + Query historical runtime logs, or stream them using Server-Sent Events or JSONL. + + When `end` is specified, returns paginated JSON. + When `end` is omitted, streams logs in real-time using SSE or JSONL. + + Requesting `Accept: application/json` without `end` will return an error. + tags: + - apps + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + - name: start + in: query + schema: + type: string + format: date-time + description: Start of the time range (ISO 8601) + allowEmptyValue: true + allowReserved: true + description: Start of the time range (ISO 8601) Required by the API on every request. + - name: end + in: query + required: false + schema: + type: string + format: date-time + description: End of the time range (ISO 8601). If omitted, logs are streamed in real-time + allowEmptyValue: true + allowReserved: true + description: End of the time range (ISO 8601). If omitted, logs are streamed in real-time + - name: revision_id + in: query + required: false + schema: + type: string + description: Filter logs by revision ID + allowEmptyValue: true + allowReserved: true + description: Filter logs by revision ID + - name: level + in: query + required: false + schema: + enum: + - debug + - info + - warn + - error + description: Minimum log severity level + type: string + style: deepObject + explode: true + allowEmptyValue: true + allowReserved: true + description: Minimum log severity level + - name: query + in: query + required: false + schema: + type: string + description: Full-text search query + allowEmptyValue: true + allowReserved: true + description: Full-text search query + - name: cursor + in: query + required: false + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The pagination cursor + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 1000 + default: 100 + allowEmptyValue: true + allowReserved: true + description: The maximum number of items to return + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/RuntimeLogsResponse' +components: + schemas: + App: + type: object + properties: + id: + type: string + format: uuid + description: Unique app identifier (UUID) + slug: + type: string + description: Human-readable app slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. + labels: + $ref: '#/components/schemas/Labels' + description: User-defined key-value labels for filtering and grouping + layers: + type: array + items: + $ref: '#/components/schemas/LayerRef' + description: Layers referenced by this app, in priority order (later overrides earlier) + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVar' + description: App-specific environment variables + config: + $ref: '#/components/schemas/ConfigOutput' + description: Default build and runtime configuration for new revisions + updated_at: + type: string + description: ISO 8601 timestamp of last modification + created_at: + type: string + description: ISO 8601 timestamp of creation + required: + - id + - slug + - layers + - updated_at + - created_at + example: + id: 00000000-0000-0000-0000-000000000000 + slug: my-customer-app + labels: + custom.customer_id: cust_123 + custom.environment: production + layers: + - id: lyr_abc123 + slug: shared-secrets + env_vars: + - id: 00000000-0000-0000-0000-000000000000 + key: APP_NAME + value: My Customer App + secret: false + contexts: all + config: + framework: nextjs + install: npm install + build: npm run build + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + Labels: + type: object + additionalProperties: + type: string + description: '(JSON value: string or array)' + example: + custom.customer_id: cust_123 + custom.environment: production + custom.regions: + - us-east + - eu-west + LayerRefInput: + type: string + description: Layer ID to reference / Layer slug to reference + EnvVarUpdate: + type: object + properties: + id: + type: string + description: ID of the existing variable to update or delete + key: + type: string + minLength: 1 + maxLength: 128 + description: Variable name. Used for matching when `id` is not provided + value: + type: string + maxLength: 65536 + description: New value for the variable + secret: + type: boolean + description: Whether to mask the value in API responses + contexts: + description: 'Deployment contexts this variable applies to (JSON value: string or array)' + type: string + delete: + type: boolean + description: Set to true to remove this variable + example: + id: 00000000-0000-0000-0000-000000000000 + value: postgres://prod-host/db + Config: + type: object + properties: + framework: + enum: + - '' + - nextjs + - astro + - nuxt + - remix + - solidstart + - tanstackstart + - sveltekit + - fresh + - lume + description: Framework preset. Mutually exclusive with `runtime` + type: string + install: + description: Custom install command. Omit to skip the install step + nullable: true + type: string + build: + description: Custom build command. Omit to skip the build step + nullable: true + type: string + predeploy: + description: Command to run before each deployment (e.g. database migrations). Omit to skip + nullable: true + type: string + runtime: + $ref: '#/components/schemas/Runtime' + description: Runtime configuration. Mutually exclusive with `framework` + crons: + type: boolean + description: Whether cron jobs are enabled for revisions of the app. When false, revisions that register cron jobs using Deno.cron fail to build. Defaults to true + example: + framework: nextjs + install: npm install + build: npm run build + AppListItem: + type: object + properties: + id: + type: string + format: uuid + description: Unique app identifier (UUID) + slug: + type: string + description: Human-readable app slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. + labels: + $ref: '#/components/schemas/Labels' + description: User-defined key-value labels + layers: + type: array + items: + $ref: '#/components/schemas/LayerRef' + description: Layers referenced by this app, in priority order (later overrides earlier) + updated_at: + type: string + description: ISO 8601 timestamp of last modification + created_at: + type: string + description: ISO 8601 timestamp of creation + required: + - id + - slug + - layers + - updated_at + - created_at + EnvVarInput: + type: object + properties: + key: + type: string + minLength: 1 + maxLength: 128 + description: The environment variable name + value: + type: string + maxLength: 65536 + description: The environment variable value + secret: + type: boolean + description: Whether to mask the value in API responses. Defaults to false + contexts: + description: 'Deployment contexts this variable applies to. Defaults to `"all"`. (JSON value: string or array)' + type: string + required: + - key + - value + example: + key: DATABASE_URL + value: postgres://localhost/dev + AnalyticsResponse: + type: object + properties: + fields: + type: array + items: + type: object + properties: + name: + type: string + description: 'Field name. The current Phase 1 response returns: time, request_count, cpu_seconds, runtime_seconds, memory_time_byte_seconds, network_ingress_bytes, network_egress_bytes, kv_read_units, and kv_write_units. Future responses may include additional fields.' + type: + enum: + - time + - number + description: Field value type. + type: string + required: + - name + - type + description: 'Analytics table fields. The current Phase 1 response returns these fields: time, request_count, cpu_seconds, runtime_seconds, memory_time_byte_seconds, network_ingress_bytes, network_egress_bytes, kv_read_units, and kv_write_units. Clients should map row values by field name instead of column position; future responses may include additional fields.' + values: + type: array + items: + type: array + items: + type: string + description: '(JSON value: string or number)' + description: Per-bucket analytics rows. The first column is the bucket start time. + required: + - fields + - values + example: + fields: + - name: time + type: time + - name: request_count + type: number + - name: cpu_seconds + type: number + - name: runtime_seconds + type: number + - name: memory_time_byte_seconds + type: number + - name: network_ingress_bytes + type: number + - name: network_egress_bytes + type: number + - name: kv_read_units + type: number + - name: kv_write_units + type: number + values: + - - '2026-06-01T00:00:00Z' + - 1200 + - 43.12 + - 900 + - 966367641600 + - 10485760 + - 20971520 + - 900 + - 126 + RuntimeLogsResponse: + type: object + properties: + logs: + type: array + items: + $ref: '#/components/schemas/RuntimeLog' + description: Array of log entries + next_cursor: + description: Cursor for fetching the next page, or null if no more results + nullable: true + type: string + required: + - logs + - next_cursor + example: + logs: + - timestamp: '2024-01-15T10:30:00.123Z' + level: info + message: Handling request + revision_id: r2ysnrrhr352 + region: us-east-1 + - timestamp: '2024-01-15T10:30:00.456Z' + level: error + message: Database connection failed + revision_id: r2ysnrrhr352 + region: us-east-1 + next_cursor: eyJsYXN0X3RpbWVzdGFtcCI6... + LayerRef: + type: object + properties: + id: + type: string + description: Unique layer identifier + slug: + type: string + description: Human-readable layer slug + required: + - id + - slug + example: + id: lyr_abc123 + slug: shared-secrets + EnvVar: + type: object + properties: + id: + type: string + description: Unique identifier for the environment variable + key: + type: string + description: The environment variable name + value: + type: string + description: The value. Omitted when `secret` is true + secret: + type: boolean + description: Whether the value is masked in API responses + contexts: + description: 'Deployment contexts this variable applies to. `"all"` means every context. (JSON value: string or array)' + type: string + required: + - id + - key + - secret + - contexts + example: + id: 00000000-0000-0000-0000-000000000000 + key: DATABASE_URL + value: postgres://localhost/dev + secret: false + contexts: all + ConfigOutput: + type: object + properties: + framework: + enum: + - '' + - nextjs + - astro + - nuxt + - remix + - solidstart + - tanstackstart + - sveltekit + - fresh + - lume + description: Framework preset used for this build + type: string + install: + description: Install command. Null if skipped + nullable: true + type: string + build: + description: Build command. Null if skipped + nullable: true + type: string + predeploy: + description: Pre-deploy command. Null if skipped + nullable: true + type: string + runtime: + $ref: '#/components/schemas/Runtime' + description: Runtime configuration + crons: + type: boolean + description: Whether cron jobs are enabled for revisions of the app. When false, revisions that register cron jobs using Deno.cron fail to build. Defaults to true + Runtime: + type: object + properties: + type: + enum: + - dynamic + - static + description: '`dynamic` runs a Deno process; `static` serves pre-built files' + type: string + entrypoint: + type: string + description: Main module path. Required when `type` is `dynamic` + args: + type: array + items: + type: string + description: Additional CLI arguments passed to the entrypoint + cwd: + type: string + description: Working directory or static file root. Required when `type` is `static` + spa: + type: boolean + description: Enable single-page application mode (fallback to index.html). Only for `static` type + required: + - type + RuntimeLog: + type: object + properties: + timestamp: + type: string + description: ISO 8601 timestamp of the log entry + level: + enum: + - debug + - info + - warn + - error + description: Log severity level + type: string + message: + type: string + description: Log message content + revision_id: + type: string + description: Revision that produced this log entry + region: + type: string + description: Region where the isolate was running + trace_id: + type: string + description: OpenTelemetry trace ID for request correlation + span_id: + type: string + description: OpenTelemetry span ID + required: + - timestamp + - level + - message + example: + timestamp: '2024-01-15T10:30:00.123Z' + level: info + message: Handling request + revision_id: r2ysnrrhr352 + region: us-east-1 + trace_id: abc123def456 + span_id: span789 + stackqlAnalyticsRows: + type: object + properties: + rows: + type: array + description: One row per 15-minute bucket; columns are the analytics fields reported by the API + items: + type: object + properties: + time: + type: string + format: date-time + description: Start of the fixed 15-minute UTC bucket + request_count: + type: number + description: Requests served in the bucket + cpu_seconds: + type: number + description: CPU time consumed, in seconds + runtime_seconds: + type: number + description: Wall-clock runtime, in seconds + memory_time_byte_seconds: + type: number + description: Memory usage integrated over time, in byte-seconds + network_ingress_bytes: + type: number + description: Bytes received + network_egress_bytes: + type: number + description: Bytes sent + kv_read_units: + type: number + description: Deno KV read units + kv_write_units: + type: number + description: Deno KV write units + x-stackQL-resources: + apps: + id: deno.apps.apps + name: apps + title: Apps + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1{app}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1apps~1{app}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v2~1apps~1{app}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + list: + operation: + $ref: '#/paths/~1v2~1apps/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1apps/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/apps/methods/get' + - $ref: '#/components/x-stackQL-resources/apps/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/apps/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/apps/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/apps/methods/delete' + replace: [] + analytics: + id: deno.apps.analytics + name: analytics + title: Analytics + methods: + list: + operation: + $ref: '#/paths/~1v2~1apps~1{app}~1analytics/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rows + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/stackqlAnalyticsRows' + transform: + type: golang_template_json_v0.3.0 + body: '{"rows":[{{ range $ri, $row := .values }}{{ if $ri }},{{ end }}{{ "{" }}{{ range $ci, $v := $row }}{{ if $ci }},{{ end }}{{ toJson (index $.fields $ci).name }}:{{ toJson $v }}{{ end }}{{ "}" }}{{ end }}]}' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/analytics/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + runtime_logs: + id: deno.apps.runtime_logs + name: runtime_logs + title: Runtime Logs + methods: + list: + operation: + $ref: '#/paths/~1v2~1apps~1{app}~1logs/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.logs + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.next_cursor + location: body + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/runtime_logs/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.deno.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/providers/src/deno/v00.00.00000/services/database.yaml b/providers/src/deno/v00.00.00000/services/database.yaml deleted file mode 100644 index 9dc6d47e..00000000 --- a/providers/src/deno/v00.00.00000/services/database.yaml +++ /dev/null @@ -1,745 +0,0 @@ -openapi: 3.0.3 -info: - title: database API - description: Operations about databases - version: 1.0.0 -paths: - /organizations/{organizationId}/databases: - get: - tags: - - database - summary: List KV databases of an organization - description: >- - This API returns a list of KV databases belonging to the specified - organization - - in a pagenated manner. - - The URLs for the next, previous, first, and last page are returned in - the - - `Link` header of the response, if any. - operationId: list_kv_databases - parameters: - - name: page - in: query - description: The page number to return. - required: false - schema: - type: integer - default: 1 - nullable: true - minimum: 1 - - name: limit - in: query - description: The maximum number of items to return per page. - required: false - schema: - type: integer - default: 20 - nullable: true - maximum: 100 - minimum: 1 - - name: q - in: query - description: Query by KV database ID - required: false - schema: - type: string - nullable: true - - name: sort - in: query - description: The field to sort by. Currently only `created_at` is supported. - required: false - schema: - type: string - nullable: true - - name: order - in: query - description: Sort order, either `asc` or `desc`. Defaults to `asc`. - required: false - schema: - type: string - nullable: true - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - headers: - Link: - schema: - $ref: '#/components/schemas/PaginationLinkHeader' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/KvDatabase' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - post: - tags: - - database - summary: Create a KV database - description: |- - This API allows you to create a new KV database under the specified - organization. You will then be able to associate the created KV database - with a new deployment by specifying the KV database ID in the "Create a - deployment" API call. - operationId: create_kv_database - parameters: - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateKvDatabaseRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/KvDatabase' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /databases/{databaseId}: - patch: - tags: - - database - summary: Update KV database details - operationId: update_kv_database - parameters: - - name: databaseId - in: path - description: KV database ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateKvDatabaseRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/KvDatabase' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /databases/{databaseId}/database_backups: - post: - tags: - - databaseBackup - summary: Enable a database backup - description: >- - This API allows you to enable a backup for a KV database. The backup can - be - - stored in your S3 bucket. - - - Currently, only one backup can be enabled per database. When a second - backup - - is being configured, the API will return a `409 Conflict` error. - operationId: enable_kv_backup - parameters: - - name: databaseId - in: path - description: KV database ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/EnableKvDatabaseBackupRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/EnableKvDatabaseBackupResponse' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '409': - description: >- - This can happen either when another backup configuration is in - progress since multiple configurations can't be processed - simultaneously, or when there is one backup already enabled for the - database since currently only one backup is supported per database. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '500': - description: Failed to enable a database backup for some reason. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - get: - tags: - - databaseBackup - summary: List database backups of a database - description: |- - This API returns a list of backups of the specified KV database. - - Note that currently more than one backups are not supported for a single - database. So this API will return either an empty list or a list with a - single item. - operationId: list_kv_backups - parameters: - - name: databaseId - in: path - description: KV database ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/KvDatabaseBackup' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /database_backups/{databaseBackupId}: - get: - tags: - - databaseBackup - summary: Get database backup details - description: This API returns the details of the specified database backup. - operationId: get_kv_backup - parameters: - - name: databaseBackupId - in: path - description: KV Backup ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/KvDatabaseBackup' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - delete: - tags: - - databaseBackup - summary: Disable a database backup - description: This API allows you to disable a backup for a KV database. - operationId: disable_kv_backup - parameters: - - name: databaseBackupId - in: path - description: KV Backup ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/DisableKvDatabaseBackupResponse' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '409': - description: >- - Another backup configuration is ongoing. Only one can be processed - simultaneously. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' -components: - schemas: - PaginationLinkHeader: - type: string - description: >- - Pagination links. - - This header provides URLS for the `prev`, `next`, `first`, and `last` - pages. - - The format conforms to [RFC 8288](https://tools.ietf.org/html/rfc8288). - example: >- - ; rel="next", - ; rel="prev", - ; rel="first", - ; rel="last" - KvDatabase: - type: object - required: - - id - - organizationId - - description - - updatedAt - - createdAt - properties: - id: - type: string - format: uuid - description: A KV database ID - organizationId: - type: string - format: uuid - description: An organization ID that this KV database belongs to - description: - type: string - description: A description of this KV database - updatedAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - createdAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - additionalProperties: false - ErrorBody: - type: object - required: - - code - - message - properties: - code: - type: string - description: The error code - message: - type: string - description: The error message - CreateKvDatabaseRequest: - type: object - properties: - description: - type: string - description: >- - The description of the KV database. If this is `null`, an empty - string - - will be set. - example: My KV database - nullable: true - maxLength: 1000 - additionalProperties: false - UpdateKvDatabaseRequest: - type: object - properties: - description: - type: string - description: >- - The description of the KV database to be updated to. If this is - `null`, no - - update will be made to the KV database description. - example: My KV database - nullable: true - maxLength: 1000 - additionalProperties: false - EnableKvDatabaseBackupRequest: - oneOf: - - type: object - required: - - endpoint - - bucketName - - bucketRegion - - accessKeyId - - secretAccessKey - - kind - properties: - endpoint: - type: string - description: |- - S3 endpoint URL - - Allowed endpoints as of now are: - - https://s3.us-east-1.amazonaws.com - - https://s3.us-east-2.amazonaws.com - - https://s3.us-west-1.amazonaws.com - - https://s3.us-west-2.amazonaws.com - - https://s3.us-gov-west-1.amazonaws.com - - https://s3.us-gov-east-1.amazonaws.com - - https://s3.ca-central-1.amazonaws.com - - https://s3.eu-north-1.amazonaws.com - - https://s3.eu-west-1.amazonaws.com - - https://s3.eu-west-2.amazonaws.com - - https://s3.eu-west-3.amazonaws.com - - https://s3.eu-central-1.amazonaws.com - - https://s3.eu-south-1.amazonaws.com - - https://s3.af-south-1.amazonaws.com - - https://s3.ap-northeast-1.amazonaws.com - - https://s3.ap-northeast-2.amazonaws.com - - https://s3.ap-northeast-3.amazonaws.com - - https://s3.ap-southeast-1.amazonaws.com - - https://s3.ap-southeast-2.amazonaws.com - - https://s3.ap-southeast-3.amazonaws.com - - https://s3.ap-east-1.amazonaws.com - - https://s3.ap-south-1.amazonaws.com - - https://s3.sa-east-1.amazonaws.com - - https://s3.me-south-1.amazonaws.com - - https://s3.cn-north-1.amazonaws.com - - https://s3.cn-northwest-1.amazonaws.com - - https://storage.googleapis.com - - If you want to use a different endpoint, please contact us. - example: https://s3.us-east-1.amazonaws.com - bucketName: - type: string - description: S3 bucket name - example: my-bucket - bucketRegion: - type: string - description: S3 bucket region - example: us-east-1 - accessKeyId: - type: string - description: Access key ID - example: AKIAIOSFODNN7EXAMPLE - secretAccessKey: - type: string - description: Secret access key - example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY - prefix: - type: string - description: Prefix to prepend to all keys when accessing the S3 bucket - example: backup/ - kind: - type: string - enum: - - s3 - discriminator: - propertyName: kind - EnableKvDatabaseBackupResponse: - type: object - required: - - id - properties: - id: - type: string - format: uuid - KvDatabaseBackup: - allOf: - - $ref: '#/components/schemas/KvDatabaseBackupTarget' - - type: object - required: - - id - - status - properties: - id: - type: string - format: uuid - description: The ID of the backup - status: - $ref: '#/components/schemas/KvDatabaseBackupStatus' - DisableKvDatabaseBackupResponse: - type: object - KvDatabaseBackupTarget: - oneOf: - - type: object - required: - - endpoint - - bucketName - - bucketRegion - - accessKeyId - - prefix - - kind - properties: - endpoint: - type: string - description: S3 endpoint URL - example: https://s3.us-east-1.amazonaws.com - bucketName: - type: string - description: S3 bucket name - example: my-bucket - bucketRegion: - type: string - description: S3 bucket region - example: us-east-1 - accessKeyId: - type: string - description: Access key ID - example: AKIAIOSFODNN7EXAMPLE - prefix: - type: string - description: Prefix to prepend to all keys when accessing the S3 bucket - example: backup/ - kind: - type: string - enum: - - s3 - discriminator: - propertyName: kind - KvDatabaseBackupStatus: - oneOf: - - type: object - required: - - code - properties: - code: - type: string - enum: - - pending - - type: object - required: - - code - properties: - code: - type: string - enum: - - active - - type: object - description: >- - An error occurred during the backup operation. One example is when - the - - provided S3 credentials are not correct. - - - If this status is set, the backup has failed permanently and needs - to be - - reconfigured by deleting and creating a new one using [disable a - database backup](#delete-/database_backups/-databaseBackupId-) - - and [enable a database - backup](#post-/databases/-databaseId-/database_backups). - required: - - message - - code - properties: - message: - type: string - description: The detailed error message - example: this is an error message. - code: - type: string - enum: - - failed - description: The status of a KV database backup. - example: - code: active - discriminator: - propertyName: code - x-stackQL-resources: - databases: - id: deno.database.databases - name: databases - title: Databases - methods: - list_kv_databases: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1databases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_kv_database: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1databases/post' - response: - mediaType: application/json - openAPIDocKey: '200' - update_kv_database: - operation: - $ref: '#/paths/~1databases~1{databaseId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/databases/methods/list_kv_databases - insert: - - $ref: >- - #/components/x-stackQL-resources/databases/methods/create_kv_database - update: - - $ref: >- - #/components/x-stackQL-resources/databases/methods/update_kv_database - delete: [] - replace: [] - backups: - id: deno.database.backups - name: backups - title: Backups - methods: - enable_kv_backup: - operation: - $ref: '#/paths/~1databases~1{databaseId}~1database_backups/post' - response: - mediaType: application/json - openAPIDocKey: '200' - list_kv_backups: - operation: - $ref: '#/paths/~1databases~1{databaseId}~1database_backups/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_kv_backup: - operation: - $ref: '#/paths/~1database_backups~1{databaseBackupId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - disable_kv_backup: - operation: - $ref: '#/paths/~1database_backups~1{databaseBackupId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/backups/methods/list_kv_backups' - - $ref: '#/components/x-stackQL-resources/backups/methods/get_kv_backup' - insert: [] - update: [] - delete: [] - replace: [] -servers: - - url: https://api.deno.com/v1 diff --git a/providers/src/deno/v00.00.00000/services/databases.yaml b/providers/src/deno/v00.00.00000/services/databases.yaml new file mode 100644 index 00000000..55268693 --- /dev/null +++ b/providers/src/deno/v00.00.00000/services/databases.yaml @@ -0,0 +1,252 @@ +openapi: 3.1.1 +info: + title: databases API + description: >- + Create database instances (BYO Postgres, Deno KV, Prisma) and bind the + manual databases hosted on them. Manual databases are bound to one of an + app's timelines (`production`, `preview`, etc.) and coexist with the + per-timeline databases provisioned by default. Use the deploy endpoint's + `databases` parameter to bind a specific manual database to an individual + revision without affecting other revisions on the timeline. + version: 2.0.0 +paths: + /v2/database_instances: + post: + operationId: databases.createInstance + summary: Create database instance + description: >- + Create a new database instance owned by the organization. Supported + engines: `postgresql` (bring-your-own server), `denokv` (Deno-managed + key-value), and `prisma` (Prisma-managed Postgres). + tags: + - databases + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DatabaseInstanceInit' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/DatabaseInstance' +components: + schemas: + DatabaseInstanceInit: + type: object + properties: + slug: + type: string + description: Slug for the new database instance + connection: + type: object + properties: + engine: + enum: + - postgresql + type: string + hostname: + type: string + minLength: 1 + description: Database server hostname + port: + description: Database server port + nullable: true + type: integer + minimum: 1 + maximum: 65535 + username: + description: Username for authentication + nullable: true + type: string + password: + description: Password for authentication + nullable: true + type: string + certificate: + description: >- + Custom CA certificate (PEM). Omit to use the bundled AWS RDS CA + bundle + nullable: true + type: string + region: + type: string + description: Prisma project region + required: + - engine + - hostname + - port + - username + - password + - certificate + - region + required: + - slug + - connection + DatabaseInstance: + type: object + properties: + id: + type: string + format: uuid + description: Unique database instance identifier + slug: + type: string + description: Human-readable instance slug + engine: + enum: + - postgresql + - denokv + - prisma + description: Database engine type + type: string + connection: + description: Non-sensitive connection metadata. Credentials are never returned + type: object + properties: + engine: + enum: + - postgresql + type: string + hostname: + type: string + minLength: 1 + description: Database server hostname + port: + description: Database server port + nullable: true + type: integer + minimum: 1 + maximum: 65535 + username: + description: Username for authentication + nullable: true + type: string + custom_certificate: + type: boolean + description: Whether a custom CA certificate is configured + project_id: + type: string + description: Prisma project identifier + region: + type: string + description: Prisma project region + required: + - engine + - hostname + - port + - username + - custom_certificate + - project_id + - region + databases: + type: array + items: + $ref: '#/components/schemas/Database' + description: Databases that exist on this instance + created_at: + type: string + description: ISO 8601 timestamp of creation + required: + - id + - slug + - engine + - connection + - databases + - created_at + Database: + type: object + properties: + name: + type: string + description: Literal database name + status: + enum: + - pending + - creating + - ready + - failed + - deleted + description: Provisioning status of the database + type: string + created_at: + type: string + description: ISO 8601 timestamp of creation + timelines: + type: array + items: + $ref: '#/components/schemas/DatabaseTimeline' + description: Timelines this database is bound to + required: + - name + - status + - created_at + - timelines + DatabaseTimeline: + type: object + properties: + app: + type: object + properties: + slug: + type: string + description: >- + App slugs must be 3–32 characters long, may contain only + lowercase letters, numbers, and hyphens, cannot contain + underscores, must not start or end with a hyphen, must not have + consecutive hyphens in positions 3 and 4, and cannot be a + reserved slug. + required: + - slug + description: The app the timeline belongs to + timeline: + type: string + description: >- + Timeline slug derived from the partition config name (e.g. + `production`) + partition: + type: object + additionalProperties: + type: string + description: Partition key-value pairs identifying the timeline + example: + git.branch: main + required: + - app + - timeline + - partition + x-stackQL-resources: + database_instances: + id: deno.databases.database_instances + name: database_instances + title: Database Instances + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1database_instances/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/database_instances/methods/create' + update: [] + delete: [] + replace: [] +servers: + - url: https://api.deno.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/providers/src/deno/v00.00.00000/services/deployment.yaml b/providers/src/deno/v00.00.00000/services/deployment.yaml deleted file mode 100644 index a5d8d62f..00000000 --- a/providers/src/deno/v00.00.00000/services/deployment.yaml +++ /dev/null @@ -1,1801 +0,0 @@ -openapi: 3.0.3 -info: - title: deployment API - description: Operations about deployments - version: 1.0.0 -paths: - /projects/{projectId}/deployments: - get: - tags: - - deployment - summary: List deployments of a project - description: >- - This API returns a list of deployments belonging to the specified - project in - - a pagenated manner. - - - The URLs for the next, previous, first, and last page are returned in - the - - `Link` header of the response, if any. - operationId: list_deployments - parameters: - - name: page - in: query - description: The page number to return. - required: false - schema: - type: integer - default: 1 - nullable: true - minimum: 1 - - name: limit - in: query - description: The maximum number of items to return per page. - required: false - schema: - type: integer - default: 20 - nullable: true - maximum: 100 - minimum: 1 - - name: q - in: query - description: Query by deployment ID - required: false - schema: - type: string - nullable: true - - name: sort - in: query - description: >- - The field to sort by, either `id` or `created_at`. Defaults to - `created_at`. - required: false - schema: - type: string - nullable: true - - name: order - in: query - description: Sort order, either `asc` or `desc`. Defaults to `asc`. - required: false - schema: - type: string - nullable: true - - name: projectId - in: path - description: Project ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - headers: - Link: - schema: - $ref: '#/components/schemas/PaginationLinkHeader' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Deployment' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - post: - tags: - - deployment - summary: Create a deployment - description: >- - This API initiates a build process for a new deployment. - - - Note that this process is asynchronous; the completion of this API - doesn't - - mean the deployment is ready. In order to keep track of the progress of - the - - build, call the "Get build logs of a deployment" API or the "Get - deployment - - details" API. - operationId: create_deployment - parameters: - - name: projectId - in: path - description: Project ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateDeploymentRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Deployment' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /deployments/{deploymentId}/redeploy: - post: - tags: - - deployment - summary: Redeploy a deployment with different configuration - operationId: redeploy_deployment - parameters: - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - $ref: '#/components/schemas/DeploymentId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/RedeployRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Deployment' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /deployments/{deploymentId}: - get: - tags: - - deployment - summary: Get deployment details - operationId: get_deployment - parameters: - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - $ref: '#/components/schemas/DeploymentId' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Deployment' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - delete: - tags: - - deployment - summary: Delete a deployment - operationId: delete_deployment - parameters: - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - $ref: '#/components/schemas/DeploymentId' - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /deployments/{deploymentId}/build_logs: - get: - tags: - - deployment - summary: Get build logs of a deployment - description: >- - This API returns build logs of the specified deployment. It's useful to - watch - - the build progress, figure out what went wrong in case of a build - failure, - - and so on. - - - The response format can be controlled by the `Accept` header; if - - `application/x-ndjson` is specified, the response will be a stream of - - newline-delimited JSON objects. Otherwise it will be a JSON array of - - objects. - operationId: get_build_logs - parameters: - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - type: string - responses: - '200': - description: Success - content: - application/x-ndjson: - schema: - $ref: '#/components/schemas/BuildLogsResponseEntry' - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/BuildLogsResponseEntry' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /deployments/{deploymentId}/app_logs: - get: - tags: - - deployment - summary: Get execution logs of a deployment - description: >- - This API can return either past logs or real-time logs depending on the - - presence of the since and until query parameters; if at least one of - them - - is provided, past logs are returned, otherwise real-time logs are - returned. - - - Also, the response format can be controlled by the `Accept` header; if - - `application/x-ndjson` is specified, the response will be a stream of - - newline-delimited JSON objects. Otherwise it will be a JSON array of - - objects. - operationId: get_app_logs - parameters: - - name: q - in: query - description: Text to search for in log message. - required: false - schema: - type: string - nullable: true - example: foobar - - name: level - in: query - description: |- - Log level(s) to filter logs by. - - Defaults to all levels (i.e. no filter applied). - - Multiple levels can be specified using comma-separated format. - required: false - schema: - allOf: - - $ref: '#/components/schemas/LogLevel' - nullable: true - example: error,warning - - name: region - in: query - description: |- - Region(s) to filter logs by. - - Defaults to all regions (i.e. no filter applied). - - Multiple regions can be specified using comma-separated format. - required: false - schema: - allOf: - - $ref: '#/components/schemas/Region' - nullable: true - example: gcp-us-central1,gcp-us-east1 - - name: since - in: query - description: >- - Start time of the time range to filter logs by. - - - Defaults to the Unix Epoch (though the log retention period is 2 - weeks as - - of now). - - - If neither `since` nor `until` is specified, real-time logs are - returned. - required: false - schema: - type: string - format: date-time - nullable: true - example: '2021-08-01T00:00:00Z' - - name: until - in: query - description: >- - End time of the time range to filter logs by. - - - Defaults to the current time. - - - If neither `since` nor `until` is specified, real-time logs are - returned. - required: false - schema: - type: string - format: date-time - nullable: true - example: '2021-08-01T00:00:00Z' - - name: limit - in: query - description: |- - Maximum number of logs to return in one request. - - This is only effective for the past log mode. - required: false - schema: - type: integer - default: 100 - nullable: true - maximum: 10000 - minimum: 1 - - name: sort - in: query - description: |- - The field to sort by. Currently only `time` is supported. - - This is only effective for the past log mode. - required: false - schema: - type: string - nullable: true - - name: order - in: query - description: >- - Sort order, either `asc` or `desc`. Defaults to `desc`. - - - For backward compatibility, `timeAsc` and `timeDesc` are also - supported, - - but deprecated. - - - This is only effective for the past log mode. - required: false - schema: - type: string - nullable: true - - name: cursor - in: query - description: >- - Opaque value that represents the cursor of the last log returned in - the - - previous request. - - - This is only effective for the past log mode. - required: false - schema: - type: string - nullable: true - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - type: string - responses: - '200': - description: Success - headers: - Link: - schema: - $ref: '#/components/schemas/CursorLinkHeader' - description: This header is present only in the past log mode. - content: - application/x-ndjson: - schema: - $ref: '#/components/schemas/AppLogsResponseEntry' - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AppLogsResponseEntry' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /deployments/{deploymentId}/domains/{domain}: - put: - tags: - - deployment - summary: Attach a domain to a deployment - description: >- - This API allows you to attach a domain to an existing deployment. Once - - attached, the deployment will become accessible via that domain. - - - If the specified domain is already attached to another deployment, it - will - - be detached from the current deployment and attached to the new one. - operationId: attach_domain_to_deployment - parameters: - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - $ref: '#/components/schemas/DeploymentId' - - name: domain - in: path - description: >- - Domain name to attach to the deployment. - - - Two placeholders can be used in the domain name, which will be - substituted - - accordingly: - - - - `{project.name}`: The name of the project. - - - `{deployment.id}`: The ID of the deployment. - - - The domain name you specify here must be either equal to one of the - custom - - domains you have registered, or a subdomain of one of the wildcard - domains - - you have registered. Let's say you have registered `example.com` and - - `*.example.net` as custom domains via [add a - domain](#post-/organizations/-organizationId-/domains) - - endpoint and set DNS records needed to verify you are the owner of - these. - - In this case, the following table shows what domains are attachable - and why: - - - | Domain | Attachable? | - Comment - | - - | ----------------------------------------------- | ----------- | - ------------------------------------------------------------------------------------------- - | - - | `example.com` | ✅ | - Exactly matches the registered custom domain - `example.com` | - - | `foo.example.net` | ✅ | - Covered by - `*.example.net` - | - - | `*.example.net` | ✅ | - Exactly matches the registered custom domain - `*.example.net` | - - | `{project.name}.example.net` | ✅ | - Covered by `*.example.net`, and the placeholder is - valid | - - | `my-{project.name}.example.net` | ✅ | - Covered by `*.example.net`, and the placeholder is - valid | - - | `my-{project.name}-{deployment.id}.example.net` | ✅ | - Covered by `*.example.net`, and the placeholders are - valid | - - | `foo.example.com` | ❌ | The - custom domain `example.com` is registered, but not `foo.example.com` - or `*.example.com` | - - | `example.net` | ❌ | Not - a subdomain of - `*.example.net` - | - - | `foo.bar.example.net` | ❌ | Not - a subdomain of - `*.example.net` - | - - | `{project.id}.example.net` | ❌ | The - placeholder is not - valid - | - - - Besides your custom domains, you can also use `deno.dev` domain - without - - the need to register it. In this case, though, only two formats are - - allowed as follows: - - - | Domain | Attachable? | - - | ----------------------------------------- | ----------- | - - | `{project.name}.deno.dev` | ✅ | - - | `{project.name}-{deployment.id}.deno.dev` | ✅ | - - | `foo.deno.dev` | ❌ | - - | `my-{project.name}.deno.dev` | ❌ | - - | `{deployment.id}.deno.dev` | ❌ | - - | `{deployment.id}-{project.name}.deno.dev` | ❌ | - - - Lastly, keep in mind that in order for the attached domain to work - - properly, you also need to set up TLS certificates, either by - - [provisioning a - certificate](#post-/domains/-domainId-/certificates/provision) - - or by [uploading a - certificate](#post-/domains/-domainId-/certificates). - - This is not needed for `deno.dev` domains. - required: true - schema: - type: string - example: '{project.name}-{deployment.id}.deno.dev' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/AttachDomainResponse' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - delete: - tags: - - deployment - summary: Detach a domain from a deployment - description: >- - This API disassociates a domain from a deployment. Once this operation - is - - completed, the deployment will no longer be accessible via that domain. - operationId: detach_domain_from_deployment - parameters: - - name: deploymentId - in: path - description: Deployment ID - required: true - schema: - $ref: '#/components/schemas/DeploymentId' - - name: domain - in: path - description: Domain to detach - required: true - schema: - type: string - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' -components: - schemas: - PaginationLinkHeader: - type: string - description: >- - Pagination links. - - This header provides URLS for the `prev`, `next`, `first`, and `last` - pages. - - The format conforms to [RFC 8288](https://tools.ietf.org/html/rfc8288). - example: >- - ; rel="next", - ; rel="prev", - ; rel="first", - ; rel="last" - Deployment: - type: object - required: - - id - - projectId - - status - - databases - - createdAt - - updatedAt - properties: - id: - $ref: '#/components/schemas/DeploymentId' - projectId: - type: string - format: uuid - example: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 - description: - type: string - description: >- - The description of this deployment. This is present only when the - `status` - - is `success`. - example: My deployment - nullable: true - status: - $ref: '#/components/schemas/DeploymentStatus' - domains: - type: array - items: - type: string - example: - - example.com - nullable: true - databases: - type: object - description: |- - The KV databases that this deployment has access to. - Currently, only `"default"` database is supported. - additionalProperties: - type: string - format: uuid - example: - default: 5b484959-cba2-482d-95ab-ba592784af80 - requestTimeout: - type: integer - format: int32 - description: >- - The wall-clock timeout in milliseconds for requests to the - deployment. - - - This becomes `null` when no timeout is set, or the deployment has - not been - - done successfully yet. - example: 10000 - nullable: true - minimum: 1 - permissions: - allOf: - - $ref: '#/components/schemas/DeploymentPermissions' - nullable: true - createdAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - updatedAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - additionalProperties: false - ErrorBody: - type: object - required: - - code - - message - properties: - code: - type: string - description: The error code - message: - type: string - description: The error message - CreateDeploymentRequest: - type: object - required: - - entryPointUrl - - assets - - envVars - properties: - entryPointUrl: - type: string - description: >- - An URL of the entry point of the application. - - This is the file that will be executed when the deployment is - invoked. - importMapUrl: - type: string - description: >- - An URL of the import map file. - - - If `null` is given, import map auto-discovery logic will be - performed, - - where it looks for Deno's config file (i.e. `deno.json` or - `deno.jsonc`) - - which may contain an embedded import map or a path to an import map - file. - - If found, that import map will be used. - - - If an empty string is given, no import map will be used. - nullable: true - lockFileUrl: - type: string - description: >- - An URL of the lock file. - - - If `null` is given, lock file auto-discovery logic will be - performed, - - where it looks for Deno's config file (i.e. `deno.json` or - `deno.jsonc`) - - which may contain a path to a lock file or boolean value, such as - `"lock": - - false` or `"lock": "my-lock.lock"`. If a config file is found, the - - semantics of the lock field is the same as the Deno CLI, so refer to - [the - - CLI doc - page](https://docs.deno.com/runtime/manual/basics/modules/integrity_checking#auto-generated-lockfile). - - - If an empty string is given, no lock file will be used. - nullable: true - compilerOptions: - allOf: - - $ref: '#/components/schemas/CompilerOptions' - nullable: true - assets: - $ref: '#/components/schemas/Assets' - domains: - type: array - items: - $ref: '#/components/schemas/AttachableDomain' - description: >- - A list of domains that will be attached to the deployment once it's - - successfully deployed. - - - If this field is omitted or `null` is provided, the default domain - will be - - attached to the deployment, which looks like - `projectname-deploymentid.deno.dev`. - - - If an empty list is provided, no domain will be attached to the - deployment. - - In this case, the default one will not get attached either. - - - If a list is provided, only the domains in the list will be - attached, but - - the default domain will not. - nullable: true - envVars: - type: object - description: >- - A dictionary of environment variables to be set in the runtime - environment - - of the deployment. - additionalProperties: - type: string - databases: - type: object - description: >- - KV database ID mappings to associate with the deployment. - - - A key represents a KV database name (e.g. `"default"`), and a value - is a - - KV database ID. - - - Currently, only `"default"` database is supported. If any other - database - - name is specified, that will be rejected. - - - If not provided, the deployment will be created with no KV database - - attached. - additionalProperties: - type: string - format: uuid - nullable: true - requestTimeout: - type: integer - format: int32 - description: >- - The wall-clock timeout in milliseconds for requests to the - deployment. - - - If not provided, the system default value will be used. - example: 10000 - nullable: true - minimum: 1 - permissions: - allOf: - - $ref: '#/components/schemas/DeploymentPermissions' - nullable: true - description: - type: string - description: >- - A description of the created deployment. If not provided, an empty - string - - will be set. - nullable: true - maxLength: 1000 - enableCron: - type: boolean - description: >- - Enables cron functionality for this deployment. Requires a database - to be attached. - - When multiple projects share the same database, only the first - project to enable crons - - will have access to cron management. Other projects sharing the - database cannot use crons. - nullable: true - additionalProperties: false - example: - entryPointUrl: main.ts - importMapUrl: null - lockFileUrl: null - compilerOptions: null - assets: - main.ts: - kind: file - content: | - Deno.serve((req: Request) => new Response("Hello World")); - encoding: utf-8 - images/cat1.png: - kind: file - content: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk - encoding: base64 - images/cat2.png: - kind: file - gitSha1: 5c4f8729e5c30a91a890e24d7285e89f418c637b - symlink.png: - kind: symlink - target: images/cat1.png - domains: - - '{project.name}-{deployment.id}.deno.dev' - - '{project.name}.deno.dev' - - foo.example.com - envVars: - MY_ENV: hey - databases: - default: 5b484959-cba2-482d-95ab-ba592784af80 - requestTimeout: 10000 - permissions: - net: - - example.com - - 34.120.54.55 - - '[2600:1901:0:6d85::]' - - '*' - description: My first deployment - DeploymentId: - type: string - description: >- - A deployment ID - - - Note that this is not UUID v4, as opposed to organization ID and project - ID. - example: abcde12vwxyz - RedeployRequest: - type: object - properties: - envVars: - type: object - description: >- - A dictionary of environment variables to be set in the runtime - environment - - of the deployment. - - - The provided environment variables will be _merged_ with the - existing one. - - For example, if the existing environment variables are: - - - ```json - - { - - "a": "alice", - - "b": "bob" - - "c": "charlie" - - } - - ``` - - - and you pass the following environment variables in your redeploy - request: - - - ```json - - { - - "a": "alice2", - - "b": null, - - "d": "david" - - } - - ``` - - - then the result will be: - - - ```json - - { - - "a": "alice2", - - "c": "charlie", - - "d": "david" - - } - - ``` - - - If `envVars` itself is not provided, no update will happen to the - - existing environment variables. - - - For a historical reason, `env_vars` is also accepted as well as - `envVars`, - - although `env_vars` is deprecated. - additionalProperties: - type: string - nullable: true - example: - MY_ENV: hey - ENV_TO_BE_DELETED: null - nullable: true - databases: - type: object - description: >- - KV database ID mappings to associate with the deployment. - - - A key represents a KV database name (e.g. `"default"`), and a value - is a - - KV database ID. - - - Currently, only `"default"` database is supported. If any other - database - - name is specified, that will be rejected. - - - The provided KV database mappings will be _merged_ with the existing - one, - - just like `env_vars`. - - - If `databases` itself is not provided, no update will happen to the - - existing KV database mappings. - additionalProperties: - type: string - format: uuid - nullable: true - example: - default: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 - nullable: true - requestTimeout: - type: integer - format: int32 - description: >- - The wall-clock timeout in milliseconds for requests to the - deployment. - - - If not provided, no update will happen to the existing request - timeout. - example: 10000 - nullable: true - minimum: 1 - permissions: - allOf: - - $ref: '#/components/schemas/DeploymentPermissionsOverwrite' - nullable: true - description: - type: string - description: >- - A description of the created deployment. If not provided, no update - will - - happen to the description. - example: Updated description - nullable: true - additionalProperties: false - BuildLogsResponseEntry: - type: object - required: - - level - - message - properties: - level: - type: string - example: info - message: - type: string - example: Downloaded https://deno.land/std@0.202.0/testing/asserts.ts (2/3) - additionalProperties: false - LogLevel: - type: string - enum: - - error - - warning - - info - - debug - Region: - type: string - enum: - - gcp-asia-east1 - - gcp-asia-east2 - - gcp-asia-northeast1 - - gcp-asia-northeast2 - - gcp-asia-northeast3 - - gcp-asia-south1 - - gcp-asia-south2 - - gcp-asia-southeast1 - - gcp-asia-southeast2 - - gcp-australia-southeast1 - - gcp-australia-southeast2 - - gcp-europe-central2 - - gcp-europe-north1 - - gcp-europe-southwest1 - - gcp-europe-west1 - - gcp-europe-west2 - - gcp-europe-west3 - - gcp-europe-west4 - - gcp-europe-west6 - - gcp-europe-west8 - - gcp-me-west1 - - gcp-northamerica-northeast1 - - gcp-northamerica-northeast2 - - gcp-southamerica-east1 - - gcp-southamerica-west1 - - gcp-us-central1 - - gcp-us-east1 - - gcp-us-east4 - - gcp-us-east5 - - gcp-us-south1 - - gcp-us-west1 - - gcp-us-west2 - - gcp-us-west3 - - gcp-us-west4 - CursorLinkHeader: - type: string - description: |- - Pagination links. - This header provides a URL for the `next` page. - The format conforms to [RFC 8288](https://tools.ietf.org/html/rfc8288). - example: ; rel="next" - AppLogsResponseEntry: - type: object - required: - - time - - level - - message - - region - properties: - time: - type: string - format: date-time - description: Log timestamp - example: '2021-08-01T00:00:00Z' - level: - $ref: '#/components/schemas/LogLevel' - message: - type: string - example: log message - region: - $ref: '#/components/schemas/Region' - additionalProperties: false - AttachDomainResponse: - type: object - required: - - domain - properties: - domain: - type: string - description: >- - The domain that was attached to the deployment with placeholders - resolved. - example: myproject-mydeployment.deno.dev - DeploymentStatus: - type: string - description: The status of a deployment. - enum: - - failed - - pending - - success - example: success - DeploymentPermissions: - type: object - description: >- - Permissions to be set for the deployment. - - - Currently only `net` is supported, where you can specify a list of IP - - addresses and/or hostnames that the deployment is allowed to make - outbound - - network requests to. - properties: - net: - type: array - items: - type: string - description: >- - A list of IP addresses that the deployment is allowed to make - outbound - - network requests to. - - - Each element must be a valid IPv4, IPv6, or a hostname like - `example.com` - - although outbound network requests using IPv6 are not supported yet - in - - Deno Deploy regardless. - - In addition to these, a special value `*` can be used, which means - all - - accesses are allowed. Also note the following: - - - - If omitted, all accesses will be allowed. - - - If an empty list is provided, all accesses will be **denied**. - example: - - example.com - - 34.120.54.55 - - '[2600:1901:0:6d85::]' - - '*' - nullable: true - additionalProperties: false - CompilerOptions: - type: object - description: >- - Compiler options to be used when building the deployment. - - - If `null` is given, Deno's config file (i.e. `deno.json` or - `deno.jsonc`) - - will be auto-discovered, which may contain a `compilerOptions` field. If - - found, that compiler options will be applied. - - - If an empty object `{}` is given, [the default compiler - options](https://docs.deno.com/runtime/manual/advanced/typescript/configuration#how-deno-uses-a-configuration-file) - - will be applied. - properties: - experimentalDecorators: - type: boolean - description: >- - Whether to enable TypeScript's experimental decorators. If set to - `false`, - - ECMAScript decorators will be enabled instead. - - - If omitted, this field will be interpreted as `false`. - - - If the code being deployed uses any kind of decorators, this field - must be - - set. Otherwise, the build process will fail. - nullable: true - emitDecoratorMetadata: - type: boolean - description: >- - Whether to emit experimental decorator meta data when emitting a - - TypeScript's experimental decorator. - - - This is effective only when `experimentalDecorators` is set to - `true`. - - - If omitted, this field will be interpreted as `false`. - nullable: true - jsx: - type: string - nullable: true - jsxFactory: - type: string - nullable: true - jsxFragmentFactory: - type: string - nullable: true - jsxImportSource: - type: string - nullable: true - jsxPrecompileSkipElements: - type: array - items: - type: string - nullable: true - additionalProperties: false - Assets: - type: object - description: >- - A map whose key represents a file path, and the value is an asset that - - composes the deployment. - - - Each asset is one of the following three kinds: - - - 1. A file with content data (which is UTF-8 for text, or base64 for - binary) - - 2. A file with a git sha1 hash of the content - - 3. A symbolic link to another asset - - - Assets that were uploaded in some of the previous deployments don't need - to - - be uploaded again. In this case, in order to identify the asset, just - provide the - - git SHA-1 hash of the content (use `git hash-object -t 'blob' ` - command to generate). - additionalProperties: - $ref: '#/components/schemas/Asset' - AttachableDomain: - type: string - description: >- - Domain name to attach to the deployment. - - - Two placeholders can be used in the domain name, which will be - substituted - - accordingly: - - - - `{project.name}`: The name of the project. - - - `{deployment.id}`: The ID of the deployment. - - - The domain name you specify here must be either equal to one of the - custom - - domains you have registered, or a subdomain of one of the wildcard - domains - - you have registered. Let's say you have registered `example.com` and - - `*.example.net` as custom domains via [add a - domain](#post-/organizations/-organizationId-/domains) - - endpoint and set DNS records needed to verify you are the owner of - these. In - - this case, the following table shows what domains are attachable and - why: - - - | Domain | Attachable? | - Comment - | - - | ----------------------------------------------- | ----------- | - ------------------------------------------------------------------------------------------- - | - - | `example.com` | ✅ | Exactly - matches the registered custom domain - `example.com` | - - | `foo.example.net` | ✅ | Covered - by - `*.example.net` - | - - | `*.example.net` | ✅ | Exactly - matches the registered custom domain - `*.example.net` | - - | `{project.name}.example.net` | ✅ | Covered - by `*.example.net`, and the placeholder is - valid | - - | `my-{project.name}.example.net` | ✅ | Covered - by `*.example.net`, and the placeholder is - valid | - - | `my-{project.name}-{deployment.id}.example.net` | ✅ | Covered - by `*.example.net`, and the placeholders are - valid | - - | `foo.example.com` | ❌ | The - custom domain `example.com` is registered, but not `foo.example.com` or - `*.example.com` | - - | `example.net` | ❌ | Not a - subdomain of - `*.example.net` - | - - | `foo.bar.example.net` | ❌ | Not a - subdomain of - `*.example.net` - | - - | `{project.id}.example.net` | ❌ | The - placeholder is not - valid | - - - Besides your custom domains, you can also use `deno.dev` domain without - - the need to register it. In this case, though, only two template formats - - and two known (if you know the project name & deployment ID values) - domains - - are allowed as follows: - - - | Domain | Attachable? | - - | ----------------------------------------- | ----------- | - - | `{project.name}.deno.dev` | ✅ | - - | `{project.name}-{deployment.id}.deno.dev` | ✅ | - - | `myproject.deno.dev` | ✅ | - - | `myproject-mydeploymentid.deno.dev` | ✅ | - - | `foo.deno.dev` | ❌ | - - | `my-{project.name}.deno.dev` | ❌ | - - | `{deployment.id}.deno.dev` | ❌ | - - | `{deployment.id}-{project.name}.deno.dev` | ❌ | - - - Lastly, keep in mind that in order for the attached domain to work - - properly, you also need to set up TLS certificates, either by - - [provisioning a - certificate](#post-/domains/-domainId-/certificates/provision) - - or by [uploading a certificate](#post-/domains/-domainId-/certificates). - - This is not needed for `deno.dev` domains. - DeploymentPermissionsOverwrite: - type: object - description: >- - Permissions to be overwritten for the deployment's existing permissions. - - - Currently only `net` is supported, where you can specify a list of IP - - addresses and/or hostnames that the deployment is allowed to make - outbound - - network requests to. - properties: - net: - type: array - items: - type: string - description: >- - A list of IP addresses that the deployment is allowed to make - outbound - - network requests to. - - - Each element must be a valid IPv4, IPv6, or a hostname like - `example.com` - - although outbound network requests using IPv6 are not supported yet - in - - Deno Deploy regardless. - - In addition to these, a special value `*` can be used, which means - all - - accesses are allowed. Also note the following: - - - - If omitted, no update will happen to the existing permissions. - - - If an empty list is provided, all accesses will be **denied**. - example: - - example.com - - 34.120.54.55 - - '[2600:1901:0:6d85::]' - - '*' - nullable: true - additionalProperties: false - Asset: - oneOf: - - allOf: - - $ref: '#/components/schemas/File' - - type: object - required: - - kind - properties: - kind: - type: string - enum: - - file - - allOf: - - $ref: '#/components/schemas/Symlink' - - type: object - required: - - kind - properties: - kind: - type: string - enum: - - symlink - discriminator: - propertyName: kind - File: - oneOf: - - type: object - required: - - content - properties: - content: - type: string - encoding: - $ref: '#/components/schemas/Encoding' - - type: object - required: - - gitSha1 - properties: - gitSha1: - type: string - Symlink: - type: object - required: - - target - properties: - target: - type: string - additionalProperties: false - Encoding: - type: string - enum: - - utf-8 - - base64 - x-stackQL-resources: - deployments: - id: deno.deployment.deployments - name: deployments - title: Deployments - methods: - list_deployments: - operation: - $ref: '#/paths/~1projects~1{projectId}~1deployments/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_deployment: - operation: - $ref: '#/paths/~1projects~1{projectId}~1deployments/post' - response: - mediaType: application/json - openAPIDocKey: '200' - redeploy_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1redeploy/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/deployments/methods/list_deployments - - $ref: >- - #/components/x-stackQL-resources/deployments/methods/get_deployment - insert: - - $ref: >- - #/components/x-stackQL-resources/deployments/methods/create_deployment - update: [] - delete: - - $ref: >- - #/components/x-stackQL-resources/deployments/methods/delete_deployment - replace: [] - build_logs: - id: deno.deployment.build_logs - name: build_logs - title: Build Logs - methods: - get_build_logs: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1build_logs/get' - response: - mediaType: application/x-ndjson - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/build_logs/methods/get_build_logs' - insert: [] - update: [] - delete: [] - replace: [] - app_logs: - id: deno.deployment.app_logs - name: app_logs - title: App Logs - methods: - get_app_logs: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1app_logs/get' - response: - mediaType: application/x-ndjson - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/app_logs/methods/get_app_logs' - insert: [] - update: [] - delete: [] - replace: [] - domains: - id: deno.deployment.domains - name: domains - title: Domains - methods: - attach_domain_to_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1domains~1{domain}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - detach_domain_from_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1domains~1{domain}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: - - $ref: >- - #/components/x-stackQL-resources/domains/methods/detach_domain_from_deployment - replace: - - $ref: >- - #/components/x-stackQL-resources/domains/methods/attach_domain_to_deployment -servers: - - url: https://api.deno.com/v1 diff --git a/providers/src/deno/v00.00.00000/services/domain.yaml b/providers/src/deno/v00.00.00000/services/domain.yaml deleted file mode 100644 index cc01620a..00000000 --- a/providers/src/deno/v00.00.00000/services/domain.yaml +++ /dev/null @@ -1,796 +0,0 @@ -openapi: 3.0.3 -info: - title: domain API - description: Operations about domains - version: 1.0.0 -paths: - /organizations/{organizationId}/domains: - get: - tags: - - domain - summary: List domains of an organization - description: >- - This API returns a list of domains belonging to the specified - organization - - in a pagenated manner. - - - The URLs for the next, previous, first, and last page are returned in - the - - `Link` header of the response, if any. - operationId: list_domains - parameters: - - name: page - in: query - description: The page number to return. - required: false - schema: - type: integer - default: 1 - nullable: true - minimum: 1 - - name: limit - in: query - description: The maximum number of items to return per page. - required: false - schema: - type: integer - default: 20 - nullable: true - maximum: 100 - minimum: 1 - - name: q - in: query - description: Query by domain - required: false - schema: - type: string - nullable: true - - name: sort - in: query - description: >- - The field to sort by, `domain`, `created_at`, or `updated_at`. - Defaults to `updated_at`. - required: false - schema: - type: string - nullable: true - - name: order - in: query - description: Sort order, either `asc` or `desc`. Defaults to `asc`. - required: false - schema: - type: string - nullable: true - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - headers: - Link: - schema: - $ref: '#/components/schemas/PaginationLinkHeader' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Domain' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - post: - tags: - - domain - summary: Add a domain to an organization - description: >- - This API allows you to add a new domain to the specified organization. - - - ### Steps to make the added domain available for actual use - - - In order to make the added domain available for actual use, you first - need - - to verify that you are the owner of the domain by calling - - [the verify ownership of a domain - endpoint](https://deno-provider.stackql.io/services/domain/domains/#lifecycle-methods) - - after properly setting up the DNS records for the domain as specified in - the - - `dnsRecords` field of the response of this API. - - - You then also need to have TLS certificates ready for the domain, either - by - - [enabling - auto-provision](https://deno-provider.stackql.io/services/domain/certificates/#lifecycle-methods) - - or by [uploading them manually](https://deno-provider.stackql.io/services/domain/certificates/). - operationId: create_domain - parameters: - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateDomainRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Domain' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /domains/{domainId}: - get: - tags: - - domain - summary: Get domain details - operationId: get_domain - parameters: - - name: domainId - in: path - description: Domain ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Domain' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - patch: - tags: - - domain - summary: Associate a domain with a deployment - description: >- - This API allows you to either: - - - 1. associate a domain with a deployment, or - - 2. disassociate a domain from a deployment - - - Domain association is required in order to serve the deployment on the - - domain. - - - If the ownership of the domain is not verified yet, this API will - trigger - - the verification process before associating the domain with the - deployment. - - - The same functionality is provided by [Attach a domain to a deployment] - with - - more flexibility. Consider using that API instead. - - - [Attach a domain to a deployment]: - #put-/deployments/-deploymentId-/domains/-domain- - operationId: update_domain_association - parameters: - - name: domainId - in: path - description: Domain ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateDomainAssociationRequest' - required: true - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - deprecated: true - delete: - tags: - - domain - summary: Delete a domain - operationId: delete_domain - parameters: - - name: domainId - in: path - description: Domain ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /domains/{domainId}/verify: - post: - tags: - - domain - summary: Verify ownership of a domain - description: >- - This API triggers the ownership verification of a domain. It should be - - called after necessary DNS records that appear in the `dnsRecords` field - - of the response of [add a - domain](https://deno-provider.stackql.io/services/domain/domains/) - - are set up. - - - ### Domain reactivation - - - If a previously vefified domain, owned by the same organization, was - deleted - - and then re-added, deployments associated with the domain will become - - accessible via the domain once the verification is successfully - completed. - - - For example, if the domain `*.example.com` was owned and verified by - - `example-org` and `foo.example.com` was attached to - `example-deployment`, - - the deployment was accessible via `foo.example.com`. However, if the - domain - - is deleted from the organization, access to the deployment via - - `foo.example.com` is lost, which we refer to as domain deactivation. - - - Subsequently, if `*.example.com` (or even `foo.example.com`) is re-added - to - - the organization and verified, the deployment becomes accessible via - - `foo.example.com` again without any further steps, i.e. the domain is - - reactivated. - operationId: verify_domain - parameters: - - name: domainId - in: path - description: Domain ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /domains/{domainId}/certificates: - post: - tags: - - domain - summary: Upload TLS certificate for a domain - description: >- - This API allows you to upload a TLS certificate for a domain. - - - If the ownership of the domain is not verified yet, this API will - trigger - - the verification process before storing the certificate. - operationId: add_domain_certificate - parameters: - - name: domainId - in: path - description: Domain ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/AddDomainCertificateRequest' - required: true - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /domains/{domainId}/certificates/provision: - post: - tags: - - domain - summary: Provision TLS certificates for a domain - description: >- - This API begins the provisioning of TLS certificates for a domain. - - - Note that a call to this API may take a while, up to a minute or so. - - - If the ownership of the domain is not verified yet, this API will - trigger - - the verification process before provisioning the certificate. - operationId: provision_domain_certificates - parameters: - - name: domainId - in: path - description: Domain ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' -components: - schemas: - PaginationLinkHeader: - type: string - description: >- - Pagination links. - - This header provides URLS for the `prev`, `next`, `first`, and `last` - pages. - - The format conforms to [RFC 8288](https://tools.ietf.org/html/rfc8288). - example: >- - ; rel="next", - ; rel="prev", - ; rel="first", - ; rel="last" - Domain: - type: object - required: - - id - - organizationId - - domain - - token - - isValidated - - certificates - - provisioningStatus - - createdAt - - updatedAt - - dnsRecords - properties: - id: - type: string - format: uuid - description: The ID of the domain. - organizationId: - type: string - format: uuid - description: The ID of the organization that the domain is associated with. - domain: - type: string - description: The domain value. - example: example.com - token: - type: string - example: b7e28147130005f5593d09e6 - isValidated: - type: boolean - description: Whether the domain's ownership is validated or not. - certificates: - type: array - items: - $ref: '#/components/schemas/DomainCertificate' - description: TLS certificates for the domain. - provisioningStatus: - $ref: '#/components/schemas/ProvisioningStatus' - projectId: - type: string - format: uuid - description: >- - The ID of the project that the domain is associated with. - - - If the domain is not associated with any project, this field is - omitted. - nullable: true - deploymentId: - allOf: - - $ref: '#/components/schemas/DeploymentId' - nullable: true - createdAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - updatedAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - dnsRecords: - type: array - items: - $ref: '#/components/schemas/DnsRecord' - description: These records are used to verify the ownership of the domain. - additionalProperties: false - ErrorBody: - type: object - required: - - code - - message - properties: - code: - type: string - description: The error code - message: - type: string - description: The error message - CreateDomainRequest: - type: object - required: - - domain - properties: - domain: - type: string - example: foo.example.com - additionalProperties: false - UpdateDomainAssociationRequest: - type: object - properties: - deploymentId: - allOf: - - $ref: '#/components/schemas/DeploymentId' - nullable: true - additionalProperties: false - AddDomainCertificateRequest: - type: object - required: - - privateKey - - certificateChain - properties: - privateKey: - type: string - description: The PEM encoded private key for the TLS certificate - example: | - -----BEGIN EC PRIVATE KEY----- - foobar - -----END EC PRIVATE KEY----- - certificateChain: - type: string - description: The PRM encoded certificate chain for the TLS certificate - example: | - -----BEGIN CERTIFICATE----- - foobar - -----END CERTIFICATE----- - additionalProperties: false - DomainCertificate: - type: object - required: - - cipher - - expiresAt - - createdAt - - updatedAt - properties: - cipher: - $ref: '#/components/schemas/TlsCipher' - expiresAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - createdAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - updatedAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - additionalProperties: false - ProvisioningStatus: - oneOf: - - type: object - required: - - code - properties: - code: - type: string - enum: - - success - - type: object - required: - - message - - code - properties: - message: - type: string - code: - type: string - enum: - - failed - - type: object - required: - - code - properties: - code: - type: string - enum: - - pending - - type: object - required: - - code - properties: - code: - type: string - enum: - - manual - discriminator: - propertyName: code - DeploymentId: - type: string - description: >- - A deployment ID - - - Note that this is not UUID v4, as opposed to organization ID and project - ID. - example: abcde12vwxyz - DnsRecord: - type: object - required: - - type - - name - - content - properties: - type: - type: string - example: A - name: - type: string - example: deploy-sample - content: - type: string - example: 127.0.0.1 - additionalProperties: false - TlsCipher: - type: string - enum: - - rsa - - ec - x-stackQL-resources: - domains: - id: deno.domain.domains - name: domains - title: Domains - methods: - list_domains: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1domains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_domain: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1domains/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_domain: - operation: - $ref: '#/paths/~1domains~1{domainId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_domain_association: - operation: - $ref: '#/paths/~1domains~1{domainId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_domain: - operation: - $ref: '#/paths/~1domains~1{domainId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - verify_domain: - operation: - $ref: '#/paths/~1domains~1{domainId}~1verify/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/domains/methods/list_domains' - - $ref: '#/components/x-stackQL-resources/domains/methods/get_domain' - insert: - - $ref: '#/components/x-stackQL-resources/domains/methods/create_domain' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/domains/methods/delete_domain' - replace: [] - certificates: - id: deno.domain.certificates - name: certificates - title: Certificates - methods: - add_domain_certificate: - operation: - $ref: '#/paths/~1domains~1{domainId}~1certificates/post' - response: - mediaType: application/json - openAPIDocKey: '200' - provision_domain_certificates: - operation: - $ref: '#/paths/~1domains~1{domainId}~1certificates~1provision/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - replace: [] -servers: - - url: https://api.deno.com/v1 diff --git a/providers/src/deno/v00.00.00000/services/domains.yaml b/providers/src/deno/v00.00.00000/services/domains.yaml new file mode 100644 index 00000000..9a95b705 --- /dev/null +++ b/providers/src/deno/v00.00.00000/services/domains.yaml @@ -0,0 +1,528 @@ +openapi: 3.1.1 +info: + title: domains API + description: >- + A domain is a hostname (apex or wildcard) owned by an organization. Once + registered, a domain must be verified via a DNS-published + `_acme-challenge.` token, then receives a TLS certificate (uploaded + manually or provisioned via ACME). + + + **Lifecycle:** + + + 1. `POST /domains` — register the domain and receive the DNS records to + publish. + + 2. `POST /domains/{domainId}/verify` — re-runs DNS verification once records + propagate. + + 3. Either `POST /domains/{domainId}/certificates` (manual) or `POST + /domains/{domainId}/certificates/provision` (automatic ACME). + + 4. Attach to revisions via deploy or per-revision endpoints. + version: 2.0.0 +paths: + /v2/domains: + get: + operationId: domains.list + summary: List domains + description: List domains registered to the authenticated organization. + tags: + - domains + parameters: + - name: search + in: query + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The search query for filtering + - name: cursor + in: query + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The pagination cursor + - name: limit + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + allowEmptyValue: true + allowReserved: true + description: The maximum number of items to return + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Domain' + post: + operationId: domains.create + summary: Register a domain + description: >- + Register a hostname to the authenticated organization. Provide the bare + hostname (e.g. `acme.com`) — never a `*.` wildcard literal — and use + `kind` to control whether the apex, its wildcard subdomains, or both are + served. Returns the verification token and the DNS records the user must + publish. + tags: + - domains + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DomainInit' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + /v2/domains/{domain}: + get: + operationId: domains.get + summary: Get domain + description: Fetch a single domain by its id or name (e.g. `example.com`). + tags: + - domains + parameters: + - name: domain + in: path + required: true + schema: + type: string + description: The domain ID or name (e.g. `example.com`). Domain IDs are UUIDs. + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + delete: + operationId: domains.delete + summary: Delete a domain + description: >- + Permanently remove a domain and all associated bindings. Accepts the + domain id or name. + tags: + - domains + parameters: + - name: domain + in: path + required: true + schema: + type: string + description: The domain ID or name (e.g. `example.com`). Domain IDs are UUIDs. + responses: + '204': + description: OK + /v2/domains/{domain}/verify: + post: + operationId: domains.verify + summary: Verify domain ownership + description: >- + Re-run DNS-based ownership verification against the records the user + published. Returns the refreshed domain. Accepts the domain id or name. + tags: + - domains + parameters: + - name: domain + in: path + required: true + schema: + type: string + description: The domain ID or name (e.g. `example.com`). Domain IDs are UUIDs. + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + /v2/domains/{domain}/certificates: + post: + operationId: domains.uploadCertificate + summary: Upload a TLS certificate + description: >- + Upload a PEM-encoded certificate and private key. The server validates + that the certificate covers the domain and that the key algorithm is + RSA-2048 or EC P-256. Accepts the domain id or name. + tags: + - domains + parameters: + - name: domain + in: path + required: true + schema: + type: string + description: The domain ID or name (e.g. `example.com`). Domain IDs are UUIDs. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + certificate: + type: string + minLength: 1 + description: PEM-encoded certificate (full chain) + private_key: + type: string + minLength: 1 + description: PEM-encoded private key matching the certificate + required: + - certificate + - private_key + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Domain' + get: + operationId: domains.listCertificates + summary: List certificates + description: >- + Returns the current certificate set plus the latest provisioning + attempt's status. Clients poll this endpoint to observe progress of an + in-flight provisioning request. Accepts the domain id or name. + tags: + - domains + parameters: + - name: domain + in: path + required: true + schema: + type: string + description: The domain ID or name (e.g. `example.com`). Domain IDs are UUIDs. + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + certificates: + type: array + items: + $ref: '#/components/schemas/DomainCertificate' + provisioning_status: + $ref: '#/components/schemas/ProvisioningStatus' + required: + - certificates + - provisioning_status + /v2/domains/{domain}/certificates/provision: + post: + operationId: domains.provisionCertificate + summary: Request automatic TLS provisioning + description: >- + Schedules an ACME-based certificate to be provisioned for the domain. + Returns immediately with `202 Accepted`; poll `GET + /domains/{domain}/certificates` for status. Accepts the domain id or + name. + tags: + - domains + parameters: + - name: domain + in: path + required: true + schema: + type: string + description: The domain ID or name (e.g. `example.com`). Domain IDs are UUIDs. + responses: + '202': + description: OK + content: + application/json: + schema: + type: object + properties: + accepted: + enum: + - true + type: boolean + required: + - accepted +components: + schemas: + Domain: + type: object + properties: + id: + type: string + description: Unique domain identifier (UUID) + organization_id: + type: string + description: Organization that owns the domain + domain: + type: string + description: >- + The bare hostname (e.g. `shop.acme.com`). Wildcard coverage is + reported via `kind`, never as a `*.` literal in this field. + kind: + enum: + - base_only + - wildcard_only + - base_and_wildcard + description: Whether the domain covers the apex, a wildcard, or both + type: string + verification_token: + type: string + description: >- + Token to publish under `_acme-challenge.` for ownership + verification + is_validated: + type: boolean + description: True once DNS-based ownership has been confirmed + dns_records: + type: array + items: + type: array + items: + $ref: '#/components/schemas/DnsRecord' + description: >- + Alternative sets of DNS records to publish for verification and + routing. Each inner array is one complete, self-sufficient option — + publish every record from a single option (e.g. the `CNAME` option + *or* the `A`/`AAAA` option), not a mix across options. The + `_acme-challenge` verification record is required regardless of the + option chosen, so it is included in every option. + provisioning_status: + $ref: '#/components/schemas/ProvisioningStatus' + certificates: + type: array + items: + $ref: '#/components/schemas/DomainCertificate' + description: Currently stored certificates for this domain + created_at: + type: string + description: ISO 8601 timestamp of creation + updated_at: + type: string + description: ISO 8601 timestamp of last modification + required: + - id + - organization_id + - domain + - kind + - verification_token + - is_validated + - dns_records + - provisioning_status + - certificates + - created_at + - updated_at + DomainInit: + type: object + properties: + domain: + type: string + description: >- + Bare hostname to register, e.g. `shop.acme.com` — without a `*.` + prefix. Wildcard coverage is selected via `kind`, not by putting a + `*` label in the hostname. + kind: + $ref: '#/components/schemas/DomainKind' + description: >- + Whether the domain covers the apex, a wildcard, or both. Defaults to + `base_only`. To serve `*.preview.acme.com`, register + `preview.acme.com` with `wildcard_only` (wildcard subdomains only) + or `base_and_wildcard` (apex plus wildcard). + required: + - domain + DomainCertificate: + type: object + properties: + id: + type: string + description: Certificate identifier + kind: + enum: + - automatic + - manual + description: >- + `automatic` for ACME-provisioned certificates, `manual` for + user-uploaded ones + type: string + subject_alt_names: + type: array + items: + type: string + description: All hostnames covered by this certificate + private_key_algorithm: + enum: + - ec-p256 + - ec-p384 + - ec-p521 + - rsa-2048 + - rsa-3072 + - rsa-4096 + description: Private key algorithm + type: string + not_valid_before: + type: string + description: ISO 8601 start of validity window + not_valid_after: + type: string + description: ISO 8601 end of validity window + created_at: + type: string + description: ISO 8601 timestamp of when the certificate was stored + required: + - id + - kind + - subject_alt_names + - private_key_algorithm + - not_valid_before + - not_valid_after + - created_at + ProvisioningStatus: + type: object + properties: + code: + enum: + - success + - failed + - pending + - manual + description: Aggregate state of the most recent TLS provisioning attempt. + type: string + message: + type: string + description: Non-internal error detail when `code` is `failed` + required: + - code + DnsRecord: + type: object + properties: + name: + type: string + description: DNS record name (e.g. `@` for apex, or a subdomain label) + base: + type: string + description: Apex zone the record belongs to + type: + type: string + description: DNS record type (e.g. `CNAME`, `A`) + value: + type: string + description: Target value (hostname, IP, etc.) + required: + - name + - base + - type + - value + DomainKind: + enum: + - base_only + - wildcard_only + - base_and_wildcard + type: string + x-stackQL-resources: + domains: + id: deno.domains.domains + name: domains + title: Domains + methods: + list: + operation: + $ref: '#/paths/~1v2~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1domains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + verify: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1verify/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get' + - $ref: '#/components/x-stackQL-resources/domains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/domains/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/delete' + replace: [] + certificates: + id: deno.domains.certificates + name: certificates + title: Certificates + methods: + upload: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1certificates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1certificates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.certificates + provision: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1certificates~1provision/post' + response: + mediaType: application/json + openAPIDocKey: '202' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/certificates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/certificates/methods/upload' + update: [] + delete: [] + replace: [] +servers: + - url: https://api.deno.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/providers/src/deno/v00.00.00000/services/layers.yaml b/providers/src/deno/v00.00.00000/services/layers.yaml new file mode 100644 index 00000000..0dc8314b --- /dev/null +++ b/providers/src/deno/v00.00.00000/services/layers.yaml @@ -0,0 +1,524 @@ +openapi: 3.1.1 +info: + title: layers API + description: >- + A layer is a mutable configuration object that can be shared across multiple + apps. Layers provide the solution for bulk environment variable management: + instead of updating thousands of apps individually, you create a layer, + attach it to apps, then update the layer once. + + + **Key characteristics:** + + + - Organization-scoped and identified by ID or slug + + - Contain environment variables + + - Can include other layers (base layers) for hierarchical configuration + + - Apps reference layers in their `layers` array + + - Updating a layer is O(1) regardless of how many apps reference it + + - Layer updates cause running isolates to restart but do not require + redeployment + version: 2.0.0 +paths: + /v2/layers: + post: + operationId: layers.create + summary: Create layer + description: Create a new layer. + tags: + - layers + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + slug: + type: string + description: Human-readable layer slug + description: + type: string + description: Optional description of the layer's purpose + layers: + type: array + items: + $ref: '#/components/schemas/LayerRefInput' + description: Other layers to include for hierarchical configuration + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVarInput' + description: Environment variables for this layer + required: + - slug + responses: + '201': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Layer' + get: + operationId: layers.list + summary: List layers + description: List all layers in the organization. + tags: + - layers + parameters: + - name: search + in: query + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The search query for filtering + - name: cursor + in: query + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The pagination cursor + - name: limit + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + allowEmptyValue: true + allowReserved: true + description: The maximum number of items to return + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Layer' + /v2/layers/{layer}: + get: + operationId: layers.get + summary: Get layer + description: |- + Get a layer by ID or slug. + + Slugs cannot contain underscores; IDs always do. + tags: + - layers + parameters: + - name: layer + in: path + required: true + schema: + type: string + description: Layer ID or slug. Slugs cannot contain underscores; IDs always do. + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Layer' + patch: + operationId: layers.update + summary: Update layer + description: >- + Update a layer. This is the key operation for bulk environment variable + updates. + + + All fields are optional. `env_vars` performs a deep merge with existing + variables: update by ID, update by key+contexts match, or create new. + Set `delete: true` to remove a variable. + + + Running isolates will restart to pick up the new configuration. + tags: + - layers + parameters: + - name: layer + in: path + required: true + schema: + type: string + description: Layer ID or slug. Slugs cannot contain underscores; IDs always do. + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + slug: + type: string + description: New layer slug + description: + type: string + description: New description + layers: + type: array + items: + $ref: '#/components/schemas/LayerRefInput' + description: Replace all included layers + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVarUpdate' + description: Deep merge with existing environment variables + required: [] + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Layer' + delete: + operationId: layers.delete + summary: Delete layer + description: Returns 409 Conflict if apps still reference this layer. + tags: + - layers + parameters: + - name: layer + in: path + required: true + schema: + type: string + description: Layer ID or slug. Slugs cannot contain underscores; IDs always do. + responses: + '204': + description: OK + /v2/layers/{layer}/apps: + get: + operationId: layers.apps + summary: List apps using layer + description: |- + List apps that reference this layer. + + The `layer_position` indicates the index in each app's `layers` array. + tags: + - layers + parameters: + - name: layer + in: path + required: true + schema: + type: string + description: Layer ID or slug. Slugs cannot contain underscores; IDs always do. + - name: cursor + in: query + required: false + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The pagination cursor + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + allowEmptyValue: true + allowReserved: true + description: The maximum number of items to return + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/LayerAppRef' +components: + schemas: + LayerRefInput: + type: string + description: Layer ID to reference / Layer slug to reference + EnvVarInput: + type: object + properties: + key: + type: string + minLength: 1 + maxLength: 128 + description: The environment variable name + value: + type: string + maxLength: 65536 + description: The environment variable value + secret: + type: boolean + description: Whether to mask the value in API responses. Defaults to false + contexts: + description: >- + Deployment contexts this variable applies to. Defaults to `"all"`. + (JSON value: string or array) + type: string + required: + - key + - value + example: + key: DATABASE_URL + value: postgres://localhost/dev + Layer: + type: object + properties: + id: + type: string + description: Unique layer identifier + slug: + type: string + description: Human-readable layer slug + description: + type: string + description: Optional description of the layer's purpose + layers: + type: array + items: + $ref: '#/components/schemas/LayerRef' + description: >- + Base layers included by this layer, in priority order (later + overrides earlier). The including layer's own env vars take + precedence over all its bases + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVar' + description: Environment variables defined in this layer + app_count: + type: integer + minimum: -9007199254740991 + maximum: 9007199254740991 + description: Number of apps that reference this layer + created_at: + type: string + description: ISO 8601 timestamp of creation + updated_at: + type: string + description: ISO 8601 timestamp of last modification + required: + - id + - slug + - layers + - env_vars + - app_count + - created_at + - updated_at + example: + id: lyr_abc123 + slug: shared-secrets + description: Common API keys and secrets for all customer apps + layers: + - id: lyr_base123 + slug: base-config + env_vars: + - id: 00000000-0000-0000-0000-000000000000 + key: DATABASE_URL + value: postgres://host/db + secret: false + contexts: all + - id: 00000000-0000-0000-0000-000000000000 + key: API_SECRET + secret: true + contexts: all + app_count: 42 + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + EnvVarUpdate: + type: object + properties: + id: + type: string + description: ID of the existing variable to update or delete + key: + type: string + minLength: 1 + maxLength: 128 + description: Variable name. Used for matching when `id` is not provided + value: + type: string + maxLength: 65536 + description: New value for the variable + secret: + type: boolean + description: Whether to mask the value in API responses + contexts: + description: >- + Deployment contexts this variable applies to (JSON value: string or + array) + type: string + delete: + type: boolean + description: Set to true to remove this variable + example: + id: 00000000-0000-0000-0000-000000000000 + value: postgres://prod-host/db + LayerAppRef: + type: object + properties: + id: + type: string + format: uuid + description: Unique app identifier (UUID) + slug: + type: string + description: >- + Human-readable app slug. App slugs must be 3–32 characters long, may + contain only lowercase letters, numbers, and hyphens, cannot contain + underscores, must not start or end with a hyphen, must not have + consecutive hyphens in positions 3 and 4, and cannot be a reserved + slug. + layer_position: + type: integer + minimum: -9007199254740991 + maximum: 9007199254740991 + description: Index of this layer in the app's `layers` array + required: + - id + - slug + - layer_position + example: + id: 00000000-0000-0000-0000-000000000000 + slug: customer-app-1 + layer_position: 0 + LayerRef: + type: object + properties: + id: + type: string + description: Unique layer identifier + slug: + type: string + description: Human-readable layer slug + required: + - id + - slug + example: + id: lyr_abc123 + slug: shared-secrets + EnvVar: + type: object + properties: + id: + type: string + description: Unique identifier for the environment variable + key: + type: string + description: The environment variable name + value: + type: string + description: The value. Omitted when `secret` is true + secret: + type: boolean + description: Whether the value is masked in API responses + contexts: + description: >- + Deployment contexts this variable applies to. `"all"` means every + context. (JSON value: string or array) + type: string + required: + - id + - key + - secret + - contexts + example: + id: 00000000-0000-0000-0000-000000000000 + key: DATABASE_URL + value: postgres://localhost/dev + secret: false + contexts: all + x-stackQL-resources: + layers: + id: deno.layers.layers + name: layers + title: Layers + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1layers/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1v2~1layers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v2~1layers~1{layer}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1layers~1{layer}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v2~1layers~1{layer}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/layers/methods/get' + - $ref: '#/components/x-stackQL-resources/layers/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/layers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/layers/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/layers/methods/delete' + replace: [] + layer_apps: + id: deno.layers.layer_apps + name: layer_apps + title: Layer Apps + methods: + list: + operation: + $ref: '#/paths/~1v2~1layers~1{layer}~1apps/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/layer_apps/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.deno.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/providers/src/deno/v00.00.00000/services/organization.yaml b/providers/src/deno/v00.00.00000/services/organization.yaml deleted file mode 100644 index 4089afa5..00000000 --- a/providers/src/deno/v00.00.00000/services/organization.yaml +++ /dev/null @@ -1,341 +0,0 @@ -openapi: 3.0.3 -info: - title: organization API - description: Operations about organizations - version: 1.0.0 -paths: - /organizations/{organizationId}: - get: - tags: - - organization - summary: Get organization details - operationId: get_organization - parameters: - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Organization' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /organizations/{organizationId}/analytics: - get: - tags: - - organization - summary: Retrieve organization analytics - description: >- - This API returns analytics for the specified organization. - - The analytics are returned as time series data in 15 minute intervals, - with - - the `time` field representing the start of the interval. - operationId: get_organization_analytics - parameters: - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - - name: since - in: query - description: |- - - Start of the time range in RFC3339 format. - - Defaults to 24 hours ago. - - Note that the maximum allowed time range is 24 hours. - - required: true - schema: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - - name: until - in: query - description: |- - - End of the time range in RFC3339 format. - - Defaults to the current time. - - Note that the maximum allowed time range is 24 hours. - - required: true - schema: - type: string - format: date-time - example: '2021-08-02T00:00:00Z' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Analytics' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' -components: - schemas: - Organization: - type: object - required: - - id - - name - - createdAt - - updatedAt - properties: - id: - type: string - format: uuid - name: - type: string - createdAt: - type: string - format: date-time - updatedAt: - type: string - format: date-time - additionalProperties: false - example: - id: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 - name: my-org - createdAt: '2021-08-01T00:00:00Z' - updatedAt: '2021-08-01T00:00:00Z' - ErrorBody: - type: object - required: - - code - - message - properties: - code: - type: string - description: The error code - message: - type: string - description: The error message - Analytics: - type: object - description: Project analytics data - required: - - fields - - values - properties: - fields: - type: array - items: - $ref: '#/components/schemas/AnalyticsFieldSchema' - values: - type: array - items: - type: array - items: - $ref: '#/components/schemas/AnalyticsDataValue' - additionalProperties: false - example: - fields: - - name: time - type: time - - name: requestCount - type: number - - name: cpuSeconds - type: number - - name: uptimeSeconds - type: number - - name: maxRssMemoryBytes - type: number - - name: networkIngressBytes - type: number - - name: networkEgressBytes - type: number - - name: kvReadCount - type: number - - name: kvWriteCount - type: number - - name: kvReadUnits - type: number - - name: kvWriteUnits - type: number - - name: kvStorageBytes - type: number - values: - - - '2023-08-01T00:00:00Z' - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - - '2023-08-01T00:15:00Z' - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - - '2023-08-01T00:30:00Z' - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - - '2023-08-01T00:45:00Z' - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - - '2023-08-01T01:00:00Z' - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - AnalyticsFieldSchema: - type: object - required: - - name - - type - properties: - name: - type: string - type: - $ref: '#/components/schemas/AnalyticsFieldType' - additionalProperties: false - AnalyticsDataValue: - oneOf: - - type: string - format: date-time - - type: number - format: double - - type: string - - type: boolean - - {} - AnalyticsFieldType: - type: string - description: >- - A data type that analytic data can be represented in. - - - Inspired by Grafana's data types defined at: - - https://github.com/grafana/grafana/blob/e3288834b37b9aac10c1f43f0e621b35874c1f8a/packages/grafana-data/src/types/dataFrame.ts#L11-L23 - enum: - - time - - number - - string - - boolean - - other - x-stackQL-resources: - organizations: - id: deno.organization.organizations - name: organizations - title: Organizations - methods: - get_organization: - operation: - $ref: '#/paths/~1organizations~1{organizationId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/organizations/methods/get_organization - insert: [] - update: [] - delete: [] - replace: [] - analytics: - id: deno.organization.analytics - name: analytics - title: Analytics - methods: - get_organization_analytics: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1analytics/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/analytics/methods/get_organization_analytics - insert: [] - update: [] - delete: [] - replace: [] -servers: - - url: https://api.deno.com/v1 diff --git a/providers/src/deno/v00.00.00000/services/project.yaml b/providers/src/deno/v00.00.00000/services/project.yaml deleted file mode 100644 index bfd57507..00000000 --- a/providers/src/deno/v00.00.00000/services/project.yaml +++ /dev/null @@ -1,652 +0,0 @@ -openapi: 3.0.3 -info: - title: project API - description: Operations about projects - version: 1.0.0 -paths: - /organizations/{organizationId}/projects: - get: - tags: - - project - summary: List projects of an organization - description: >- - This API returns a list of projects belonging to the specified - organization - - in a pagenated manner. - - The URLs for the next, previous, first, and last page are returned in - the - - `Link` header of the response, if any. - operationId: list_projects - parameters: - - name: page - in: query - description: The page number to return. - required: false - schema: - type: integer - default: 1 - nullable: true - minimum: 1 - - name: limit - in: query - description: The maximum number of items to return per page. - required: false - schema: - type: integer - default: 20 - nullable: true - maximum: 100 - minimum: 1 - - name: q - in: query - description: Query by project name or project ID - required: false - schema: - type: string - nullable: true - - name: sort - in: query - description: >- - The field to sort by, either `name`, `updated_at`, `requests`, or - `bandwidth`. Defaults to `updated_at`. - required: false - schema: - type: string - nullable: true - - name: order - in: query - description: Sort order, either `asc` or `desc`. Defaults to `asc`. - required: false - schema: - type: string - nullable: true - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - headers: - Link: - schema: - $ref: '#/components/schemas/PaginationLinkHeader' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Project' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - post: - tags: - - project - summary: Create a project - description: |- - This API allows you to create a new project under the specified - organization. - The project name is optional; if not provided, a random name will be - generated. - operationId: create_project - parameters: - - name: organizationId - in: path - description: Organization ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/CreateProjectRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Project' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /projects/{projectId}: - get: - tags: - - project - summary: Get project details - operationId: get_project - parameters: - - name: projectId - in: path - description: Project ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Project' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - patch: - tags: - - project - summary: Update project details - operationId: update_project - parameters: - - name: projectId - in: path - description: Project ID - required: true - schema: - type: string - format: uuid - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateProjectRequest' - required: true - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Project' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - delete: - tags: - - project - summary: Delete a project - operationId: delete_project - parameters: - - name: projectId - in: path - description: Project ID - required: true - schema: - type: string - format: uuid - responses: - '200': - description: Success - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - /projects/{projectId}/analytics: - get: - tags: - - project - summary: Retrieve project analytics - description: >- - This API returns analytics for the specified project. - - The analytics are returned as time series data in 15 minute intervals, - with - - the `time` field representing the start of the interval. - operationId: get_project_analytics - parameters: - - name: projectId - in: path - description: Project ID - required: true - schema: - type: string - format: uuid - - name: since - in: query - description: |- - - Start of the time range in RFC3339 format. - - Defaults to 24 hours ago. - - required: true - schema: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - - name: until - in: query - description: |- - - End of the time range in RFC3339 format. - - Defaults to the current time. - - required: true - schema: - type: string - format: date-time - example: '2021-08-02T00:00:00Z' - responses: - '200': - description: Success - content: - application/json: - schema: - $ref: '#/components/schemas/Analytics' - '400': - description: Invalid Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBody' -components: - schemas: - PaginationLinkHeader: - type: string - description: >- - Pagination links. - - This header provides URLS for the `prev`, `next`, `first`, and `last` - pages. - - The format conforms to [RFC 8288](https://tools.ietf.org/html/rfc8288). - example: >- - ; rel="next", - ; rel="prev", - ; rel="first", - ; rel="last" - Project: - type: object - required: - - id - - name - - description - - createdAt - - updatedAt - properties: - id: - type: string - format: uuid - example: a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11 - name: - type: string - example: my-project - description: - type: string - example: this is my project. - maxLength: 1000 - createdAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - updatedAt: - type: string - format: date-time - example: '2021-08-01T00:00:00Z' - additionalProperties: false - ErrorBody: - type: object - required: - - code - - message - properties: - code: - type: string - description: The error code - message: - type: string - description: The error message - CreateProjectRequest: - type: object - properties: - name: - type: string - description: >- - The name of the project. This must be globally unique. If this is - `null`, - - a random unique name will be generated. - example: my-project - nullable: true - description: - type: string - description: >- - The description of the project. If this is `null`, an empty string - will be - - set. - example: This is my project. - nullable: true - maxLength: 1000 - additionalProperties: false - UpdateProjectRequest: - type: object - properties: - name: - type: string - description: >- - The name of the project to be updated to. This must be globally - unique. - - If this is `null`, no update will be made to the project name. - example: my-project2 - nullable: true - description: - type: string - description: >- - The description of the project to be updated to. If this is `null`, - no - - update will be made to the project description. - example: This is my project2. - nullable: true - maxLength: 1000 - additionalProperties: false - Analytics: - type: object - description: Project analytics data - required: - - fields - - values - properties: - fields: - type: array - items: - $ref: '#/components/schemas/AnalyticsFieldSchema' - values: - type: array - items: - type: array - items: - $ref: '#/components/schemas/AnalyticsDataValue' - additionalProperties: false - example: - fields: - - name: time - type: time - - name: requestCount - type: number - - name: cpuSeconds - type: number - - name: uptimeSeconds - type: number - - name: maxRssMemoryBytes - type: number - - name: networkIngressBytes - type: number - - name: networkEgressBytes - type: number - - name: kvReadCount - type: number - - name: kvWriteCount - type: number - - name: kvReadUnits - type: number - - name: kvWriteUnits - type: number - - name: kvStorageBytes - type: number - values: - - - '2023-08-01T00:00:00Z' - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - 111 - - - '2023-08-01T00:15:00Z' - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - 222 - - - '2023-08-01T00:30:00Z' - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - 333 - - - '2023-08-01T00:45:00Z' - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - 444 - - - '2023-08-01T01:00:00Z' - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - - 555 - AnalyticsFieldSchema: - type: object - required: - - name - - type - properties: - name: - type: string - type: - $ref: '#/components/schemas/AnalyticsFieldType' - additionalProperties: false - AnalyticsDataValue: - oneOf: - - type: string - format: date-time - - type: number - format: double - - type: string - - type: boolean - - {} - AnalyticsFieldType: - type: string - description: >- - A data type that analytic data can be represented in. - - - Inspired by Grafana's data types defined at: - - https://github.com/grafana/grafana/blob/e3288834b37b9aac10c1f43f0e621b35874c1f8a/packages/grafana-data/src/types/dataFrame.ts#L11-L23 - enum: - - time - - number - - string - - boolean - - other - x-stackQL-resources: - projects: - id: deno.project.projects - name: projects - title: Projects - methods: - list_projects: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1projects/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_project: - operation: - $ref: '#/paths/~1organizations~1{organizationId}~1projects/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_project: - operation: - $ref: '#/paths/~1projects~1{projectId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_project: - operation: - $ref: '#/paths/~1projects~1{projectId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_project: - operation: - $ref: '#/paths/~1projects~1{projectId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/projects/methods/list_projects' - - $ref: '#/components/x-stackQL-resources/projects/methods/get_project' - insert: - - $ref: '#/components/x-stackQL-resources/projects/methods/create_project' - update: - - $ref: '#/components/x-stackQL-resources/projects/methods/update_project' - delete: - - $ref: '#/components/x-stackQL-resources/projects/methods/delete_project' - replace: [] - analytics: - id: deno.project.analytics - name: analytics - title: Analytics - methods: - get_project_analytics: - operation: - $ref: '#/paths/~1projects~1{projectId}~1analytics/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/analytics/methods/get_project_analytics - insert: [] - update: [] - delete: [] - replace: [] -servers: - - url: https://api.deno.com/v1 diff --git a/providers/src/deno/v00.00.00000/services/revisions.yaml b/providers/src/deno/v00.00.00000/services/revisions.yaml new file mode 100644 index 00000000..2d4307a3 --- /dev/null +++ b/providers/src/deno/v00.00.00000/services/revisions.yaml @@ -0,0 +1,1727 @@ +openapi: 3.1.1 +info: + title: revisions API + description: |- + A revision represents a specific build and deployment of an app. Revisions are immutable once created — to make changes, you create a new revision. The only mutable property is `retention` (enterprise opt-in), a garbage-collection policy of `auto` or `indefinite`. + + Status lifecycle: `queued` → `building` → `succeeded` (success), `queued` → `failed` (build error, cancelled, or timeout), or `queued` → `skipped`. + version: 2.0.0 +paths: + /v2/apps/{app}/deploy: + post: + operationId: apps.deploy + summary: Create revision + description: |- + Create a new revision (deployment). + + Upload source files as assets and optionally specify `config`, `layers`, `env_vars`, and `labels`. Asset keys are relative paths resolved against `/app/src`. + + If `config` is omitted, it is inherited from the app's config. If specified, it fully replaces the app's config (no deep merge). + + Revision `env_vars` are immutable once created and have highest priority in the resolution order. Context filtering is not supported for revision env vars. + + Use `production` and `preview` to control which timelines the revision is deployed to. By default, revisions are deployed to the production timeline only. + tags: + - apps + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + assets: + type: object + additionalProperties: + $ref: '#/components/schemas/Asset' + description: Source files to deploy. Keys are paths relative to `/app/src` + example: + main.ts: + kind: file + encoding: utf-8 + content: Deno.serve(() => new Response("Hello")); + deno.json: + kind: file + encoding: utf-8 + content: '{"imports": {}}' + config: + $ref: '#/components/schemas/Config' + description: Build and runtime config. If omitted, inherited from the app + layers: + type: array + items: + $ref: '#/components/schemas/LayerRefInput' + description: Layers to reference for this revision + env_vars: + type: array + items: + $ref: '#/components/schemas/EnvVarInputForDeploy' + description: Revision-specific environment variables (immutable once created) + labels: + $ref: '#/components/schemas/Labels' + description: Metadata labels (e.g. git branch, commit SHA) + production: + $ref: '#/components/schemas/ProductionTarget' + default: true + description: 'Whether and how to deploy to the production timeline. `true` (the default) or `{}` joins production with default wiring — the default `.` alias floats to this revision. `false` keeps it out of production. `{ "domains": [...] }` enters explicit mode: only the listed hostnames are bound (each pinned to this revision), and the default alias is attached only if you list it explicitly as `{deno.app.slug}..`. `{ "domains": [] }` attaches nothing. `{ "databases": [{ "instance": "...", "name": "..." }] }` binds the listed databases under the Production partition_config (materialised on first use). `domains` and `databases` may be combined.' + preview: + $ref: '#/components/schemas/PreviewTarget' + default: false + description: 'Whether and how to deploy to the preview timeline. `true` or `{}` joins preview with the default per-revision preview URL. `false` (the default) keeps it out. `{ "domains": [...] }` binds only the listed hostnames (each pinned to this revision). `{ "databases": [{ "instance": "...", "name": "..." }] }` binds the listed databases under the Preview partition_config.' + retention: + enum: + - auto + - indefinite + default: auto + description: Garbage-collection policy for the new revision. `auto` (the default) follows the normal inactivity-based cleanup; `indefinite` exempts it from automatic deletion. `indefinite` is only available to enterprise organizations that have opted in to revision retention — contact Deno support to enable it. For organizations without the feature, a deploy that sets `indefinite` fails with `403 REVISION_RETENTION_NOT_AVAILABLE`. + type: string + required: + - assets + responses: + '202': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Revision' + /v2/revisions/{revision}: + get: + operationId: revisions.get + summary: Get revision details + description: |- + Get revision details. + + Revision IDs are globally unique. The response includes `layers`, `env_vars`, and `config` when available. + + Status lifecycle (one of): + - queued -> building -> succeeded (success) + - queued -> failed (build error, cancelled, or timeout) + - queued -> skipped (e.g., commit message contains [skip-ci]) + + The `timelines` field is an eventually consistent view of routing: after a deploy or a domain change it may briefly reflect the previous state (typically for a few seconds at most). + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Revision' + patch: + operationId: revisions.update + summary: Update revision + description: |- + Update mutable revision properties. The only mutable property is `retention`, the revision's garbage-collection policy: `auto` follows the normal inactivity-based cleanup, while `indefinite` exempts the revision from automatic deletion so it keeps serving on its preview and pinned-production domains. Explicitly deleting the revision, or deleting its app, is always permitted regardless of `retention`. + + `indefinite` is only available to enterprise organizations that have opted in — contact Deno support to enable it. For organizations without the feature, requests that set `indefinite` fail with `403 REVISION_RETENTION_NOT_AVAILABLE`. + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + retention: + enum: + - auto + - indefinite + description: The revision's garbage-collection policy (`auto` or `indefinite`) + type: string + required: [] + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Revision' + delete: + operationId: revisions.delete + summary: Delete revision + description: Delete a revision. Cannot delete revisions that are currently building or actively routed. + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + responses: + '204': + description: OK + /v2/revisions/{revision}/cancel: + post: + operationId: revisions.cancel + summary: Cancel revision build + description: 'Request cancellation of a build in progress. Cancellation is asynchronous — this endpoint returns immediately with the current revision state. The `cancellation_requested_at` field will be set, but the revision may still be in `building` status. Poll the revision or use the [/progress](#tag/revisions/GET/api/v2/revisions/{revision}/progress) endpoint to wait for the build to reach the `failed` state with `failure_reason: "cancelled"`.' + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Revision' + /v2/apps/{app}/revisions: + get: + operationId: revisions.list + summary: List revisions for app + description: List revisions for an app. Optionally filter by status. + tags: + - revisions + parameters: + - name: app + in: path + required: true + schema: + type: string + description: The app ID or slug. App slugs must be 3–32 characters long, may contain only lowercase letters, numbers, and hyphens, cannot contain underscores, must not start or end with a hyphen, must not have consecutive hyphens in positions 3 and 4, and cannot be a reserved slug. App IDs are UUIDs. + - name: cursor + in: query + required: false + schema: + type: string + allowEmptyValue: true + allowReserved: true + description: The pagination cursor + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + allowEmptyValue: true + allowReserved: true + description: The maximum number of items to return + - name: status + in: query + required: false + schema: + enum: + - skipped + - queued + - building + - succeeded + - failed + description: Filter revisions by status + type: string + style: deepObject + explode: true + allowEmptyValue: true + allowReserved: true + description: Filter by revision status + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RevisionListItem' + /v2/revisions/{revision}/progress: + get: + operationId: revisions.progress + summary: Stream revision progress + description: |- + Stream revision build progress. The stream ends when the revision + reaches a terminal state (`succeeded`, `failed`, or `skipped`). + + Supports both JSONL (`Accept: application/x-ndjson`) and SSE (`Accept: text/event-stream`) + formats via the `Accept` header. + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + responses: + '200': + description: OK + content: + application/x-ndjson: + schema: + $ref: '#/components/schemas/RevisionProgress' + /v2/revisions/{revision}/build_logs: + get: + operationId: revisions.build_logs + summary: Stream build logs + description: |- + Stream build logs for a revision. + + Supports both Server-Sent Events (SSE) (`Accept: text/event-stream`) and JSON Lines (`Accept: application/x-ndjson`) formats. Use the `Accept` header to specify the desired format. + + The stream remains open during active builds and closes when the build completes. + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + - name: step + in: query + required: false + schema: + enum: + - preparing + - installing + - building + - deploying + description: Filter logs by build step + type: string + style: deepObject + explode: true + allowEmptyValue: true + allowReserved: true + description: Filter logs by build step + - name: timeline + in: query + required: false + schema: + type: string + description: Filter logs by timeline slug + allowEmptyValue: true + allowReserved: true + description: Filter logs by timeline slug + responses: + '200': + description: OK + content: + application/x-ndjson: + schema: + $ref: '#/components/schemas/BuildLogEntry' + /v2/revisions/{revision}/timelines: + get: + operationId: revisions.timelines + summary: Get revision timelines + description: Get the timelines (deployment targets) where this revision is active. + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Timeline' + /v2/revisions/{revision}/domains: + put: + operationId: revisions.attachDomain + summary: Attach domains to a revision + description: |- + Bind domains to this revision. Bindings are scoped to this revision only — other revisions keep their existing routing. + + Each hostname must fall under a domain your organization has already verified, following the same rule and `{variable}` template syntax as the `domains` field on `POST /apps/{app}/deploy` (see its `production`/`preview` documentation). + + You can also (re-)attach this revision to the app's **default** managed domains post-deployment by listing the default-alias template — the same value `POST /apps/{app}/deploy` accepts (e.g. `{deno.app.slug}..` under `production`, or the per-revision `{deno.app.slug}-{deno.revision.id}.…` under `preview`). Listing it sets the timeline label on the revision rather than pinning a custom hostname: the default production host floats to the **latest** revision attached this way, while each revision keeps its own default preview host. + + Binding the same hostname to this revision again is a no-op. Use `DELETE /revisions/{revision}/domains/{hostname}` to remove a binding. + + A hostname always resolves to **exactly one** revision. Binding is additive: attaching a hostname to a revision never detaches it from any revision it is already bound to. When a hostname is bound to several revisions, the **most recently created revision wins**. + + Because the newest bound revision always wins, moving a hostname *forward* to a newer revision is just an attach: bind it to the newer revision and that revision immediately takes over routing — you do not detach the old one. Moving a hostname *back* to an older revision is different: re-attaching the older revision has no effect while a newer revision is still bound, so you must explicitly `DELETE` the binding on every newer revision. Detaching the currently-winning revision falls back to the next most recently created revision that is still bound; the hostname only stops routing once its last binding is removed. + + Returns `204 No Content` on success. + tags: + - revisions + - domains + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + production: + type: array + items: + type: string + minLength: 1 + description: 'Hostnames to bind to this revision under the production timeline. Every entry must fall under a domain your organization has already verified — either the verified domain itself (an apex hostname such as `my-domain.com` bound against the verified `my-domain.com`) or a subdomain of a verified wildcard domain (such as `my-app.my-org.deno.net` bound against the verified `*.my-org.deno.net`). A hostname that does not fall under any verified domain is rejected. The leading label of a subdomain may contain `{variable}` template expressions so the hostname resolves to a distinct value per revision. Template variables may appear only in the first label, may be combined with static text and with each other (e.g. `pr-{deno.revision.id}` or `{deno.app.slug}--{deno.revision.id}`), and must not contain a dot. The available variables are `{deno.revision.id}`, `{deno.app.slug}` (or its opaque equivalent `{deno.app.id}`), and `{deno.organization.id}`. A hostname always resolves to exactly one revision: binding is additive, but when a hostname is bound to multiple revisions the most recently created revision wins. To roll a hostname back to an older revision you must explicitly detach the newer revision(s) via `DELETE /revisions/{revision}/domains/{hostname}`.' + preview: + type: array + items: + type: string + minLength: 1 + description: 'Hostnames to bind to this revision under the preview timeline. Every entry must fall under a domain your organization has already verified — either the verified domain itself (an apex hostname such as `my-domain.com` bound against the verified `my-domain.com`) or a subdomain of a verified wildcard domain (such as `my-app.my-org.deno.net` bound against the verified `*.my-org.deno.net`). A hostname that does not fall under any verified domain is rejected. The leading label of a subdomain may contain `{variable}` template expressions so the hostname resolves to a distinct value per revision. Template variables may appear only in the first label, may be combined with static text and with each other (e.g. `pr-{deno.revision.id}` or `{deno.app.slug}--{deno.revision.id}`), and must not contain a dot. The available variables are `{deno.revision.id}`, `{deno.app.slug}` (or its opaque equivalent `{deno.app.id}`), and `{deno.organization.id}`. A hostname always resolves to exactly one revision: binding is additive, but when a hostname is bound to multiple revisions the most recently created revision wins. To roll a hostname back to an older revision you must explicitly detach the newer revision(s) via `DELETE /revisions/{revision}/domains/{hostname}`.' + required: [] + responses: + '204': + description: OK + /v2/revisions/{revision}/domains/{hostname}: + delete: + operationId: revisions.detachDomain + summary: Detach a domain from a revision + description: |- + Remove this revision's binding for the given hostname. Hostnames are unique, so the binding is identified by hostname alone — the timeline/context is inferred. Pass the same hostname (including any `{variable}` template syntax) that was used to attach it. + + Passing a **default**-alias template detaches the revision from the app's default managed domain instead of removing a custom binding: the default production host rolls back to the next most recently attached revision, and the default preview host for this revision goes offline. + + Detaching one hostname leaves the revision's other hostnames untouched, even when they share a parent domain. Other revisions and app-level custom-domain assignments are not affected. Returns `404` if no binding exists. + tags: + - revisions + - domains + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + - name: hostname + in: path + required: true + schema: + type: string + minLength: 1 + responses: + '204': + description: OK + /v2/revisions/{revision}/promote: + post: + operationId: revisions.promote + summary: Promote a revision to production + description: |- + Make this already-built revision the live production revision without rebuilding. Pins the app's default production timeline to this revision (joining the timeline first if needed), so the default managed production host — and any custom domains assigned to the app's production timeline — route to it, and it runs with the production context's environment variables and databases. + + This differs from attaching the default production alias via `PUT /revisions/{revision}/domains`: that only marks the revision as a production *member* and lets the **newest** member serve, whereas this **pins this specific** revision, so it serves even when it is older than another production revision. To undo, promote a different revision (re-pins) or remove the production override. + + The revision must be built (status `routed`). Returns `204 No Content`. + tags: + - revisions + parameters: + - name: revision + in: path + required: true + schema: + type: string + description: Revision ID (globally unique) + responses: + '204': + description: OK +components: + schemas: + Asset: + example: + kind: file + encoding: utf-8 + content: Deno.serve(() => new Response("Hello")); + type: object + properties: + kind: + default: file + description: Asset type discriminator + enum: + - file + type: string + encoding: + enum: + - utf-8 + - base64 + default: utf-8 + description: Content encoding + type: string + content: + type: string + description: File content, encoded according to `encoding` + target: + type: string + description: Relative path to the symlink target + required: + - content + - kind + - target + Config: + type: object + properties: + framework: + enum: + - '' + - nextjs + - astro + - nuxt + - remix + - solidstart + - tanstackstart + - sveltekit + - fresh + - lume + description: Framework preset. Mutually exclusive with `runtime` + type: string + install: + description: Custom install command. Omit to skip the install step + nullable: true + type: string + build: + description: Custom build command. Omit to skip the build step + nullable: true + type: string + predeploy: + description: Command to run before each deployment (e.g. database migrations). Omit to skip + nullable: true + type: string + runtime: + $ref: '#/components/schemas/Runtime' + description: Runtime configuration. Mutually exclusive with `framework` + crons: + type: boolean + description: Whether cron jobs are enabled for revisions of the app. When false, revisions that register cron jobs using Deno.cron fail to build. Defaults to true + example: + framework: nextjs + install: npm install + build: npm run build + LayerRefInput: + type: string + description: Layer ID to reference / Layer slug to reference + EnvVarInputForDeploy: + type: object + properties: + key: + type: string + minLength: 1 + maxLength: 128 + description: The environment variable name + value: + type: string + maxLength: 65536 + description: The environment variable value + required: + - key + - value + example: + key: DATABASE_URL + value: postgres://localhost/dev + Labels: + type: object + additionalProperties: + type: string + description: '(JSON value: string or array)' + example: + custom.customer_id: cust_123 + custom.environment: production + custom.regions: + - us-east + - eu-west + ProductionTarget: + type: string + description: '(JSON value: boolean or object)' + PreviewTarget: + type: string + description: '(JSON value: boolean or object)' + Revision: + type: object + properties: + id: + type: string + description: Unique revision identifier + status: + enum: + - skipped + - queued + - building + - succeeded + - failed + description: Current revision lifecycle status + type: string + failure_reason: + description: Reason for failure, or null if not failed + nullable: true + enum: + - error + - cancelled + - timed_out + - skipped + type: string + failure_detail: + description: Structured detail for a deployment that failed after a successful build (e.g. the application failed to start during warmup), or null. Build failures and cancellations do not carry this detail. + nullable: true + type: object + properties: + stage: + type: string + description: Deployment stage that failed. Currently always "warmup" — the post-build boot check of the deployed application. New stages may be added; clients must tolerate unknown values. + code: + type: string + description: Machine-readable failure code. Currently "boot_failed" (the deployed application failed to start — check the application logs for the startup error) or "internal" (a platform-side failure). New codes may be added; clients must tolerate unknown values. + message: + type: string + description: Human-readable description of the failure + required: + - stage + - code + - message + labels: + $ref: '#/components/schemas/Labels' + description: Metadata labels attached to this revision (e.g. git info) + layers: + type: array + items: + $ref: '#/components/schemas/LayerRef' + description: Layers referenced by this revision, in priority order (later overrides earlier) + env_vars: + type: array + items: + $ref: '#/components/schemas/RevisionEnvVar' + description: Revision-specific environment variables (immutable once created) + config: + $ref: '#/components/schemas/ConfigOutput' + description: Build and runtime configuration used for this revision + created_at: + type: string + description: ISO 8601 timestamp of creation + cancellation_requested_at: + description: ISO 8601 timestamp when cancellation was requested, or null + nullable: true + type: string + build_finished_at: + description: ISO 8601 timestamp when the build completed, or null if still building + nullable: true + type: string + deleted_at: + description: ISO 8601 timestamp of deletion, or null if active + nullable: true + type: string + retention: + enum: + - auto + - indefinite + description: 'Garbage-collection policy for this revision. `auto` follows the normal inactivity-based cleanup; `indefinite` exempts the revision from automatic deletion. Only available to enterprise organizations that have opted in to revision retention — contact Deno support to enable it. Absent for organizations without the feature, which cannot set it. Retention only guards against automatic deletion: explicitly deleting the revision, or deleting its app, always succeeds regardless.' + type: string + timelines: + type: array + items: + $ref: '#/components/schemas/RevisionTimeline' + description: Timelines this revision is part of, each with the hostnames that currently route to this revision on that timeline + required: + - id + - status + - failure_reason + - failure_detail + - layers + - env_vars + - created_at + - cancellation_requested_at + - build_finished_at + - deleted_at + - timelines + example: + id: r2ysnrrhr352 + status: succeeded + failure_reason: null + failure_detail: null + labels: + custom.branch: main + custom.sha: abc123def456 + layers: + - id: lyr_abc123 + slug: deployment-secrets + env_vars: + - key: BUILD_ID + value: abc123 + config: + framework: fresh + install: deno cache main.ts + created_at: '2024-01-15T10:30:00Z' + cancellation_requested_at: null + build_finished_at: '2024-01-15T10:31:50Z' + deleted_at: null + timelines: + - name: Production + context: Production + hostnames: + - my-app.my-org.deno.net + RevisionListItem: + type: object + properties: + id: + type: string + description: Unique revision identifier + status: + enum: + - skipped + - queued + - building + - succeeded + - failed + description: Current revision lifecycle status + type: string + failure_reason: + description: Reason for failure, or null if not failed + nullable: true + enum: + - error + - cancelled + - timed_out + - skipped + type: string + labels: + $ref: '#/components/schemas/Labels' + description: Metadata labels attached to this revision + created_at: + type: string + description: ISO 8601 timestamp of creation + cancellation_requested_at: + description: ISO 8601 timestamp when cancellation was requested, or null + nullable: true + type: string + build_finished_at: + description: ISO 8601 timestamp when the build completed, or null if still building + nullable: true + type: string + deleted_at: + description: ISO 8601 timestamp of deletion, or null if active + nullable: true + type: string + retention: + enum: + - auto + - indefinite + description: Garbage-collection policy (`auto` or `indefinite`). Only present for enterprise organizations opted in to revision retention. + type: string + required: + - id + - status + - failure_reason + - created_at + - cancellation_requested_at + - build_finished_at + - deleted_at + RevisionProgress: + type: object + properties: + queued: + description: Queue stage — waiting for a build slot + type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + preparing: + description: Prepare stage — cloning source code and restoring caches + type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + installing: + description: Install stage — installing dependencies + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + type: object + properties: + command: + description: The command being executed, or null if not applicable + nullable: true + type: string + required: + - command + building: + description: Build stage — running the build command + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + type: object + properties: + command: + description: The command being executed, or null if not applicable + nullable: true + type: string + required: + - command + deploying: + description: Deploy stage — uploading artifacts and routing traffic + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + type: object + properties: + timelines: + type: array + items: + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + type: object + properties: + slug: + type: string + description: Timeline slug + partition: + type: object + additionalProperties: + type: string + description: Partition key-value pairs identifying this timeline + example: + git.branch: main + databases: + type: array + items: + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + type: object + properties: + engine: + type: string + description: Database engine type (e.g. postgresql, denokv) + required: + - engine + description: Per-database provisioning progress + predeploy: + description: Pre-deploy command stage progress + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + type: object + properties: + command: + description: The command being executed, or null if not applicable + nullable: true + type: string + required: + - command + warmup: + description: Isolate warmup stage progress + oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + routing: + description: Domain routing stage progress + oneOf: + - oneOf: + - type: object + properties: + status: + description: Stage has not started yet + enum: + - pending + type: string + required: + - status + - type: object + properties: + status: + description: Stage was skipped + enum: + - skipped + type: string + required: + - status + - type: object + properties: + status: + description: Stage is currently running + enum: + - running + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + required: + - status + - start + - type: object + properties: + status: + enum: + - succeeded + - timed_out + - cancelled + - errored + description: Terminal stage status + type: string + start: + type: string + description: ISO 8601 timestamp when the stage started + end: + type: string + description: ISO 8601 timestamp when the stage ended + required: + - status + - start + - end + - type: object + properties: + status: + description: Routing is blocked waiting for other timelines + enum: + - timeline_blocked + type: string + timelines: + type: array + items: + type: object + properties: + slug: + type: string + description: Timeline slug + partition: + type: object + additionalProperties: {} + description: Partition key-value pairs identifying this timeline + example: + git.branch: main + required: + - slug + - partition + description: Timelines that are blocking this stage + stage: + description: The stage that is blocked + enum: + - warmup + type: string + required: + - status + - timelines + - stage + required: + - slug + - partition + - databases + - predeploy + - routing + description: Per-timeline deployment progress + required: + - timelines + required: + - queued + - preparing + - installing + - building + - deploying + example: + queued: + status: succeeded + start: '2025-01-01T00:00:00Z' + end: '2025-01-01T00:00:01Z' + preparing: + status: succeeded + start: '2025-01-01T00:00:01Z' + end: '2025-01-01T00:00:05Z' + installing: + status: succeeded + start: '2025-01-01T00:00:05Z' + end: '2025-01-01T00:00:10Z' + command: null + building: + status: succeeded + start: '2025-01-01T00:00:10Z' + end: '2025-01-01T00:00:20Z' + command: deno task build + deploying: + status: succeeded + start: '2025-01-01T00:00:20Z' + end: '2025-01-01T00:00:25Z' + timelines: + - status: succeeded + start: '2025-01-01T00:00:20Z' + end: '2025-01-01T00:00:25Z' + slug: production + partition: {} + databases: + - status: succeeded + start: '2025-01-01T00:00:20Z' + end: '2025-01-01T00:00:22Z' + engine: postgresql + - status: succeeded + start: '2025-01-01T00:00:20Z' + end: '2025-01-01T00:00:21Z' + engine: denokv + predeploy: + status: succeeded + start: '2025-01-01T00:00:22Z' + end: '2025-01-01T00:00:23Z' + command: deno task db:migrate + routing: + status: succeeded + start: '2025-01-01T00:00:23Z' + end: '2025-01-01T00:00:25Z' + BuildLogEntry: + type: object + properties: + timestamp: + type: string + description: ISO 8601 timestamp of the log entry + level: + enum: + - debug + - info + - warn + - error + description: Log severity level + type: string + message: + type: string + description: Log message content + step: + $ref: '#/components/schemas/BuildStep' + description: Build step that produced this log (e.g. `preparing`, `installing`, `building`) + timeline: + type: string + description: Timeline slug, if the log is associated with a specific timeline + required: + - timestamp + - level + - message + example: + timestamp: '2024-01-15T10:30:05Z' + level: info + message: Starting build... + step: preparing + Timeline: + type: object + properties: + slug: + type: string + description: Timeline slug derived from the partition config name + partition: + type: object + additionalProperties: + type: string + description: Partition key-value pairs identifying this timeline + example: + git.branch: main + domains: + type: array + items: + type: object + properties: + domain: + type: string + description: Domain name assigned to this timeline + required: + - domain + description: Domains routed to this timeline + required: + - slug + - partition + - domains + Runtime: + type: object + properties: + type: + enum: + - dynamic + - static + description: '`dynamic` runs a Deno process; `static` serves pre-built files' + type: string + entrypoint: + type: string + description: Main module path. Required when `type` is `dynamic` + args: + type: array + items: + type: string + description: Additional CLI arguments passed to the entrypoint + cwd: + type: string + description: Working directory or static file root. Required when `type` is `static` + spa: + type: boolean + description: Enable single-page application mode (fallback to index.html). Only for `static` type + required: + - type + RevisionFailureDetail: + type: object + properties: + stage: + type: string + description: Deployment stage that failed. Currently always "warmup" — the post-build boot check of the deployed application. New stages may be added; clients must tolerate unknown values. + code: + type: string + description: Machine-readable failure code. Currently "boot_failed" (the deployed application failed to start — check the application logs for the startup error) or "internal" (a platform-side failure). New codes may be added; clients must tolerate unknown values. + message: + type: string + description: Human-readable description of the failure + required: + - stage + - code + - message + LayerRef: + type: object + properties: + id: + type: string + description: Unique layer identifier + slug: + type: string + description: Human-readable layer slug + required: + - id + - slug + example: + id: lyr_abc123 + slug: shared-secrets + RevisionEnvVar: + type: object + properties: + key: + type: string + description: The environment variable name + value: + type: string + description: The environment variable value + required: + - key + - value + example: + key: DATABASE_URL + value: postgres://localhost/dev + ConfigOutput: + type: object + properties: + framework: + enum: + - '' + - nextjs + - astro + - nuxt + - remix + - solidstart + - tanstackstart + - sveltekit + - fresh + - lume + description: Framework preset used for this build + type: string + install: + description: Install command. Null if skipped + nullable: true + type: string + build: + description: Build command. Null if skipped + nullable: true + type: string + predeploy: + description: Pre-deploy command. Null if skipped + nullable: true + type: string + runtime: + $ref: '#/components/schemas/Runtime' + description: Runtime configuration + crons: + type: boolean + description: Whether cron jobs are enabled for revisions of the app. When false, revisions that register cron jobs using Deno.cron fail to build. Defaults to true + RevisionTimeline: + type: object + properties: + name: + type: string + description: Timeline name — the partition config the revision is deployed under (e.g. "Production", "Preview", "Production (pinned)") + context: + type: string + description: Name of the context (environment variable group) this timeline runs in + hostnames: + type: array + items: + type: string + description: 'Hostnames on this timeline that currently route to this revision. A hostname only appears while this revision is the one actually serving it: hostnames shadowed by a newer revision under latest-revision-wins routing — including the default production hostname once a newer revision takes over the production timeline — are omitted.' + required: + - name + - context + - hostnames + BuildStep: + enum: + - preparing + - installing + - building + - deploying + type: string + stackqlBuildLogEntries: + type: object + properties: + entries: + type: array + items: + $ref: '#/components/schemas/BuildLogEntry' + stackqlBuildProgressEntries: + type: object + properties: + entries: + type: array + items: + $ref: '#/components/schemas/RevisionProgress' + x-stackQL-resources: + revisions: + id: deno.revisions.revisions + name: revisions + title: Revisions + methods: + deploy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1apps~1{app}~1deploy/post' + response: + mediaType: application/json + openAPIDocKey: '202' + get: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + cancel: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1cancel/post' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1v2~1apps~1{app}~1revisions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + attach_domains: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1domains/put' + response: + mediaType: application/json + openAPIDocKey: '204' + detach_domain: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1domains~1{hostname}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + promote: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1promote/post' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/revisions/methods/get' + - $ref: '#/components/x-stackQL-resources/revisions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/revisions/methods/deploy' + update: + - $ref: '#/components/x-stackQL-resources/revisions/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/revisions/methods/delete' + replace: [] + build_progress: + id: deno.revisions.build_progress + name: build_progress + title: Build Progress + methods: + list: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1progress/get' + response: + mediaType: application/x-ndjson + openAPIDocKey: '200' + objectKey: $.entries + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/stackqlBuildProgressEntries' + transform: + type: golang_template_text_v0.3.0 + body: '{{- $rest := . -}}{{- $sep := "" -}}{"entries":[{{- range $i, $_ := getRegexpAllMatches "" "()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()" -}}{{- if $rest -}}{{- $line := getRegexpFirstMatch $rest "^([^\n]*)" -}}{{- if gt (len $rest) (len $line) }}{{ $rest = slice $rest (plus1 (len $line)) }}{{ else }}{{ $rest = "" }}{{ end -}}{{- if $line }}{{ $sep }}{{ $line }}{{ $sep = "," }}{{ end -}}{{- end -}}{{- end -}}]}' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/build_progress/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + build_logs: + id: deno.revisions.build_logs + name: build_logs + title: Build Logs + methods: + list: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1build_logs/get' + response: + mediaType: application/x-ndjson + openAPIDocKey: '200' + objectKey: $.entries + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/stackqlBuildLogEntries' + transform: + type: golang_template_text_v0.3.0 + body: '{{- $rest := . -}}{{- $sep := "" -}}{"entries":[{{- range $i, $_ := getRegexpAllMatches "" "()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()" -}}{{- if $rest -}}{{- $line := getRegexpFirstMatch $rest "^([^\n]*)" -}}{{- if gt (len $rest) (len $line) }}{{ $rest = slice $rest (plus1 (len $line)) }}{{ else }}{{ $rest = "" }}{{ end -}}{{- if $line }}{{ $sep }}{{ $line }}{{ $sep = "," }}{{ end -}}{{- end -}}{{- end -}}]}' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/build_logs/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + timelines: + id: deno.revisions.timelines + name: timelines + title: Timelines + methods: + list: + operation: + $ref: '#/paths/~1v2~1revisions~1{revision}~1timelines/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/timelines/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.deno.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/providers/src/pagerduty/v00.00.00000/provider.yaml b/providers/src/pagerduty/v00.00.00000/provider.yaml index 35187bea..19ebf462 100644 --- a/providers/src/pagerduty/v00.00.00000/provider.yaml +++ b/providers/src/pagerduty/v00.00.00000/provider.yaml @@ -3,325 +3,443 @@ name: pagerduty version: v00.00.00000 providerServices: abilities: - id: 'abilities:v00.00.00000' + id: abilities:v00.00.00000 name: abilities preferred: true service: $ref: pagerduty/v00.00.00000/services/abilities.yaml title: PagerDuty API - Abilities version: v00.00.00000 - description: | - This Describes Your Account'S Abilities By Feature Name. For Example `"Teams"`. - An Ability May Be Available To Your Account Based On Things Like Your Pricing Plan Or Account State. + description: >- + Account abilities by feature name (for example teams), which depend on the + pricing plan and account state. add_ons: - id: 'add_ons:v00.00.00000' + id: add_ons:v00.00.00000 name: add_ons preferred: true service: $ref: pagerduty/v00.00.00000/services/add_ons.yaml title: PagerDuty API - Add Ons version: v00.00.00000 - description: | - Developers Can Write Their Own Functionality To Insert Into PagerDuty'S UI. + description: >- + Add-ons let developers insert their own functionality into the PagerDuty + UI. + alert_grouping_settings: + id: alert_grouping_settings:v00.00.00000 + name: alert_grouping_settings + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/alert_grouping_settings.yaml + title: PagerDuty API - Alert Grouping Settings + version: v00.00.00000 + description: >- + Alert grouping settings define how alerts on a service are grouped into + incidents. analytics: - id: 'analytics:v00.00.00000' + id: analytics:v00.00.00000 name: analytics preferred: true service: $ref: pagerduty/v00.00.00000/services/analytics.yaml title: PagerDuty API - Analytics version: v00.00.00000 - description: | - Provides Enriched Incident Data. + description: >- + Enriched incident, responder and user analytics data (POST-based reads + exposed as SELECT). audit: - id: 'audit:v00.00.00000' + id: audit:v00.00.00000 name: audit preferred: true service: $ref: pagerduty/v00.00.00000/services/audit.yaml title: PagerDuty API - Audit version: v00.00.00000 - description: | - Provides Audit Record Data. + description: Account-wide audit records. automation_actions: - id: 'automation_actions:v00.00.00000' + id: automation_actions:v00.00.00000 name: automation_actions preferred: true service: $ref: pagerduty/v00.00.00000/services/automation_actions.yaml title: PagerDuty API - Automation Actions version: v00.00.00000 - description: Automation Actions + description: >- + Automation Actions: actions, runners, invocations and their service and + team associations. business_services: - id: 'business_services:v00.00.00000' + id: business_services:v00.00.00000 name: business_services preferred: true service: $ref: pagerduty/v00.00.00000/services/business_services.yaml title: PagerDuty API - Business Services version: v00.00.00000 - description: Business Services + description: >- + Business services model the services an organization provides, their + subscribers, impacts and priority thresholds. change_events: - id: 'change_events:v00.00.00000' + id: change_events:v00.00.00000 name: change_events preferred: true service: $ref: pagerduty/v00.00.00000/services/change_events.yaml title: PagerDuty API - Change Events version: v00.00.00000 - description: Change Events + description: >- + Change events represent changes (deployments, configuration changes) + correlated with incidents. custom_fields: - id: 'custom_fields:v00.00.00000' + id: custom_fields:v00.00.00000 name: custom_fields preferred: true service: $ref: pagerduty/v00.00.00000/services/custom_fields.yaml title: PagerDuty API - Custom Fields version: v00.00.00000 - description: Custom Fields + description: >- + Account-level custom field definitions for incidents (deprecated in favour + of incident types) and services. + enrichment: + id: enrichment:v00.00.00000 + name: enrichment + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/enrichment.yaml + title: PagerDuty API - Enrichment + version: v00.00.00000 + description: >- + Contextual data enrichment: ServiceNow integrations, enrichment schemas + and records, and event enrichments. escalation_policies: - id: 'escalation_policies:v00.00.00000' + id: escalation_policies:v00.00.00000 name: escalation_policies preferred: true service: $ref: pagerduty/v00.00.00000/services/escalation_policies.yaml title: PagerDuty API - Escalation Policies version: v00.00.00000 - description: Escalation Policies + description: >- + Escalation policies determine who is notified and when for incidents on a + service. event_orchestrations: - id: 'event_orchestrations:v00.00.00000' + id: event_orchestrations:v00.00.00000 name: event_orchestrations preferred: true service: $ref: pagerduty/v00.00.00000/services/event_orchestrations.yaml title: PagerDuty API - Event Orchestrations version: v00.00.00000 - description: Event Orchestrations + description: >- + Event Orchestrations route, enrich and act on events (global, router, + unrouted and service paths, integrations, cache variables, enablements). + extension_schemas: + id: extension_schemas:v00.00.00000 + name: extension_schemas + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/extension_schemas.yaml + title: PagerDuty API - Extension Schemas + version: v00.00.00000 + description: >- + Extension schemas describe the available extension types (vendors and + webhook types). extensions: - id: 'extensions:v00.00.00000' + id: extensions:v00.00.00000 name: extensions preferred: true service: $ref: pagerduty/v00.00.00000/services/extensions.yaml title: PagerDuty API - Extensions version: v00.00.00000 - description: | - Extensions Are Representations Of Extension Schema Objects That Are Attached To Services. - extension_schemas: - id: 'extension_schemas:v00.00.00000' - name: extension_schemas + description: >- + Extensions attach extension schema objects (webhooks, integrations) to + services. + incident_types: + id: incident_types:v00.00.00000 + name: incident_types preferred: true service: - $ref: pagerduty/v00.00.00000/services/extension_schemas.yaml - title: PagerDuty API - Extension Schemas + $ref: pagerduty/v00.00.00000/services/incident_types.yaml + title: PagerDuty API - Incident Types + version: v00.00.00000 + description: Incident types and their custom fields. + incident_workflows: + id: incident_workflows:v00.00.00000 + name: incident_workflows + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/incident_workflows.yaml + title: PagerDuty API - Incident Workflows version: v00.00.00000 - description: Extension Schemas + description: Incident Workflows, their actions, triggers and instances. incidents: - id: 'incidents:v00.00.00000' + id: incidents:v00.00.00000 name: incidents preferred: true service: $ref: pagerduty/v00.00.00000/services/incidents.yaml title: PagerDuty API - Incidents version: v00.00.00000 - description: | - An Incident Represents A Problem Or An Issue That Needs To Be Addressed And Resolved. Incidents Trigger On A Service, Which Prompts Notifications To Go Out To On-Call Responders Per The Service'S Escalation Policy. - incident_workflows: - id: 'incident_workflows:v00.00.00000' - name: incident_workflows + description: >- + Incidents and their alerts, notes, log entries, status updates, responder + requests, custom field values and business service impacts. + ip_allow_lists: + id: ip_allow_lists:v00.00.00000 + name: ip_allow_lists preferred: true service: - $ref: pagerduty/v00.00.00000/services/incident_workflows.yaml - title: PagerDuty API - Incident Workflows + $ref: pagerduty/v00.00.00000/services/ip_allow_lists.yaml + title: PagerDuty API - Ip Allow Lists version: v00.00.00000 - description: Incident Workflows + description: IP allow lists (early access). licenses: - id: 'licenses:v00.00.00000' + id: licenses:v00.00.00000 name: licenses preferred: true service: $ref: pagerduty/v00.00.00000/services/licenses.yaml title: PagerDuty API - Licenses version: v00.00.00000 - description: | - Licenses Are Allocated To Users To Allow For Per-User Access To PagerDuty Functionality Within An Account. + description: Licenses and license allocations for the account. log_entries: - id: 'log_entries:v00.00.00000' + id: log_entries:v00.00.00000 name: log_entries preferred: true service: $ref: pagerduty/v00.00.00000/services/log_entries.yaml title: PagerDuty API - Log Entries version: v00.00.00000 - description: Log Entries + description: Log entries record everything that happens to an incident. maintenance_windows: - id: 'maintenance_windows:v00.00.00000' + id: maintenance_windows:v00.00.00000 name: maintenance_windows preferred: true service: $ref: pagerduty/v00.00.00000/services/maintenance_windows.yaml title: PagerDuty API - Maintenance Windows version: v00.00.00000 - description: Maintenance Windows + description: Maintenance windows temporarily disable incident creation on services. notifications: - id: 'notifications:v00.00.00000' + id: notifications:v00.00.00000 name: notifications preferred: true service: $ref: pagerduty/v00.00.00000/services/notifications.yaml title: PagerDuty API - Notifications version: v00.00.00000 - description: | - A Notification Is Created When An Incident Is Triggered Or Escalated. + description: Notifications sent to users for incidents in a time window. + oauth_delegations: + id: oauth_delegations:v00.00.00000 + name: oauth_delegations + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/oauth_delegations.yaml + title: PagerDuty API - Oauth Delegations + version: v00.00.00000 + description: OAuth delegation revocation. on_calls: - id: 'on_calls:v00.00.00000' + id: on_calls:v00.00.00000 name: on_calls preferred: true service: $ref: pagerduty/v00.00.00000/services/on_calls.yaml title: PagerDuty API - On Calls version: v00.00.00000 - description: | - An On-Call Represents A Contiguous Unit Of Time For Which A User Will Be On Call For A Given Escalation Policy And Escalation Rules + description: 'On-calls: who is on call for which escalation policy and schedule.' paused_incident_reports: - id: 'paused_incident_reports:v00.00.00000' + id: paused_incident_reports:v00.00.00000 name: paused_incident_reports preferred: true service: $ref: pagerduty/v00.00.00000/services/paused_incident_reports.yaml title: PagerDuty API - Paused Incident Reports version: v00.00.00000 - description: Paused Incident Reports + description: Reports on alerts whose incident notifications were paused. priorities: - id: 'priorities:v00.00.00000' + id: priorities:v00.00.00000 name: priorities preferred: true service: $ref: pagerduty/v00.00.00000/services/priorities.yaml title: PagerDuty API - Priorities version: v00.00.00000 - description: | - A Priority Is A Label Representing The Importance And Impact Of An Incident. This Feature Is Only Available On Standard And Enterprise Plans. - response_plays: - id: 'response_plays:v00.00.00000' - name: response_plays + description: Incident priorities configured on the account. + recommendations: + id: recommendations:v00.00.00000 + name: recommendations preferred: true service: - $ref: pagerduty/v00.00.00000/services/response_plays.yaml - title: PagerDuty API - Response Plays + $ref: pagerduty/v00.00.00000/services/recommendations.yaml + title: PagerDuty API - Recommendations version: v00.00.00000 - description: Response Plays + description: Recommended Event Orchestration rules. rulesets: - id: 'rulesets:v00.00.00000' + id: rulesets:v00.00.00000 name: rulesets preferred: true service: $ref: pagerduty/v00.00.00000/services/rulesets.yaml title: PagerDuty API - Rulesets version: v00.00.00000 - description: | - Rulesets Allow You To Route Events To An Endpoint And Create Collections Of Event Rules, Which Define Sets Of Actions To Take Based On Event Content. + description: >- + Rulesets and event rules (legacy event rules; superseded by Event + Orchestrations). schedules: - id: 'schedules:v00.00.00000' + id: schedules:v00.00.00000 name: schedules preferred: true service: $ref: pagerduty/v00.00.00000/services/schedules.yaml title: PagerDuty API - Schedules version: v00.00.00000 - description: | - A Schedule Determines The Time Periods That Users Are On-Call. - services: - id: 'services:v00.00.00000' - name: services + description: On-call schedules, their overrides, users and audit records. + schedules_v3: + id: schedules_v3:v00.00.00000 + name: schedules_v3 preferred: true service: - $ref: pagerduty/v00.00.00000/services/services.yaml - title: PagerDuty API - Services + $ref: pagerduty/v00.00.00000/services/schedules_v3.yaml + title: PagerDuty API - Schedules V3 version: v00.00.00000 - description: | - A Service May Represent An Application, Component, Or Team You Wish To Open Incidents Against. + description: >- + The v3 schedules API: schedules, rotations, events, custom shifts and + overrides. service_dependencies: - id: 'service_dependencies:v00.00.00000' + id: service_dependencies:v00.00.00000 name: service_dependencies preferred: true service: $ref: pagerduty/v00.00.00000/services/service_dependencies.yaml title: PagerDuty API - Service Dependencies version: v00.00.00000 - description: Service Dependencies + description: Dependencies between business services and technical services. + services: + id: services:v00.00.00000 + name: services + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/services.yaml + title: PagerDuty API - Services + version: v00.00.00000 + description: >- + Technical services, their integrations, event rules, custom field values, + feature enablements and audit records. + session_configurations: + id: session_configurations:v00.00.00000 + name: session_configurations + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/session_configurations.yaml + title: PagerDuty API - Session Configurations + version: v00.00.00000 + description: Account session configuration. + sre_agent: + id: sre_agent:v00.00.00000 + name: sre_agent + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/sre_agent.yaml + title: PagerDuty API - Sre Agent + version: v00.00.00000 + description: SRE Agent memories. + standards: + id: standards:v00.00.00000 + name: standards + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/standards.yaml + title: PagerDuty API - Standards + version: v00.00.00000 + description: Service standards and standards scores. status_dashboards: - id: 'status_dashboards:v00.00.00000' + id: status_dashboards:v00.00.00000 name: status_dashboards preferred: true service: $ref: pagerduty/v00.00.00000/services/status_dashboards.yaml title: PagerDuty API - Status Dashboards version: v00.00.00000 - description: Status Dashboards + description: Status dashboards and their service impacts. + status_pages: + id: status_pages:v00.00.00000 + name: status_pages + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/status_pages.yaml + title: PagerDuty API - Status Pages + version: v00.00.00000 + description: >- + Status pages: impacts, services, severities, statuses, posts, post + updates, postmortems and subscriptions. tags: - id: 'tags:v00.00.00000' + id: tags:v00.00.00000 name: tags preferred: true service: $ref: pagerduty/v00.00.00000/services/tags.yaml title: PagerDuty API - Tags version: v00.00.00000 - description: | - A Tag Is Applied To Escalation Policies, Teams Or Users And Can Be Used To Filter Them. + description: Tags and the entities they are applied to. teams: - id: 'teams:v00.00.00000' + id: teams:v00.00.00000 name: teams preferred: true service: $ref: pagerduty/v00.00.00000/services/teams.yaml title: PagerDuty API - Teams version: v00.00.00000 - description: | - A Team Is A Collection Of Users And Escalation Policies That Represent A Group Of People Within An Organization. + description: >- + Teams, their members, escalation policies, notification subscriptions and + audit records. templates: - id: 'templates:v00.00.00000' + id: templates:v00.00.00000 name: templates preferred: true service: $ref: pagerduty/v00.00.00000/services/templates.yaml title: PagerDuty API - Templates version: v00.00.00000 - description: | - Templates Is A New Feature Which Will Allow Customers To Create Message Templates To Be Leveraged By (But Not Limited To) Status Updates. The API Will Be Secured To Customers With The Status Updates Entitlements. + description: Message templates (status updates and other templated content). users: - id: 'users:v00.00.00000' + id: users:v00.00.00000 name: users preferred: true service: $ref: pagerduty/v00.00.00000/services/users.yaml title: PagerDuty API - Users version: v00.00.00000 - description: | - Users Are Members Of A PagerDuty Account That Have The Ability To Interact With Incidents And Other Data On The Account. + description: >- + Users and their contact methods, notification rules, subscriptions, + sessions, licenses and OAuth delegations. vendors: - id: 'vendors:v00.00.00000' + id: vendors:v00.00.00000 name: vendors preferred: true service: $ref: pagerduty/v00.00.00000/services/vendors.yaml title: PagerDuty API - Vendors version: v00.00.00000 - description: | - A PagerDuty Vendor Represents A Specific Type Of Integration. AWS Cloudwatch, Splunk, Datadog Are All Examples Of Vendors + description: Vendors are integration types (AWS CloudWatch, Splunk, Datadog). webhooks: - id: 'webhooks:v00.00.00000' + id: webhooks:v00.00.00000 name: webhooks preferred: true service: $ref: pagerduty/v00.00.00000/services/webhooks.yaml title: PagerDuty API - Webhooks version: v00.00.00000 - description: | - A Webhook Is A Way To Receive Events That Occur On The PagerDuty Platform Via An HTTP POST Request. - V3 Webhooks Are Set Up By Creating A Webhook Subscription. + description: Webhook subscriptions (v3 webhooks) and their OAuth clients. + workflow_integrations: + id: workflow_integrations:v00.00.00000 + name: workflow_integrations + preferred: true + service: + $ref: pagerduty/v00.00.00000/services/workflow_integrations.yaml + title: PagerDuty API - Workflow Integrations + version: v00.00.00000 + description: Workflow integrations and their connections. config: auth: type: api_key valuePrefix: Token token= - credentialsenvvar: PAGERDUTY_API_TOKEN + credentialsenvvar: PAGERDUTY_TOKEN diff --git a/providers/src/pagerduty/v00.00.00000/services/abilities.yaml b/providers/src/pagerduty/v00.00.00000/services/abilities.yaml index be0627f2..7e3300b0 100644 --- a/providers/src/pagerduty/v00.00.00000/services/abilities.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/abilities.yaml @@ -1,1553 +1,94 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Abilities + description: Account abilities by feature name (for example teams), which depend on the pricing plan and account state. version: 2.0.0 - title: PagerDuty API - abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false +paths: + /abilities: + get: + x-pd-requires-scope: abilities.read + tags: + - Abilities + operationId: listAbilities description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + List all of your account's abilities, by name. - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + "Abilities" describes your account's capabilities by feature name. For example `"teams"`. + An ability may be available to your account based on things like your pricing plan or account state. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#abilities) + + Scoped OAuth requires: `abilities.read` + summary: List abilities + parameters: [] + responses: + '200': + description: An array of ability names. + content: + application/json: + schema: + type: object + properties: + abilities: + type: array + description: The set of abilities your account has. + items: + type: string + description: A single ability, as a name. + readOnly: true + required: + - abilities + examples: + response: + summary: Example Response + value: + abilities: + - teams + - read_only_users + - service_support_hours + - urgencies + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List your account's abilities. + /abilities/{id}: + get: + x-pd-requires-scope: abilities.read + tags: + - Abilities + operationId: getAbility description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access + Test whether your account has a given ability. + + "Abilities" describes your account's capabilities by feature name. For example `"teams"`. + + An ability may be available to your account based on things like your pricing plan or account state. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#abilities) + + Scoped OAuth requires: `abilities.read` + summary: Test an ability + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The account has the requested ability. + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get an ability. +components: responses: Unauthorized: description: | @@ -1556,7 +97,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -1564,18 +127,35 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1605,900 +185,107 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 NotFound: description: The requested resource was not found. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string x-stackQL-resources: abilities: id: pagerduty.abilities.abilities name: abilities title: Abilities methods: - list_abilities: + list: operation: $ref: '#/paths/~1abilities/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.abilities - _list_abilities: - operation: - $ref: '#/paths/~1abilities/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_ability: + check: operation: $ref: '#/paths/~1abilities~1{id}/get' response: @@ -2506,98 +293,11 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/abilities/methods/list_abilities' + - $ref: '#/components/x-stackQL-resources/abilities/methods/list' insert: [] update: [] delete: [] -paths: - /abilities: - get: - x-pd-requires-scope: abilities.read - tags: - - Abilities - operationId: listAbilities - description: | - List all of your account's abilities, by name. - - "Abilities" describes your account's capabilities by feature name. For example `"teams"`. - - An ability may be available to your account based on things like your pricing plan or account state. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#abilities) - - Scoped OAuth requires: `abilities.read` - summary: List abilities - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - responses: - '200': - description: An array of ability names. - content: - application/json: - schema: - allOf: - - type: object - properties: - abilities: - type: array - description: The set of abilities your account has. - items: - type: object - properties: - ability_name: - type: string - description: 'A single ability, as a name.' - readOnly: true - required: - - abilities - examples: - response: - summary: Example Response - value: - abilities: - - teams - - read_only_users - - service_support_hours - - urgencies - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/abilities/{id}': - get: - x-pd-requires-scope: abilities.read - tags: - - Abilities - operationId: getAbility - description: | - Test whether your account has a given ability. - - "Abilities" describes your account's capabilities by feature name. For example `"teams"`. - - An ability may be available to your account based on things like your pricing plan or account state. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#abilities) - - Scoped OAuth requires: `abilities.read` - summary: Test an ability - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The account has the requested ability. - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/add_ons.yaml b/providers/src/pagerduty/v00.00.00000/services/add_ons.yaml index 705be188..c4eb8ff3 100644 --- a/providers/src/pagerduty/v00.00.00000/services/add_ons.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/add_ons.yaml @@ -1,2741 +1,254 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Add Ons + description: Add-ons let developers insert their own functionality into the PagerDuty UI. version: 2.0.0 - title: PagerDuty API - add_ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - AddonReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - src: - type: string - format: url - description: The URL source of the Addon - name: - type: string - description: The user entered name of the Addon. - type: - type: string - enum: - - full_page_addon_reference - - incident_show_addon_reference - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - Addon: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of Add-on. - enum: - - full_page_addon - - incident_show_addon - name: - type: string - description: The name of the Add-on. - maxLength: 100 - src: - type: string - format: url - description: The source URL to display in a frame in the PagerDuty UI. HTTPS is required. - required: - - type - - name - - src - example: - type: full_page_addon - name: Internal Status Page - src: 'https://intranet.example.com/status' - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: +paths: + /addons: + get: + x-pd-requires-scope: addons.read + tags: + - Add-ons + operationId: listAddon + description: | + List all of the Add-ons installed on your account. - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#add-ons) - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `addons.read` + summary: List installed Add-ons + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/include_addon' + - $ref: '#/components/parameters/addon_services' + - $ref: '#/components/parameters/addon_filter' + responses: + '200': + description: A paginated array of installed Add-ons. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + addons: + type: array + items: + $ref: '#/components/schemas/AddonReference' + required: + - addons + examples: + response: + summary: Example Response + value: + addons: + - id: PKX7619 + type: full_page_addon_reference + summary: Internal Status Page + self: https://api.pagerduty.com/addons/PKX7619 + html_url: null + name: Internal Status Page + src: https://intranet.example.com/status + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: addons.write + tags: + - Add-ons + operationId: createAddon + description: | + Install an Add-on for your account. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + Given a configuration containing a `src` parameter, that URL will be embedded in an `iframe` on a page that's available to users from a drop-down menu. - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#add-ons) + + Scoped OAuth requires: `addons.write` + summary: Install an Add-on + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + addon: + $ref: '#/components/schemas/Addon' + required: + - addon + examples: + request: + summary: Request Example + value: + addon: + type: full_page_addon + name: Internal Status Page + src: https://intranet.example.com/status + description: The Add-on to be installed. + responses: + '201': + description: The Add-on that was installed. + content: + application/json: + schema: + type: object + properties: + addon: + $ref: '#/components/schemas/AddonReference' + required: + - addon + examples: + response: + summary: Response Example + value: + addon: + id: PKX7619 + type: full_page_addon_reference + summary: Internal Status Page + self: https://api.pagerduty.com/addons/PKX7619 + html_url: null + name: Internal Status Page + src: https://intranet.example.com/status + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and add Add-ons to your account. + /addons/{id}: + get: + x-pd-requires-scope: addons.read + tags: + - Add-ons + operationId: getAddon description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - addons: - id: pagerduty.add_ons.addons - name: addons - title: Addons - methods: - list_addon: - operation: - $ref: '#/paths/~1addons/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.addon - _list_addon: - operation: - $ref: '#/paths/~1addons/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_addon: - operation: - $ref: '#/paths/~1addons/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_addon: - operation: - $ref: '#/paths/~1addons~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.addon - _get_addon: - operation: - $ref: '#/paths/~1addons~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_addon: - operation: - $ref: '#/paths/~1addons~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_addon: - operation: - $ref: '#/paths/~1addons~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/addons/methods/get_addon' - - $ref: '#/components/x-stackQL-resources/addons/methods/list_addon' - insert: - - $ref: '#/components/x-stackQL-resources/addons/methods/create_addon' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/addons/methods/delete_addon' -paths: - /addons: - get: - x-pd-requires-scope: addons.read - tags: - - Add-ons - operationId: listAddon - description: | - List all of the Add-ons installed on your account. + Get details about an existing Add-on. Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#add-ons) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#add-ons) Scoped OAuth requires: `addons.read` - summary: List installed Add-ons + summary: Get an Add-on parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/include_addon' - - $ref: '#/components/parameters/addon_services' - - $ref: '#/components/parameters/addon_filter' + - $ref: '#/components/parameters/id' responses: '200': - description: A paginated array of installed Add-ons. + description: The requested Add-on. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - addons: - type: array - items: - $ref: '#/components/schemas/AddonReference' - required: - - addons + type: object + properties: + addon: + $ref: '#/components/schemas/Addon' + required: + - addon examples: response: summary: Example Response value: - addons: - - id: PKX7619 - type: full_page_addon_reference - summary: Internal Status Page - self: 'https://api.pagerduty.com/addons/PKX7619' - html_url: null - name: Internal Status Page - src: 'https://intranet.example.com/status' - limit: 25 - offset: 0 - more: false - total: null + addon: + id: PKX7F81 + type: incident_show_addon + name: Service Runbook + src: https://intranet.example.com/runbook.html + services: + - id: PIJ90N7 + type: service + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - post: + delete: + x-pd-requires-scope: addons.write + tags: + - Add-ons + operationId: deleteAddon + description: | + Remove an existing Add-on. + + Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#add-ons) + + Scoped OAuth requires: `addons.write` + summary: Delete an Add-on + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The Add-on was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: x-pd-requires-scope: addons.write tags: - Add-ons - operationId: createAddon + operationId: updateAddon description: | - Install an Add-on for your account. + Update an existing Add-on. Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. Given a configuration containing a `src` parameter, that URL will be embedded in an `iframe` on a page that's available to users from a drop-down menu. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#add-ons) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#add-ons) Scoped OAuth requires: `addons.write` - summary: Install an Add-on + summary: Update an Add-on parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/id' requestBody: content: application/json: @@ -2753,18 +266,18 @@ paths: addon: type: full_page_addon name: Internal Status Page - src: 'https://intranet.example.com/status' - description: The Add-on to be installed. + src: https://intranet.example.com/status + description: The Add-on to be updated. responses: - '201': - description: The Add-on that was installed. + '200': + description: The Add-on that was updated. content: application/json: schema: type: object properties: addon: - $ref: '#/components/schemas/AddonReference' + $ref: '#/components/schemas/Addon' required: - addon examples: @@ -2772,179 +285,493 @@ paths: summary: Response Example value: addon: - id: PKX7619 - type: full_page_addon_reference - summary: Internal Status Page - self: 'https://api.pagerduty.com/addons/PKX7619' - html_url: null - name: Internal Status Page - src: 'https://intranet.example.com/status' + id: PKX7F81 + type: incident_show_addon + name: Service Runbook + src: https://intranet.example.com/runbook.html + services: + - id: PIJ90N7 + type: service + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/addons/{id}': - get: - x-pd-requires-scope: addons.read - tags: - - Add-ons - operationId: getAddon + description: Perform actions on the specified Add-on. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + AddonReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + src: + type: string + format: url + description: The URL source of the Addon + name: + type: string + description: The user entered name of the Addon. + required: + - type + - id + description: (opaque JSON object) + Addon: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the Add-on. + maxLength: 100 + src: + type: string + format: url + description: The source URL to display in a frame in the PagerDuty UI. HTTPS is required. + required: + - type + - name + - src + example: + type: full_page_addon + name: Internal Status Page + src: https://intranet.example.com/status + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Get details about an existing Add-on. - - Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#add-ons) - - Scoped OAuth requires: `addons.read` - summary: Get an Add-on - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The requested Add-on. - content: - application/json: - schema: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - addon: - $ref: '#/components/schemas/Addon' - required: - - addon - examples: - response: - summary: Example Response - value: - addon: - id: PKX7F81 - type: incident_show_addon - name: Service Runbook - src: 'https://intranet.example.com/runbook.html' - services: - - id: PIJ90N7 - type: service - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: addons.write - tags: - - Add-ons - operationId: deleteAddon - description: | - Remove an existing Add-on. - - Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#add-ons) - - Scoped OAuth requires: `addons.write` - summary: Delete an Add-on - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The Add-on was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: addons.write - tags: - - Add-ons - operationId: updateAddon - description: | - Update an existing Add-on. - - Addon's are pieces of functionality that developers can write to insert new functionality into PagerDuty's UI. - - Given a configuration containing a `src` parameter, that URL will be embedded in an `iframe` on a page that's available to users from a drop-down menu. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#add-ons) - - Scoped OAuth requires: `addons.write` - summary: Update an Add-on - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - addon: - $ref: '#/components/schemas/Addon' - required: - - addon - examples: - request: - summary: Request Example - value: - addon: - type: full_page_addon - name: Internal Status Page - src: 'https://intranet.example.com/status' - description: The Add-on to be updated. - responses: - '200': - description: The Add-on that was updated. - content: - application/json: - schema: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - addon: - $ref: '#/components/schemas/Addon' - required: - - addon - examples: - response: - summary: Response Example - value: - addon: - id: PKX7F81 - type: incident_show_addon - name: Service Runbook - src: 'https://intranet.example.com/runbook.html' - services: - - id: PIJ90N7 - type: service - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + include_addon: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - services + uniqueItems: true + addon_services: + name: service_ids[] + in: query + description: Filters the results, showing only Add-ons for the given services + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + addon_filter: + name: filter + in: query + description: Filters the results, showing only Add-ons of the given type + schema: + type: string + enum: + - full_page_addon + - incident_show_addon + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + add_ons: + id: pagerduty.add_ons.add_ons + name: add_ons + title: Add Ons + methods: + list: + operation: + $ref: '#/paths/~1addons/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.addons + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1addons/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1addons~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.addon + delete: + operation: + $ref: '#/paths/~1addons~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1addons~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/add_ons/methods/get' + - $ref: '#/components/x-stackQL-resources/add_ons/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/add_ons/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/add_ons/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/add_ons/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/alert_grouping_settings.yaml b/providers/src/pagerduty/v00.00.00000/services/alert_grouping_settings.yaml new file mode 100644 index 00000000..aaf21bc1 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/alert_grouping_settings.yaml @@ -0,0 +1,803 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Alert Grouping Settings + description: Alert grouping settings define how alerts on a service are grouped into incidents. + version: 2.0.0 +paths: + /alert_grouping_settings: + get: + x-pd-requires-scope: services.read + tags: + - Alert Grouping Settings + operationId: listAlertGroupingSettings + description: | + List all of your alert grouping settings including both single service settings and global content based settings. + + The settings part of Alert Grouper service allows us to create Alert Grouping Settings and configs that are required to be used during grouping of the alerts. + + Scoped OAuth requires: `services.read` + summary: List alert grouping settings + parameters: + - $ref: '#/components/parameters/offset_after' + - $ref: '#/components/parameters/offset_before' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/services' + responses: + '200': + description: An array of alert grouping settings. + content: + application/json: + schema: + type: object + properties: + alert_grouping_settings: + type: array + description: The list of alert grouping settings your account has. + items: + $ref: '#/components/schemas/AlertGroupingSetting' + required: + - alert_grouping_settings + examples: + response: + summary: Response Example + value: + alert_grouping_settings: + - id: PJWA06X + name: Example of Alert Grouping Setting + description: This is an example of list of Alert Grouping Settings + type: content_based + config: + time_window: 86400 + aggregate: all + fields: + - summary + - component + - custom_details.host + - custom_details.field1.field2 + services: + - id: P0KJZ0A + name: Payment Service + - id: PA15YRT + name: Checkout Service + created_at: '2022-12-13T19:55:01.171Z' + updated_at: '2023-08-24T18:29:35.630Z' + after: g3QAAAACZAACaWRhB2QAC2luc2VydGVkX2F0dAAAAAlkAApfX3N0cnVjdF9fZAAURWxpeGlyLk5haXZlRGF0ZVRpbWVkAAhjYWxlbmRhcmQAE0VsaXhpci5DYWxlbmRhci5JU09kAANkYXlhA2QABGhvdXJhFGQAC21pY3Jvc2Vjb25kaAJiAAL81WEGZAAGbWludXRlYR5kAAVtb250aGEIZAAGc2Vjb25kYR5kAAR5ZWFyYgAAB + before: g3QAAAACZAACaWRhCGQAC2luc2VydGVkX2F0dAAAAAlkAApfX3N0cnVjdF9fZAAURWxpeGlyLk5haXZlRGF0ZVRpbWVkAAhjYWxlbmRhcmQAE0VsaXhpci5DYWxlbmRhci5JU09kAANkYXlhA2QABGhvdXJhFGQAC21pY3Jvc2Vjb25kaAJiAANYzWEGZAAGbWludXRlYR5kAAVtb250aGEIZAAGc2Vjb25kYR5kAAR5ZWFyYgAAB + limit: 25 + total: null + '401': + $ref: '#/components/responses/Unauthorized' + post: + x-pd-requires-scope: services.write + tags: + - Alert Grouping Settings + operationId: postAlertGroupingSettings + description: | + Create a new Alert Grouping Setting. + + The settings part of Alert Grouper service allows us to create Alert Grouping Settings and configs that are required to be used during grouping of the alerts. + + This endpoint will be used to create an instance of AlertGroupingSettings for either one service or many services that are in the alert group setting. + + Scoped OAuth requires: `services.write` + summary: Create an Alert Grouping Setting + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + alert_grouping_setting: + $ref: '#/components/schemas/AlertGroupingSetting' + required: + - alert_grouping_setting + examples: + request: + summary: Request Example + value: + alert_grouping_setting: + id: PZC4OM1 + name: Example of Alert Grouping Setting + description: This Alert Grouping Setting is an example + type: content_based + config: + time_window: 900 + aggregate: all + fields: + - summary + - component + - custom_details.host + - custom_details.field1.field2 + services: + - id: P0KJZ0A + - id: PA15YRT + responses: + '201': + description: The new Alert Grouping Setting. + content: + application/json: + schema: + type: object + properties: + alert_grouping_setting: + $ref: '#/components/schemas/AlertGroupingSetting' + required: + - alert_grouping_setting + examples: + response: + summary: Response Example + value: + alert_grouping_setting: + id: PZC4OM1 + name: Example of Alert Grouping Setting + description: This Alert Grouping Setting is an example + type: content_based + config: + time_window: 900 + aggregate: all + fields: + - summary + - component + - custom_details.host + - custom_details.field1.field2 + services: + - id: P0KJZ0A + name: Payment Service + - id: PA15YRT + name: Checkout Service + created_at: '2022-12-13T19:55:01.171Z' + updated_at: '2023-08-24T18:29:35.630Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + description: List + /alert_grouping_settings/{id}: + get: + x-pd-requires-scope: services.read + tags: + - Alert Grouping Settings + operationId: getAlertGroupingSetting + description: | + Get an existing Alert Grouping Setting. + + The settings part of Alert Grouper service allows us to create Alert Grouping Settings and configs that are required to be used during grouping of the alerts. + + Scoped OAuth requires: `services.read` + summary: Get an Alert Grouping Setting + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The Alert Grouping Setting. + content: + application/json: + schema: + type: object + properties: + alert_grouping_setting: + $ref: '#/components/schemas/AlertGroupingSetting' + required: + - alert_grouping_setting + examples: + response: + summary: Response Example + value: + alert_grouping_setting: + id: PZC4OM1 + name: Example of Alert Grouping Setting + description: This Alert Grouping Setting is an example + type: content_based + config: + time_window: 900 + aggregate: all + fields: + - summary + - component + - custom_details.host + - custom_details.field1.field2 + services: + - id: P0KJZ0A + name: Payment Service + - id: PA15YRT + name: Checkout Service + created_at: '2022-12-13T19:55:01.171Z' + updated_at: '2023-08-24T18:29:35.630Z' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + delete: + x-pd-requires-scope: services.write + tags: + - Alert Grouping Settings + operationId: deleteAlertGroupingSetting + description: | + Delete an existing Alert Grouping Setting. + + The settings part of Alert Grouper service allows us to create Alert Grouping Settings and configs that are required to be used during grouping of the alerts. + + Scoped OAuth requires: `services.write` + summary: Delete an Alert Grouping Setting + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The Alert Grouping Setting was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: services.write + tags: + - Alert Grouping Settings + operationId: putAlertGroupingSetting + description: | + Update an Alert Grouping Setting. + + The settings part of Alert Grouper service allows us to create Alert Grouping Settings and configs that are required to be used during grouping of the alerts. + + if `services` are not provided in the request, then the existing services will not be removed from the setting. + + Scoped OAuth requires: `services.write` + summary: Update an Alert Grouping Setting + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + alert_grouping_setting: + $ref: '#/components/schemas/AlertGroupingSetting' + required: + - alert_grouping_setting + examples: + request: + summary: Request Example + value: + alert_grouping_setting: + id: PZC4OM1 + name: Example of Alert Grouping Setting + description: This Alert Grouping Setting is an example + type: content_based + config: + time_window: 900 + aggregate: all + fields: + - summary + - component + - custom_details.host + - custom_details.field1.field2 + services: + - id: P0KJZ0A + - id: PA15YRT + responses: + '200': + description: The updated Alert Grouping Setting. + content: + application/json: + schema: + type: object + properties: + alert_grouping_setting: + $ref: '#/components/schemas/AlertGroupingSetting' + required: + - alert_grouping_setting + examples: + response: + summary: Response Example + value: + alert_grouping_setting: + id: PZC4OM1 + name: Example of Alert Grouping Setting + description: This Alert Grouping Setting is an example + type: content_based + config: + time_window: 900 + aggregate: all + fields: + - summary + - component + - custom_details.host + - custom_details.field1.field2 + services: + - id: P0KJZ0A + name: Payment Service + - id: PA15YRT + name: Checkout Service + created_at: '2022-12-13T19:55:01.171Z' + updated_at: '2023-08-24T18:29:35.630Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + description: Retrieve, modify, or delete Alert Grouping Settings +components: + schemas: + AlertGroupingSetting: + type: object + description: | + Defines how alerts will be automatically grouped into incidents based on the configurations defined. Note that the Alert Grouping Setting features are available only on certain plans. + properties: + id: + type: string + readOnly: true + name: + type: string + nullable: true + description: An optional short-form string that provides succinct information about an AlertGroupingSetting object suitable for primary labeling of the entity. It is not intended to be an identifier. + description: + type: string + nullable: true + description: An optional description in string that provides more information about an AlertGroupingSetting object. + type: + type: string + enum: + - content_based + - content_based_intelligent + - intelligent + - time + config: + type: object + title: Content Only Grouping + description: The configuration for Content Based Alert Grouping + properties: + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + time_window: + type: integer + minimum: 300 + maximum: 86400 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 <= time_window <= 3600 or 86400(i.e. 24 hours). + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + timeout: + type: integer + minimum: 60 + maximum: 86400 + description: The duration in seconds within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + iag_fields: + type: array + description: An array of strings which represent the iag fields with which to intelligently group against. + default: + - summary + items: + type: string + services: + type: array + description: The array of one or many Services with just ServiceID/name that the AlertGroupingSetting applies to. Type of content_based_intelligent allows for only one service in the array. + items: + $ref: '#/components/schemas/ServiceReference' + created_at: + type: string + format: date-time + description: The ISO8601 date/time an AlertGroupingSetting got created at. + readOnly: true + updated_at: + type: string + format: date-time + description: The ISO8601 date/time an AlertGroupingSetting last got updated at. + readOnly: true + ContentBasedAlertGroupingConfiguration: + type: object + title: Content Only Grouping + description: The configuration for Content Based Alert Grouping + properties: + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + time_window: + type: integer + minimum: 300 + maximum: 86400 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 <= time_window <= 3600 or 86400(i.e. 24 hours). + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + ContentBasedIntelligentAlertGroupingConfiguration: + type: object + title: Content and Intelligent Grouping + description: The configuration for Content Based Intelligent Alert Grouping + properties: + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 <= time_window <= 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_after: + name: after + in: query + required: false + description: Cursor to retrieve next page; only present if next page exists. + schema: + type: string + offset_before: + name: before + in: query + required: false + description: Cursor to retrieve previous page; only present if not on first page. + schema: + type: string + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + services: + name: service_ids[] + in: query + description: An array of service IDs. Only results related to these services will be returned. + explode: true + schema: + type: array + items: + type: string + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + alert_grouping_settings: + id: pagerduty.alert_grouping_settings.alert_grouping_settings + name: alert_grouping_settings + title: Alert Grouping Settings + methods: + list: + operation: + $ref: '#/paths/~1alert_grouping_settings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.alert_grouping_settings + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1alert_grouping_settings/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1alert_grouping_settings~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.alert_grouping_setting + delete: + operation: + $ref: '#/paths/~1alert_grouping_settings~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1alert_grouping_settings~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/alert_grouping_settings/methods/get' + - $ref: '#/components/x-stackQL-resources/alert_grouping_settings/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/alert_grouping_settings/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/alert_grouping_settings/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/alert_grouping_settings/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/analytics.yaml b/providers/src/pagerduty/v00.00.00000/services/analytics.yaml index c2455e10..05308b3e 100644 --- a/providers/src/pagerduty/v00.00.00000/services/analytics.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/analytics.yaml @@ -1,2877 +1,753 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Analytics + description: Enriched incident, responder and user analytics data (POST-based reads exposed as SELECT). version: 2.0.0 - title: PagerDuty API - analytics - description: | - Provides enriched incident data. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - AnalyticsIncidentMetrics: - title: Analytics Incident Metrics - type: object - properties: - mean_assignment_count: - type: integer - description: Mean count of instances where responders were assigned an incident (including through reassignment or escalation) or accepted a responder request. - mean_engaged_seconds: - type: integer - description: |- - Mean engaged time across all responders for incidents that match the given filters. - Engaged time is measured from the time a user engages with an incident (by - acknowledging or accepting a responder request) until the incident is resolved. - This may include periods in which the incidents was snoozed. - mean_engaged_user_count: - type: integer - description: |- - Mean number of users who engaged with an incident. *Engaged* is defined as - acknowledging an incident or accepting a responder request in it. - mean_seconds_to_engage: - type: integer - description: |- - A measure of *people response time*. This metric measures the time from - the first user engagement (acknowledge or responder accept) to the last. - This metric is only used for incidents with **multiple responders**; - for incidents with one or no engaged users, this value is null. - mean_seconds_to_first_ack: - type: integer - description: 'Mean time between the start of an incident, and the first responder to acknowledge.' - mean_seconds_to_mobilize: - type: integer - description: |- - Mean time between the start of an incident, and the last additional responder - to acknowledge. For incidents with one or no engaged users, this value is null. - mean_seconds_to_resolve: - type: integer - description: Mean time from when an incident was triggered until it was resolved. - service_id: - type: string - description: ID of the service. Only included when aggregating by service. - service_name: - type: string - description: Name of the service. Only included when aggregating by service. - team_id: - type: string - description: ID of the team the incident was assigned to. - team_name: - type: string - description: Name of the team the incident was assigned to. - total_business_hour_interruptions: - type: integer - description: |- - Total number of unique interruptions during business hours. - Business hour: 8am-6pm Mon-Fri, based on the user’s time zone. - total_engaged_seconds: - type: integer - description: |- - Total engaged time across all responders for incidents. Engaged time is measured from - the time a user engages with an incident (by acknowledging or accepting a responder request) - until the incident is resolved. This may include periods in which the incidents was snoozed. - total_escalation_count: - type: integer - description: |- - Total count of instances where an incident is escalated between responders - assigned to an escalation policy. - total_incident_count: - type: integer - description: The total number of incidents that were created. - total_off_hour_interruptions: - type: integer - description: |- - Total number of unique interruptions during off hours. - Off hour: 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. - total_sleep_hour_interruptions: - type: integer - description: |- - Total number of unique interruptions during sleep hours. - Sleep hour: 10pm-8am every day, based on the user’s time zone. - total_snoozed_seconds: - type: integer - description: Total number of seconds incidents were snoozed. - up_time_pct: - type: number - description: |- - The percentage of time in the defined date range that the service was not interrupted - by a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents). - AnalyticsModel: - type: object - properties: - filters: - type: object - description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results - properties: - created_at_start: - type: string - description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. - example: '2020-01-01T00:00:00+05:00' - created_at_end: - type: string - description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. - example: '2020-02-01T00:00:00Z' - urgency: - type: string - description: Any incidents whose urgency does not match the provided string will be omitted from the results. - example: high - enum: - - high - - low - major: - type: boolean - description: 'A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included.' - example: true - team_ids: - type: array - description: 'An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results.' - items: - type: string - example: - - P373JQQ - - PAECHJV - - P7SYGW6 - service_ids: - type: array - description: 'An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results.' - items: - type: string - example: - - PSEJLIN - - PSLWBL8 - - PT4KHLX - priority_ids: - type: array - description: 'An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all services the requestor has access to will be included in the results.' - items: - type: string - example: - - PC8O0L3 - - PX01HJD - - P5FK83M - priority_names: - type: array - description: 'An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all services the requestor has access to will be included in the results.' - items: - type: string - example: - - P1 - - P2 - - P3 - time_zone: - type: string - description: The time zone to use for the results and grouping. - example: Etc/UTC - aggregate_unit: - type: string - description: 'The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period.' - nullable: true - example: day - enum: - - day - - week - - month - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - AnalyticsRawIncident: - title: Analytics Raw Incident - type: object - properties: - assignment_count: - type: integer - description: Total count of instances where responders were assigned an incident (including through reassignment or escalation) or accepted a responder request. - business_hour_interruptions: - type: integer - description: |- - Total number of unique interruptions during business hour. - Business hour: 8am-6pm Mon-Fri, based on the user’s time zone. - created_at: - type: string - description: Timestamp of when the incident was created. - description: - type: string - description: The incident description - engaged_seconds: - type: integer - description: Total engaged time across all responders for this incident. Engaged time is measured from the time a user engages with an incident (by acknowledging or accepting a responder request) until the incident is resolved. This may include periods in which the incident was snoozed. - engaged_user_count: - type: integer - description: 'Total number of users who engaged (acknowledged, accepted responder request) in the incident.' - escalation_count: - type: integer - description: Total count of instances where an incident is escalated between responders assigned to an escalation policy. - id: - type: string - description: Incident ID - incident_number: - type: integer - description: The PagerDuty incident number - major: - type: boolean - description: 'An incident is classified as a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) if it has one of the two highest priorities, or if multiple responders are added and acknowledge the incident.' - off_hour_interruptions: - type: integer - description: |- - Total number of unique interruptions during off hour. - Off hour: 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. - priority_id: - type: string - nullable: true - description: ID of the incident's priority level. - priority_name: - type: string - nullable: true - description: The user-provided short name of the priority. - resolved_at: - type: string - description: Timestamp of when the incident was resolved. - seconds_to_engage: - type: integer - description: |- - A measure of *people response time*. This metric measures the time from - the first user engagement (acknowledge or responder accept) to the last. - This metric is only used for incidents with **multiple responders**; - for incidents with one or no engaged users, this value is null. - seconds_to_first_ack: - type: integer - description: 'Time between start of an incident, and the first responder to acknowledge.' - seconds_to_mobilize: - type: integer - description: 'Time between start of an incident, and the last additional responder to acknowledge. If an incident has one or less responders, the value will be null.' - seconds_to_resolve: - type: integer - description: Time from when incident triggered until it was resolved. - service_id: - type: string - description: ID of the service that the incident triggered on. - service_name: - type: string - description: Name of the service that the incident triggered on. - sleep_hour_interruptions: - type: integer - description: |- - Total number of unique interruptions during sleep hour. - Sleep hour: 10pm-8am every day, based on the user’s time zone. - snoozed_seconds: - type: integer - description: Total seconds the incident has been snoozed for. - team_id: - type: string - nullable: true - description: ID of the team the incident was assigned to. - team_name: - type: string - nullable: true - description: Name of the team the incident was assigned to. - urgency: - type: string - description: Notification level - user_defined_effort_seconds: - type: integer - description: |- - The total response effort in seconds, - [as defined by the user](https://support.pagerduty.com/docs/editing-incidents#edit-incident-duration). - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false +paths: + /analytics/metrics/incidents/all: + post: + x-pd-requires-scope: analytics.write + summary: Get aggregated incident data + operationId: getAnalyticsMetricsIncidentsAll + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + title: Analytics Incident Metrics + type: object + properties: + mean_assignment_count: + type: integer + description: Mean count of instances where responders were assigned an incident (including through reassignment or escalation) or accepted a responder request. + mean_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders. + Engaged time is measured from the time a user engages with an incident (by + acknowledging or accepting a responder request) until the incident is resolved. + This may include periods in which the incidents were snoozed. + mean_engaged_user_count: + type: integer + description: |- + Mean number of users who engaged with an incident. *Engaged* is defined as + acknowledging an incident or accepting a responder request in it. + mean_seconds_to_engage: + type: integer + description: |- + A measure of *people response time*. This metric measures the time from + the first user engagement (acknowledge or responder accept) to the last. + This metric is only used for incidents with **multiple responders**; + for incidents with one or no engaged users, this value is null. + mean_seconds_to_first_ack: + type: integer + description: Mean time between the start of an incident, and the first responder to acknowledge. + mean_seconds_to_mobilize: + type: integer + description: |- + Mean time between the start of an incident, and the last additional responder + to acknowledge. For incidents with one or no engaged users, this value is null. + mean_seconds_to_resolve: + type: integer + description: Mean time from when an incident was triggered until it was resolved. + mean_user_defined_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders. Engaged time is measured from the time + a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + This metric uses the incident response effort values that + [users have defined](https://support.pagerduty.com/docs/edit-incidents#edit-incident-duration), + if they exist. + p50_seconds_to_first_ack: + type: integer + description: Median time between the start of an incident, and the first responder to acknowledge. + p50_seconds_to_resolve: + type: integer + description: Median time from when an incident was triggered until it was resolved. + p75_seconds_to_first_ack: + type: integer + description: 75th percentile for the time between the start of an incident, and the first responder to acknowledge. + p75_seconds_to_resolve: + type: integer + description: 75th percentile for the time when an incident was triggered until it was resolved. + p90_seconds_to_first_ack: + type: integer + description: 90th percentile for the time between the start of an incident, and the first responder to acknowledge. + p90_seconds_to_resolve: + type: integer + description: 90th percentile for the time when an incident was triggered until it was resolved. + p95_seconds_to_first_ack: + type: integer + description: 95th percentile for the time between the start of an incident, and the first responder to acknowledge. + p95_seconds_to_resolve: + type: integer + description: 95th percentile for the time when an incident was triggered until it was resolved. + range_start: + type: string + description: Start of the date range for which the metrics were calculated. Only included when an aggregate unit is specified in the request. + service_id: + type: string + description: ID of the service. Only included when aggregating by service. Not included when aggregating by all. + service_name: + type: string + description: Name of the service. Only included when aggregating by service. Not included when aggregating by all. + team_id: + type: string + description: ID of the team to which the incident was assigned. Not included when aggregating by all. + team_name: + type: string + description: Name of the team to which the incident was assigned. Not included when aggregating by all. + total_business_hour_interruptions: + type: integer + description: Total number of unique interruptions during business hours; 8am-6pm Mon-Fri, based on the user’s time zone. + total_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + total_escalation_count: + type: integer + description: |- + Total count of instances where an incident is escalated between responders + assigned to an escalation policy. + total_incident_count: + type: integer + description: The total number of incidents that were created. + total_incidents_acknowledged: + type: integer + description: |- + The total count of assigned incidents acknowledged. + Only explicit incident acknowledgment counts; reassign, resolve, and escalation actions do not imply acknowledgement. + total_incidents_auto_resolved: + description: |- + The total count of incidents that were resolved automatically. + This count includes incidents resolved via an integration and those that were [auto-resolved in PagerDuty](https://support.pagerduty.com/docs/configurable-service-settings#auto-resolution). + total_incidents_manual_escalated: + type: integer + description: The total count of incidents that were manually escalated. + total_incidents_reassigned: + type: integer + description: The total count of incidents that were reassigned. + total_incidents_timeout_escalated: + type: integer + description: The total count of incidents that were escalated due to timeouts. + total_interruptions: + type: integer + description: Total number of unique interruptions. + total_notifications: + type: integer + description: The total count of incident notifications sent via email, SMS, phone call and push. + total_off_hour_interruptions: + type: integer + description: Total number of unique interruptions during off hours; 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. + total_sleep_hour_interruptions: + type: integer + description: |- + Total number of unique interruptions during sleep hours. + Sleep hours: 10pm-8am every day, based on the user’s time zone. + total_snoozed_seconds: + type: integer + description: Total number of seconds incidents were snoozed. + total_user_defined_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + This metric uses the edited incident response effort values that + [users have defined](https://support.pagerduty.com/docs/edit-incidents#edit-incident-duration), + if they exist. + up_time_pct: + type: number + description: |- + The percentage of time in the defined date range that the service was not interrupted + by a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents). + Only included when aggregating by team, escalation policy, service, or all services. + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. + properties: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month + examples: + Example Response: + value: + aggregate_unit: day + data: + - mean_assignment_count: 1 + mean_engaged_seconds: 366 + mean_engaged_user_count: 1 + mean_seconds_to_engage: 81 + mean_seconds_to_first_ack: 63 + mean_seconds_to_mobilize: 41 + mean_seconds_to_resolve: 380 + mean_user_defined_engaged_seconds: 366 + range_start: '2024-01-01T00:00:00' + total_business_hour_interruptions: 81 + total_engaged_seconds: 3591 + total_escalation_count: 5 + total_incident_count: 124 + total_incidents_acknowledged: 0 + total_incidents_auto_resolved: 0 + total_incidents_manual_escalated: 0 + total_incidents_reassigned: 0 + total_incidents_timeout_escalated: 0 + total_interruptions: 2 + total_notifications: 2 + total_off_hour_interruptions: 20 + total_sleep_hour_interruptions: 21 + total_snoozed_seconds: 78 + total_user_defined_engaged_seconds: 3591 + filters: + create_range_start: '2024-01-01T00:00:00Z' + create_range_end: '2024-02-01T00:00:00Z' + urgency: high + major: true + team_ids: + - PGVXG6U + - PNVU4U4 + service_ids: + - PQVUB8D + - PU2D9X3 + time_zone: Etc/UTC + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsModel' + examples: + Example Request: + value: + filters: + created_at_start: '2024-01-01T00:00:00-05:00' + created_at_end: '2024-01-31T00:00:00-05:00' + urgency: high + major: true + team_ids: + - PGVXG6U + - PNVU4U4 + service_ids: + - PQVUB8D + - PU2D9X3 + aggregate_unit: day + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + Provides aggregated enriched metrics for incidents. - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + The provided metrics are aggregated by day, week, month using the aggregate_unit parameter, or for the entire period if no aggregate_unit is provided. + + > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/metrics/incidents/escalation_policies: + post: + x-pd-requires-scope: analytics.write + summary: Get aggregated escalation policy data + operationId: getAnalyticsMetricsIncidentsEscalationPolicy + responses: + '200': + description: Only returns data for escalation policies that match the filters and have data. + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsIncidentMetricsEscalationPolicy' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. + properties: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month + examples: + Example Response: + value: + data: + - distinct_responder_count: 1 + escalation_policy_id: PDESCP1 + escalation_policy_name: Escalation Policy 1 + mean_assignment_count: 1 + mean_engaged_seconds: 81 + mean_engaged_user_count: 63 + mean_seconds_to_engage: 41 + mean_seconds_to_first_ack: 380 + mean_seconds_to_mobilize: 81 + mean_seconds_to_resolve: 3591 + mean_user_defined_engaged_seconds: 81 + team_id: PDTEAM1 + team_name: Team 1 + total_business_hour_interruptions: 5 + total_engaged_seconds: 124 + total_escalation_count: 20 + total_incident_count: 21 + total_incidents_acknowledged: 78 + total_incidents_auto_resolved: 3 + total_incidents_manual_escalated: 3 + total_incidents_reassigned: 4 + total_incidents_timeout_escalated: 1 + total_interruptions: 1 + total_notifications: 23 + total_off_hour_interruptions: 3 + total_sleep_hour_interruptions: 1 + total_snoozed_seconds: 341 + total_user_defined_engaged_seconds: 124 + up_time_pct: 9.124123 + - distinct_responder_count: 1 + escalation_policy_id: PDESCP2 + escalation_policy_name: Escalation Policy 2 + mean_assignment_count: 1 + mean_engaged_seconds: 81 + mean_engaged_user_count: 63 + mean_seconds_to_engage: 41 + mean_seconds_to_first_ack: 380 + mean_seconds_to_mobilize: 81 + mean_seconds_to_resolve: 3591 + mean_user_defined_engaged_seconds: 81 + team_id: PDTEAM1 + team_name: Team 1 + total_business_hour_interruptions: 5 + total_engaged_seconds: 124 + total_escalation_count: 20 + total_incident_count: 21 + total_incidents_acknowledged: 78 + total_incidents_auto_resolved: 3 + total_incidents_manual_escalated: 3 + total_incidents_reassigned: 4 + total_incidents_timeout_escalated: 1 + total_interruptions: 1 + total_notifications: 23 + total_off_hour_interruptions: 3 + total_sleep_hour_interruptions: 1 + total_snoozed_seconds: 341 + total_user_defined_engaged_seconds: 124 + up_time_pct: 9.124123 + filters: + created_at_start: '2023-06-10T00:00:00Z' + created_at_end: '2023-06-12T00:00:00Z' + urgency: high + major: true + escalation_policy_ids: + - PDESCP1 + - PDESCP2 + time_zone: Etc/UTC + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsModel' + examples: + Example Request: + value: + filters: + created_at_start: '2023-06-10T00:00:00-07:00' + created_at_end: '2023-06-11T23:59:59-07:00' + urgency: high + major: true + escalation_policy_ids: + - PDESCP1 + - PDESCP2 + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - metrics_incidents_all: - id: pagerduty.analytics.metrics_incidents_all - name: metrics_incidents_all - title: Metrics Incidents All - methods: - get_analytics_metrics_incidents_all: - operation: - $ref: '#/paths/~1analytics~1metrics~1incidents~1all/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/metrics_incidents_all/methods/get_analytics_metrics_incidents_all' - insert: [] - update: [] - delete: [] - metrics_incidents_services: - id: pagerduty.analytics.metrics_incidents_services - name: metrics_incidents_services - title: Metrics Incidents Services - methods: - get_analytics_metrics_incidents_service: - operation: - $ref: '#/paths/~1analytics~1metrics~1incidents~1services/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/metrics_incidents_services/methods/get_analytics_metrics_incidents_service' - insert: [] - update: [] - delete: [] - metrics_incidents_teams: - id: pagerduty.analytics.metrics_incidents_teams - name: metrics_incidents_teams - title: Metrics Incidents Teams - methods: - get_analytics_metrics_incidents_team: - operation: - $ref: '#/paths/~1analytics~1metrics~1incidents~1teams/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/metrics_incidents_teams/methods/get_analytics_metrics_incidents_team' - insert: [] - update: [] - delete: [] - raw_incidents: - id: pagerduty.analytics.raw_incidents - name: raw_incidents - title: Raw Incidents - methods: - get_analytics_incidents: - operation: - $ref: '#/paths/~1analytics~1raw~1incidents/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_analytics_incidents_by_id: - operation: - $ref: '#/paths/~1analytics~1raw~1incidents~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $ - _get_analytics_incidents_by_id: - operation: - $ref: '#/paths/~1analytics~1raw~1incidents~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/raw_incidents/methods/get_analytics_incidents_by_id' - - $ref: '#/components/x-stackQL-resources/raw_incidents/methods/get_analytics_incidents' - insert: [] - update: [] - delete: [] - raw_incidents_responses: - id: pagerduty.analytics.raw_incidents_responses - name: raw_incidents_responses - title: Raw Incidents Responses - methods: - get_analytics_incident_responses_by_id: - operation: - $ref: '#/paths/~1analytics~1raw~1incidents~1{id}~1responses/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.responses - _get_analytics_incident_responses_by_id: - operation: - $ref: '#/paths/~1analytics~1raw~1incidents~1{id}~1responses/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/raw_incidents_responses/methods/get_analytics_incident_responses_by_id' - insert: [] - update: [] - delete: [] -paths: - /analytics/metrics/incidents/all: + Provides aggregated metrics for incidents aggregated into units of time by escalation policy. + + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#escalation-policy-list). + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/metrics/incidents/escalation_policies/all: post: - x-pd-requires-scope: analytics.read - summary: Get aggregated incident data - operationId: getAnalyticsMetricsIncidentsAll + x-pd-requires-scope: analytics.write + summary: Get aggregated metrics for all escalation policies + operationId: getAnalyticsMetricsIncidentsEscalationPolicyAll responses: '200': - description: OK + description: Only returns data for escalation policies that match the filters and have data. content: application/json: schema: - allOf: - - type: object + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsIncidentMetricsEscalationPolicy' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. properties: - data: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. items: - $ref: '#/components/schemas/AnalyticsIncidentMetrics' - - $ref: '#/components/schemas/AnalyticsModel' - examples: - Example Response: - value: - aggregate_unit: day - data: - - mean_assignment_count: 1 - mean_engaged_seconds: 366 - mean_engaged_user_count: 1 - mean_seconds_to_engage: 81 - mean_seconds_to_first_ack: 63 - mean_seconds_to_mobilize: 41 - mean_seconds_to_resolve: 380 - range_start: '2020-01-01T00:00:00.000000' - total_business_hour_interruptions: 81 - total_engaged_seconds: 3591 - total_escalation_count: 5 - total_incident_count: 124 - total_off_hour_interruptions: 20 - total_sleep_hour_interruptions: 21 - total_snoozed_seconds: 78 - filters: - create_range_start: '2020-01-01T00:00:00Z' - create_range_end: '2020-02-01T00:00:00Z' - time_zone: Etc/UTC - '400': + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month + examples: + Example Response: + value: + data: + - distinct_responder_count: 1 + mean_assignment_count: 1 + mean_engaged_seconds: 81 + mean_engaged_user_count: 63 + mean_seconds_to_engage: 41 + mean_seconds_to_first_ack: 380 + mean_seconds_to_mobilize: 81 + mean_seconds_to_resolve: 3591 + mean_user_defined_engaged_seconds: 81 + total_business_hour_interruptions: 5 + total_engaged_seconds: 124 + total_escalation_count: 20 + total_incident_count: 21 + total_incidents_acknowledged: 78 + total_incidents_auto_resolved: 3 + total_incidents_manual_escalated: 3 + total_incidents_reassigned: 4 + total_incidents_timeout_escalated: 1 + total_interruptions: 1 + total_notifications: 23 + total_off_hour_interruptions: 3 + total_sleep_hour_interruptions: 1 + total_snoozed_seconds: 341 + total_user_defined_engaged_seconds: 124 + up_time_pct: 9.124123 + filters: + created_at_start: '2023-06-17T07:00:00Z' + created_at_end: '2023-07-02T06:59:59Z' + escalation_policy_ids: + - PDESCP1 + - PDESCP2 + time_zone: Etc/UTC + '400': $ref: '#/components/responses/ArgumentError' '429': $ref: '#/components/responses/TooManyRequests' @@ -2885,58 +761,152 @@ paths: Example Request: value: filters: - created_at_start: '2021-01-01T00:00:00-05:00' - created_at_end: '2021-01-31T00:00:00-05:00' - urgency: high - major: true - team_ids: - - PGVXG6U - - PNVU4U4 - service_ids: - - PQVUB8D - - PU2D9X3 - aggregate_unit: day + created_at_start: '2023-06-17T00:00:00-07:00' + created_at_end: '2023-07-01T23:59:59-07:00' + escalation_policy_ids: + - PDESCP1 + - PDESCP2 time_zone: Etc/UTC description: Parameters and filters to apply to the dataset. description: | - Provides aggregated enriched metrics for incidents. + Provides aggregated metrics across all escalation policies. - The provided metrics are aggregated by day, week, month using the aggregate_unit parameter, or for the entire period if no aggregate_unit is provided. + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#escalation-policy-list). - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. - > **Note:** Analytics data is updated once per day. It takes up to 24 hours before new incidents appear in the Analytics API. + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. - Scoped OAuth requires: `analytics.read` + Scoped OAuth requires: `analytics.write` tags: - Analytics + parameters: [] /analytics/metrics/incidents/services: post: - x-pd-requires-scope: analytics.read + x-pd-requires-scope: analytics.write summary: Get aggregated service data operationId: getAnalyticsMetricsIncidentsService responses: '200': - description: Currently the response only returns data for services that match the filters and have data. + description: Only returns data for services that match the filters and have data. content: application/json: schema: - allOf: - - type: object + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsIncidentMetrics' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. properties: - data: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. items: - $ref: '#/components/schemas/AnalyticsIncidentMetrics' - - $ref: '#/components/schemas/AnalyticsModel' + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month examples: Example Response: value: - aggregate_unit: week + aggregate_unit: day data: - mean_assignment_count: 1 mean_engaged_seconds: 366 @@ -2945,6 +915,8 @@ paths: mean_seconds_to_first_ack: 63 mean_seconds_to_mobilize: 41 mean_seconds_to_resolve: 380 + mean_user_defined_engaged_seconds: 366 + range_start: '2023-06-11T00:00:00' service_id: PPSCXAN service_name: Critical Prod Service 1 team_id: P3XUQ75 @@ -2953,32 +925,54 @@ paths: total_engaged_seconds: 3591 total_escalation_count: 5 total_incident_count: 124 + total_incidents_acknowledged: 1 + total_incidents_auto_resolved: 12 + total_incidents_manual_escalated: 9 + total_incidents_reassigned: 1 + total_incidents_timeout_escalated: 4 + total_interruptions: 1 + total_notifications: 342 total_off_hour_interruptions: 20 total_sleep_hour_interruptions: 21 total_snoozed_seconds: 78 + total_user_defined_engaged_seconds: 3591 up_time_pct: 99.92677595628416 - - mean_assignment_count: 1 - mean_engaged_seconds: 366 + - mean_assignment_count: 12 + mean_engaged_seconds: 432 mean_engaged_user_count: 1 - mean_seconds_to_engage: 81 - mean_seconds_to_first_ack: 63 - mean_seconds_to_mobilize: 41 - mean_seconds_to_resolve: 380 + mean_seconds_to_engage: 77 + mean_seconds_to_first_ack: 32 + mean_seconds_to_mobilize: 32 + mean_seconds_to_resolve: 87 + mean_user_defined_engaged_seconds: 432 + range_start: '2023-06-10T00:00:00' service_id: PPSCXAN - service_name: Meme Fetcher Bot - team_id: PDN84B1 - team_name: Marketing - total_business_hour_interruptions: 81 - total_engaged_seconds: 3591 + service_name: Critical Prod Service 1 + team_id: P3XUQ75 + team_name: Engineering + total_business_hour_interruptions: 12 + total_engaged_seconds: 3645 total_escalation_count: 5 total_incident_count: 124 - total_off_hour_interruptions: 20 - total_sleep_hour_interruptions: 21 - total_snoozed_seconds: 78 - up_time_pct: 99.98747723132969 + total_incidents_acknowledged: 1 + total_incidents_auto_resolved: 12 + total_incidents_manual_escalated: 9 + total_incidents_reassigned: 1 + total_incidents_timeout_escalated: 4 + total_interruptions: 1 + total_notifications: 32 + total_off_hour_interruptions: 42 + total_sleep_hour_interruptions: 3 + total_snoozed_seconds: 123 + total_user_defined_engaged_seconds: 3645 + up_time_pct: 99.234416 filters: - created_at_start: '2020-06-17T17:27:27Z' - created_at_end: '2020-06-16T17:27:27Z' + created_at_start: '2023-06-10T00:00:00Z' + created_at_end: '2023-06-12T00:00:00Z' + team_ids: + - P3XUQ75 + service_ids: + - PPSCXAN time_zone: Etc/UTC '400': $ref: '#/components/responses/ArgumentError' @@ -2994,58 +988,153 @@ paths: Example Request: value: filters: - created_at_start: '2021-01-01T00:00:00-05:00' - created_at_end: '2021-01-31T00:00:00-05:00' + created_at_start: '2023-06-10T00:00:00-07:00' + created_at_end: '2023-06-11T23:59:59-07:00' urgency: high major: true team_ids: - - PGVXG6U - - PNVU4U4 + - P3XUQ75 service_ids: - - PQVUB8D - - PU2D9X3 - priority_ids: - - PITMC5Y - - PEHBBT8 - aggregate_unit: week + - PPSCXAN + aggregate_unit: day time_zone: Etc/UTC description: Parameters and filters to apply to the dataset. description: | Provides aggregated metrics for incidents aggregated into units of time by service. - Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Some metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/pagerduty-analytics). + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#services-list). Data can be aggregated by day, week or month in addition to by service, or provided just as a collection of aggregates for each service in the dataset for the entire period. If a unit is provided, each row in the returned dataset will include a 'range_start' timestamp. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. - > **Note:** Analytics data is updated once per day. It takes up to 24 hours before new incidents appear in the Analytics API. + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. - Scoped OAuth requires: `analytics.read` + Scoped OAuth requires: `analytics.write` tags: - Analytics - /analytics/metrics/incidents/teams: + parameters: [] + /analytics/metrics/incidents/services/all: post: - x-pd-requires-scope: analytics.read - summary: Get aggregated team data - operationId: getAnalyticsMetricsIncidentsTeam + x-pd-requires-scope: analytics.write + summary: Get aggregated metrics for all services + operationId: getAnalyticsMetricsIncidentsServiceAll responses: '200': - description: Currently the response only returns data for teams that match the filters and have data. + description: Only returns data for services that match the filters and have data. content: application/json: schema: - allOf: - - type: object + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsIncidentMetrics' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. properties: - data: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. items: - $ref: '#/components/schemas/AnalyticsIncidentMetrics' - - $ref: '#/components/schemas/AnalyticsModel' + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month examples: Example Response: value: @@ -3057,37 +1146,29 @@ paths: mean_seconds_to_first_ack: 63 mean_seconds_to_mobilize: 41 mean_seconds_to_resolve: 380 - team_id: PPSCXAN - team_name: 'Best Team A #1' - total_business_hour_interruptions: 81 - total_engaged_seconds: 3591 - total_escalation_count: 5 - total_incident_count: 124 - total_off_hour_interruptions: 20 - total_sleep_hour_interruptions: 21 - total_snoozed_seconds: 78 - up_time_pct: 99.98861566484517 - - mean_assignment_count: 1 - mean_engaged_seconds: 366 - mean_engaged_user_count: 1 - mean_seconds_to_engage: 81 - mean_seconds_to_first_ack: 63 - mean_seconds_to_mobilize: 41 - mean_seconds_to_resolve: 380 - team_id: PPSCXAN - team_name: 'Best Team A #2' + mean_user_defined_engaged_seconds: 366 total_business_hour_interruptions: 81 total_engaged_seconds: 3591 total_escalation_count: 5 total_incident_count: 124 + total_incidents_acknowledged: 1 + total_incidents_auto_resolved: 12 + total_incidents_manual_escalated: 9 + total_incidents_reassigned: 1 + total_incidents_timeout_escalated: 4 + total_interruptions: 1 + total_notifications: 342 total_off_hour_interruptions: 20 total_sleep_hour_interruptions: 21 total_snoozed_seconds: 78 - up_time_pct: 99.98483728172828 + total_user_defined_engaged_seconds: 3591 + up_time_pct: 99.92677595628416 filters: - created_at_start: '2020-06-17T17:27:27Z' - created_at_end: '2020-06-16T17:27:27Z' - aggregate_unit: day + created_at_start: '2023-06-17T07:00:00Z' + created_at_end: '2023-07-02T06:59:59Z' + service_ids: + - PQVUB8D + - PU2D9X3 time_zone: Etc/UTC '400': $ref: '#/components/responses/ArgumentError' @@ -3103,198 +1184,216 @@ paths: Example Request: value: filters: - created_at_start: '2021-01-01T00:00:00-05:00' - created_at_end: '2021-01-31T00:00:00-05:00' - urgency: high - major: true - team_ids: - - PGVXG6U - - PNVU4U4 + created_at_start: '2023-06-17T00:00:00-07:00' + created_at_end: '2023-07-01T23:59:59-07:00' service_ids: - PQVUB8D - - PU2D9X2 - priority_ids: - - PITMC5Y - - PEHBBT8 - aggregate_unit: week + - PU2D9X3 time_zone: Etc/UTC description: Parameters and filters to apply to the dataset. description: | - Provides aggregated metrics for incidents aggregated into units of time by team. + Provides aggregated metrics across all services. - Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Some metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/pagerduty-analytics). - Data can be aggregated by day, week or month in addition to by team, or provided just as a collection of aggregates for each team in the dataset for the entire period. If a unit is provided, each row in the returned dataset will include a 'range_start' timestamp. + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#services-list). - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. - > **Note:** Analytics data is updated once per day. It takes up to 24 hours before new incidents appear in the Analytics API. + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. - Scoped OAuth requires: `analytics.read` + Scoped OAuth requires: `analytics.write` tags: - Analytics - /analytics/raw/incidents: + parameters: [] + /analytics/metrics/incidents/teams: post: - x-pd-requires-scope: analytics.read - summary: Get raw data - multiple incidents - operationId: getAnalyticsIncidents + x-pd-requires-scope: analytics.write + summary: Get aggregated team data + operationId: getAnalyticsMetricsIncidentsTeam responses: '200': - description: OK + description: Only returns data for teams that match the filters and have data. content: application/json: schema: type: object properties: - first: - type: string - description: Cursor to identify the first object in the response. - last: - type: string - description: Cursor to identify the last object in the response. - limit: - type: integer - description: Number of results to include in the batch. - more: - type: boolean - description: Indicates if there are more resources available than were returned. - order: - type: string - description: 'The order in which the results were sorted; asc for ascending, desc for descending.' - enum: - - asc - - desc - order_by: - type: string - description: The column that was used for ordering the results. - enum: - - created_at - - seconds_to_resolve + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsIncidentMetrics' filters: type: object - description: A collection of filters that were applied to the results. + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. properties: created_at_start: type: string - description: The lower boundary for the created_at range filter applied to the results. + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' created_at_end: type: string - description: The upper boundary for the created_at range filter applied to the results. + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' urgency: type: string - description: The urgency filter applied to the results. + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high enum: - high - low major: type: boolean - description: 'The [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) filter applied to the results.' + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 team_ids: type: array - description: The team_ids filter applied to the results. + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. items: type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 service_ids: type: array - description: The service_ids filter applied to the results. + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. items: type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS priority_ids: type: array - description: The priority_ids filter applied to the results. - maxItems: 5 + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. items: type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M priority_names: type: array - description: The priority_names filter applied to the results. - maxItems: 5 + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. items: type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true time_zone: type: string - description: The time zone that the results are in. - data: - type: array - items: - $ref: '#/components/schemas/AnalyticsRawIncident' - required: - - first - - last - - limit - - more - - order - - order_by - - time_zone - - data + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month examples: Example Response: value: + aggregate_unit: day data: - - assignment_count: 4 - business_hour_interruptions: 5 - created_at: '2020-05-31T10:05:00' - description: The server is on fire! - engaged_seconds: 3510 - engaged_user_count: 10 - escalation_count: 1 - id: PYC0H08 - incident_number: 928 - major: false - off_hour_interruptions: 4 - priority_id: null - priority_name: null - resolved_at: '2020-05-31T10:15:00' - seconds_to_engage: 70 - seconds_to_first_ack: 5 - seconds_to_mobilize: 19 - seconds_to_resolve: 3305 - service_id: PPSCXAN - service_name: Engineering - sleep_hour_interruptions: 3 - snoozed_seconds: 604 - team_id: null - team_name: null - urgency: low - user_defined_effort_seconds: null - - assignment_count: 1 - business_hour_interruptions: 2 - created_at: '2020-05-31T10:05:00' - description: Reply on social media - engaged_seconds: 521 - engaged_user_count: 6 - escalation_count: 1 - id: PCOOHCY - incident_number: 929 - major: false - off_hour_interruptions: 3 - priority_id: POTCOTX - priority_name: SEV-2 - resolved_at: '2020-05-31T10:15:00' - seconds_to_engage: 24 - seconds_to_first_ack: 48 - seconds_to_mobilize: 122 - seconds_to_resolve: 2029 - service_id: PPSCXAN - service_name: Social media tracking - sleep_hour_interruptions: 1 - snoozed_seconds: 698 - team_id: null - team_name: Marketing - urgency: low - user_defined_effort_seconds: null - ending_before: null - filters: {} - first: PYC0H08 - last: PCOOHCY - limit: 10 - more: true - order: desc - order_by: created_at - starting_after: null + - mean_assignment_count: 1 + mean_engaged_seconds: 366 + mean_engaged_user_count: 1 + mean_seconds_to_engage: 81 + mean_seconds_to_first_ack: 63 + mean_seconds_to_mobilize: 41 + mean_seconds_to_resolve: 380 + mean_user_defined_engaged_seconds: 366 + range_start: '2023-06-11T00:00:00' + team_id: P3XUQ75 + team_name: Engineering + total_business_hour_interruptions: 81 + total_engaged_seconds: 3591 + total_escalation_count: 5 + total_incident_count: 124 + total_incidents_acknowledged: 1 + total_incidents_auto_resolved: 12 + total_incidents_manual_escalated: 9 + total_incidents_reassigned: 1 + total_incidents_timeout_escalated: 4 + total_interruptions: 1 + total_notifications: 342 + total_off_hour_interruptions: 20 + total_sleep_hour_interruptions: 21 + total_snoozed_seconds: 78 + total_user_defined_engaged_seconds: 3591 + up_time_pct: 99.92677595628416 + - mean_assignment_count: 12 + mean_engaged_seconds: 432 + mean_engaged_user_count: 1 + mean_seconds_to_engage: 77 + mean_seconds_to_first_ack: 32 + mean_seconds_to_mobilize: 32 + mean_seconds_to_resolve: 87 + mean_user_defined_engaged_seconds: 432 + range_start: '2023-06-10T00:00:00' + team_id: P3XUQ75 + team_name: Engineering + total_business_hour_interruptions: 12 + total_engaged_seconds: 3645 + total_escalation_count: 5 + total_incident_count: 124 + total_incidents_acknowledged: 1 + total_incidents_auto_resolved: 12 + total_incidents_manual_escalated: 9 + total_incidents_reassigned: 1 + total_incidents_timeout_escalated: 4 + total_interruptions: 1 + total_notifications: 32 + total_off_hour_interruptions: 42 + total_sleep_hour_interruptions: 3 + total_snoozed_seconds: 123 + total_user_defined_engaged_seconds: 3645 + up_time_pct: 99.234416 + filters: + created_at_start: '2023-06-10T00:00:00Z' + created_at_end: '2023-06-12T00:00:00Z' + urgency: high + major: true + team_ids: + - P3XUQ75 time_zone: Etc/UTC '400': $ref: '#/components/responses/ArgumentError' @@ -3305,339 +1404,3409 @@ paths: content: application/json: schema: - type: object - properties: - filters: - type: object - description: 'Filters the result, only show incidents that match the conditions passed in the filter.' - properties: - created_at_start: - type: string - description: 'Filters the result, showing only the incidents where the creation timestamp is greater than the filter value.' - example: '2020-05-01T00:00:00-04:00' - created_at_end: - type: string - description: 'Filters the result, showing only the incidents where the creation timestamp is less than the filter value.' - example: '2020-06-01T00:00:00-04:00' - urgency: - type: string - description: 'Filters the result, showing only the incidents where urgency matches the filter value.' - example: high - major: - type: boolean - description: 'An incident is classified as a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) if it has one of the two highest priorities, or if multiple responders are added and acknowledge the incident.' - example: true - team_ids: - type: array - description: An array of team IDs. Only results related to these teams will be returned. Account must have the teams ability to use this parameter. - items: - type: string - example: - - P373JQQ - - PAECHJV - - P7SYGW6 - service_ids: - type: array - description: An array of service IDs. Only results related to these services will be returned. - items: - type: string - example: - - PC8O0L3 - - PX01HJD - - P5FK83M - priority_ids: - type: array - description: The priority_ids filter applied to the results. - items: - type: string - example: - - PITMC5Y - - PEHBBT8 - - PB8QADI - priority_names: - type: array - description: The priority_names filter applied to the results. - items: - type: string - example: - - P1 - - P2 - - P3 - starting_after: - type: string - description: A cursor to indicate the reference point that the results should follow - ending_before: - type: string - description: A cursor to indicate the reference point that the results should precede - order: - type: string - description: 'The order the results; asc for ascending, desc for descending. Defaults to ''desc''.' - enum: - - asc - - desc - order_by: - type: string - description: The column to use for ordering the results. Defaults to 'created_at'. - enum: - - created_at - - seconds_to_resolve - limit: - type: integer - description: |- - Number of results to include in each batch. - Limits between 1 to 1000 are accepted. - example: 20 - minimum: 0 - exclusiveMinimum: true - maximum: 1000 - exclusiveMaximum: false - time_zone: - type: string - description: The time zone to use for the results. - example: Etc/UTC + $ref: '#/components/schemas/AnalyticsModel' examples: Example Request: value: filters: - created_at_start: '2021-01-01T00:00:00-05:00' - created_at_end: '2021-01-31T00:00:00-05:00' + created_at_start: '2023-06-10T00:00:00-07:00' + created_at_end: '2023-06-11T23:59:59-07:00' urgency: high major: true team_ids: - - PGVXG6U - - PNVU4U4 - service_ids: - - PQVUB8D - - PU2D9X3 - priority_names: - - P1 - - P2 - limit: 20 - order: desc - order_by: created_at + - P3XUQ75 + aggregate_unit: day time_zone: Etc/UTC description: Parameters and filters to apply to the dataset. description: | - Provides enriched incident data and metrics for multiple incidents. + Provides aggregated metrics for incidents aggregated into units of time by team. - Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Some metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/pagerduty-analytics). + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#teams-list). + Data can be aggregated by day, week or month in addition to by team, or provided just as a collection of aggregates for each team in the dataset for the entire period. If a unit is provided, each row in the returned dataset will include a 'range_start' timestamp. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. - > **Note:** Analytics data is updated once per day. It takes up to 24 hours before new incidents appear in the Analytics API. + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. - Scoped OAuth requires: `analytics.read` - tags: - - Analytics - '/analytics/raw/incidents/{id}': - get: - x-pd-requires-scope: analytics.read - summary: Get raw data - single incident + Scoped OAuth requires: `analytics.write` tags: - Analytics + parameters: [] + /analytics/metrics/incidents/teams/all: + post: + x-pd-requires-scope: analytics.write + summary: Get aggregated metrics for all teams + operationId: getAnalyticsMetricsIncidentsTeamAll responses: '200': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AnalyticsRawIncident' - examples: - Example Response: - value: - time_zone: Etc/UTC - data: - assignment_count: 0 - business_hour_interruptions: 0 - created_at: '2019-12-01T21:00:00Z' - description: The server is on fire! - engaged_seconds: 75 - engaged_user_count: 2 - escalation_count: 0 - id: PJASD33 - incident_number: 924 - major: true - off_hour_interruptions: 2 - priority_id: PZOZQXA - priority_name: SEV-1 - resolved_at: '2019-12-01T21:01:00Z' - seconds_to_engage: 30 - seconds_to_first_ack: 15 - seconds_to_mobilize: 15 - seconds_to_resolve: 60 - service_id: PAQTPI2 - service_name: Engineering - sleep_hour_interruptions: 0 - snoozed_seconds: 0 - team_id: PNVU4UR - team_name: Engineering team 7 - urgency: high - user_defined_effort_seconds: null - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - operationId: getAnalyticsIncidentsById - description: | - Provides enriched incident data and metrics for a single incident. - - Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Some metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/pagerduty-analytics). - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - > **Note:** Analytics data is updated once per day. It takes up to 24 hours before new incidents appear in the Analytics API. - - Scoped OAuth requires: `analytics.read` - parameters: - - $ref: '#/components/parameters/id' - '/analytics/raw/incidents/{id}/responses': - get: - x-pd-requires-scope: analytics.read - summary: Get raw responses from a single incident - tags: - - Analytics - responses: - '200': - description: '' + description: Only returns data for teams that match the filters and have data. content: application/json: schema: type: object properties: - incident_id: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsIncidentMetrics' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. + properties: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: type: string - description: The Incident ID passed in to the request. - limit: - type: integer - description: Number of results to include in the batch. + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC order: type: string - description: 'The order in which the results were sorted; asc for ascending, desc for descending.' + description: The order in which the results were sorted; asc for ascending, desc for descending. enum: - asc - desc order_by: type: string description: The column that was used for ordering the results. - enum: - - requested_at - time_zone: + example: created_at + aggregate_unit: type: string - description: The time zone that the results are in. - responses: + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month + examples: + Example Response: + value: + data: + - mean_assignment_count: 1 + mean_engaged_seconds: 366 + mean_engaged_user_count: 1 + mean_seconds_to_engage: 81 + mean_seconds_to_first_ack: 63 + mean_seconds_to_mobilize: 41 + mean_seconds_to_resolve: 380 + mean_user_defined_engaged_seconds: 366 + total_business_hour_interruptions: 81 + total_engaged_seconds: 3591 + total_escalation_count: 5 + total_incident_count: 124 + total_incidents_acknowledged: 1 + total_incidents_auto_resolved: 12 + total_incidents_manual_escalated: 9 + total_incidents_reassigned: 1 + total_incidents_timeout_escalated: 4 + total_interruptions: 1 + total_notifications: 342 + total_off_hour_interruptions: 20 + total_sleep_hour_interruptions: 21 + total_snoozed_seconds: 78 + total_user_defined_engaged_seconds: 3591 + filters: + created_at_start: '2023-06-10T00:00:00Z' + created_at_end: '2023-06-12T00:00:00Z' + urgency: high + major: true + team_ids: + - P3XUQ75 + time_zone: Etc/UTC + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsModel' + examples: + Example Request: + value: + filters: + created_at_start: '2023-06-10T00:00:00-07:00' + created_at_end: '2023-06-11T23:59:59-07:00' + urgency: high + major: true + team_ids: + - P3XUQ75 + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. + description: | + Provides aggregated metrics across all teams. + + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#teams-list). + + + > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/metrics/pd_advance_usage/features: + post: + x-pd-requires-scope: analytics.write + summary: Get aggregated PD Advance usage data + operationId: getAnalyticsMetricsPdAdvanceUsageFeatures + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + data: type: array items: - title: Analytics Raw Incident Responses + title: Analytics PD Advance Usage by Feature type: object properties: - responder_name: + feature_id: + type: string + description: Which feature of PD Advance was used. + total_credits_used: + type: integer + description: How many credits were used by this feature. + total_use_count: + type: integer + description: How many times this feature was used. + total_proactive_credits_used: + type: integer + description: How many of the credits used were initiated by PD Advance rather than a user. + total_proactive_use_count: + type: integer + description: How many times this feature was initiated by PD Advance rather than a user. + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. + properties: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any PD Advance usage with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any PD Advance usage with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + incident_created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with incident_created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + incident_created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with incident_created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: type: string - description: Name of the user associated with the Incident Response. - responder_id: + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: type: string - description: ID of the user associated with the Incident Response. - response_status: + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: type: string - description: Status of the user's interaction with the Incident notification. - enum: - - joined - - pending - - declined - responder_type: + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: type: string - description: |- - Type of responder, where `assigned` means the user was added to the Incident via Assignment at Incident creation, - `reassigned` means the user was added to the Incident via Reassignment, `escalated` means the user was added via Escalation, - and `added_responder` means the user was added via Responder Reqeuest. - enum: - - assigned - - reassigned - - escalated - - added_responder - requested_at: - type: string - description: Timestamp of when the user was requested. - responded_at: - type: string - description: Timestamp of when the user responded to the request. - time_to_respond_seconds: - type: integer - description: 'Measures the time it took for the user to respond to the Incident request. In other words, `responded_at - requested_at`.' + example: + - P1 + - P2 + - P3 + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC examples: Example Response: value: - incident_id: ABCDEFGHIJKLMN - limit: 100 - order: asc - order_by: requested_at + data: + - feature_id: genai_incident_summarization + total_credits_used: 16 + total_use_count: 8 + total_proactive_credits_used: 0 + total_proactive_use_count: 0 + - feature_id: genai_assist_bot + total_credits_used: 1 + total_use_count: 1 + total_proactive_credits_used: 0 + total_proactive_use_count: 0 + - feature_id: genai_status_updates + total_credits_used: 48 + total_use_count: 16 + total_proactive_credits_used: 0 + total_proactive_use_count: 0 + - feature_id: genai_knowledge_base + total_credits_used: 18 + total_use_count: 9 + total_proactive_credits_used: 0 + total_proactive_use_count: 0 + - feature_id: genai_incident_insight + total_credits_used: 96 + total_use_count: 84 + total_proactive_credits_used: 0 + total_proactive_use_count: 36 + filters: + incident_created_at_end: '2024-10-31T00:00:00Z' + incident_created_at_start: '2024-10-01T00:00:00Z' time_zone: Etc/UTC - responses: - responder_name: Earline Greenholt - responder_id: PXPGF42 - response_status: accepted - responder_type: added_responder - requested_at: '2023-01-05T10:15:00' - responded_at: '2023-01-05T10:18:00' - time_to_respond_seconds: 180 - '404': - $ref: '#/components/responses/NotFound' + '400': + $ref: '#/components/responses/ArgumentError' '429': $ref: '#/components/responses/TooManyRequests' + parameters: [] requestBody: content: application/json: schema: - type: object - properties: - limit: - type: integer - description: |- - Number of results to include in each batch. - Limits between 1 to 1000 are accepted. - example: 20 - minimum: 0 - exclusiveMinimum: true - maximum: 1000 - exclusiveMaximum: false - order: - type: string - description: 'The order the results; asc for ascending, desc for descending. Defaults to `desc`.' - enum: - - asc - - desc - order_by: - type: string - description: The column to use for ordering the results. - enum: - - requested_at - time_zone: - type: string - description: The time zone to use for the results. - example: Etc/UTC + $ref: '#/components/schemas/AnalyticsPdAdvanceUsageFilter' examples: Example Request: value: - limit: 20 - order: desc - order_by: requested_at - time_zone: America/Los_Angeles - description: Parameters to apply to the dataset. - operationId: getAnalyticsIncidentResponsesById + filters: + incident_created_at_start: '2024-01-01T00:00:00-05:00' + incident_created_at_end: '2024-01-31T00:00:00-05:00' + urgency: high + major: true + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. description: | - Provides enriched responder data for a single incident. - - Example metrics include Time to Respond, Responder Type, and Response Status. See metric definitions below. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Provides aggregated metrics for the usage of PD Advance. - > **Note:** Analytics data is updated once per day. It takes up to 24 hours before new incident responses appear in the Analytics API. - Scoped OAuth requires: `analytics.read` - parameters: - - $ref: '#/components/parameters/id' + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/metrics/responders/all: + post: + x-pd-requires-scope: analytics.write + summary: Get aggregated metrics for all responders + operationId: getAnalyticsMetricsRespondersAll + responses: + '200': + description: Only returns data for responders that match the filters and have data. + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsResponderMetrics' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results + properties: + date_range_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with date_range_end is one year. + example: '2023-10-01T00:00:00+05:00' + date_range_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with date_range_start is one year. + example: '2023-10-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + responder_ids: + type: array + description: An array of responder IDs. Only incidents related to these responders will be included in the results. If omitted, all responders the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + time_zone: + type: string + description: The time zone to use for the results and grouping. + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: user_id + examples: + Example Response: + value: + data: + - mean_engaged_seconds: 366 + mean_time_to_acknowledge_seconds: 1 + total_business_hour_interruptions: 81 + total_engaged_seconds: 63 + total_incident_count: 41 + total_incidents_acknowledged: 380 + total_incidents_manual_escalated_from: 81 + total_incidents_manual_escalated_to: 3591 + total_incidents_reassigned_from: 5 + total_incidents_reassigned_to: 124 + total_incidents_timeout_escalated_from: 20 + total_incidents_timeout_escalated_to: 21 + total_interruptions: 4 + total_notifications: 78 + total_off_hour_interruptions: 23 + total_seconds_on_call: 604799 + total_seconds_on_call_level_1: 126000 + total_seconds_on_call_level_2_plus: 604799 + total_sleep_hour_interruptions: 0 + filters: + date_range_start: '2023-06-10T00:00:00Z' + date_range_end: '2023-06-12T00:00:00Z' + responder_ids: + - PDUSER1 + - PDUSER2 + urgency: high + time_zone: Etc/UTC + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsResponderFilter' + examples: + Example Request: + value: + filters: + date_range_start: '2023-06-10T00:00:00-07:00' + date_range_end: '2023-06-11T23:59:59-07:00' + urgency: high + responder_ids: + - PDUSER1 + - PDUSER2 + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. + description: | + Provides aggregated incident metrics for all selected responders. + + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#responders-list). + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/metrics/responders/teams: + post: + x-pd-requires-scope: analytics.write + summary: Get responder data aggregated by team + operationId: getAnalyticsMetricsRespondersTeam + responses: + '200': + description: Only returns data for responders and teams that match the filters and have data. + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsResponderMetrics' + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results + properties: + date_range_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with date_range_end is one year. + example: '2023-10-01T00:00:00+05:00' + date_range_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with date_range_start is one year. + example: '2023-10-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + responder_ids: + type: array + description: An array of responder IDs. Only incidents related to these responders will be included in the results. If omitted, all responders the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + time_zone: + type: string + description: The time zone to use for the results and grouping. + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: user_id + examples: + Example Response: + value: + data: + - mean_engaged_seconds: 366 + mean_time_to_acknowledge_seconds: 1 + responder_id: PDUSER1 + responder_name: User 1 + team_id: PPSCXAN + team_name: 'Best Team A #1' + total_business_hour_interruptions: 81 + total_engaged_seconds: 63 + total_incident_count: 41 + total_incidents_acknowledged: 380 + total_incidents_manual_escalated_from: 81 + total_incidents_manual_escalated_to: 3591 + total_incidents_reassigned_from: 5 + total_incidents_reassigned_to: 124 + total_incidents_timeout_escalated_from: 20 + total_incidents_timeout_escalated_to: 21 + total_interruptions: 4 + total_notifications: 78 + total_off_hour_interruptions: 23 + total_seconds_on_call: 604799 + total_seconds_on_call_level_1: 126000 + total_seconds_on_call_level_2_plus: 604799 + total_sleep_hour_interruptions: 0 + - mean_engaged_seconds: 366 + mean_time_to_acknowledge_seconds: 1 + responder_id: PDUSER2 + responder_name: User 2 + team_id: PPSCXAN + team_name: 'Best Team A #1' + total_business_hour_interruptions: 81 + total_engaged_seconds: 63 + total_incident_count: 41 + total_incidents_acknowledged: 380 + total_incidents_manual_escalated_from: 81 + total_incidents_manual_escalated_to: 3591 + total_incidents_reassigned_from: 5 + total_incidents_reassigned_to: 124 + total_incidents_timeout_escalated_from: 20 + total_incidents_timeout_escalated_to: 21 + total_interruptions: 6 + total_notifications: 78 + total_off_hour_interruptions: 23 + total_seconds_on_call: 120000 + total_seconds_on_call_level_1: 120000 + total_seconds_on_call_level_2_plus: 0 + total_sleep_hour_interruptions: 0 + filters: + date_range_start: '2023-06-10T00:00:00Z' + date_range_end: '2023-06-12T00:00:00Z' + responder_ids: + - PDUSER1 + - PDUSER2 + urgency: high + time_zone: Etc/UTC + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsResponderFilter' + examples: + Example Request: + value: + filters: + date_range_start: '2023-06-10T00:00:00-07:00' + date_range_end: '2023-06-11T23:59:59-07:00' + urgency: high + responder_ids: + - PDUSER1 + - PDUSER2 + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. + description: | + Provides incident metrics aggregated by responder. + + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#responders-list). + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/metrics/users/all: + post: + x-pd-requires-scope: analytics.write + summary: Get aggregated metrics for all users + operationId: getAnalyticsMetricsUsersAll + responses: + '200': + description: Returns user metrics aggregated across the account + content: + application/json: + schema: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsUserMetrics' + filters: + type: object + properties: + created_at_start: + type: string + format: date-time + description: The start of the date range used for filtering + created_at_end: + type: string + format: date-time + description: The end of the date range used for filtering + team_ids: + type: array + items: + type: string + description: The team IDs used for filtering + time_zone: + type: string + description: The time zone used for the results + examples: + Example Response: + value: + data: + - total_downloaded_mobile_app_count: 0 + total_downloaded_mobile_app_percentage: 0 + total_on_escalation_policy_count: 0 + total_on_escalation_policy_percentage: 0 + total_signed_up_count: 14 + total_signed_up_percentage: 70 + total_user_count: 20 + total_with_notification_methods_count: 5 + total_with_notification_methods_percentage: 25 + filters: + created_at_start: '2024-08-07T07:00:00Z' + created_at_end: '2025-08-06T06:59:59Z' + time_zone: America/Chicago + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsUserFilter' + examples: + Example Request: + value: + filters: + created_at_start: '2024-08-07T00:00:00-07:00' + created_at_end: '2025-08-05T23:59:59-07:00' + time_zone: America/Chicago + description: Parameters and filters to apply to the dataset. + description: | + Provides aggregated metrics across all users within their account. This endpoint provides summary statistics about user activity and performance. + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/raw/incidents: + post: + x-pd-requires-scope: analytics.write + summary: Get raw data - multiple incidents + operationId: getAnalyticsIncidents + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + first: + type: string + description: Cursor to identify the first object in the response. + last: + type: string + description: Cursor to identify the last object in the response. + limit: + type: integer + description: Number of results to include in the batch. + more: + type: boolean + description: Indicates if there are more resources available than were returned. + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + enum: + - created_at + - seconds_to_resolve + - updated_at + filters: + type: object + description: A collection of filters that were applied to the results. + properties: + created_at_start: + type: string + description: The lower boundary for the created_at range filter applied to the results. + created_at_end: + type: string + description: The upper boundary for the created_at range filter applied to the results. + urgency: + type: string + description: The urgency filter applied to the results. + enum: + - high + - low + major: + type: boolean + description: The [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) filter applied to the results. + team_ids: + type: array + description: The team_ids filter applied to the results. + items: + type: string + service_ids: + type: array + description: The service_ids filter applied to the results. + items: + type: string + priority_ids: + type: array + description: The priority_ids filter applied to the results. + maxItems: 5 + items: + type: string + priority_names: + type: array + description: The priority_names filter applied to the results. + maxItems: 5 + items: + type: string + incident_type_ids: + type: array + description: The incident_type_ids filter applied to the results. + items: + type: string + time_zone: + type: string + description: The time zone that the results are in. + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsRawIncident' + required: + - first + - last + - limit + - more + - order + - order_by + - time_zone + - data + examples: + Example Response: + value: + data: + - acknowledged_user_ids: + - PRJ4208 + acknowledged_user_names: + - John Smith + acknowledgement_count: 1 + active_user_count: 3 + assigned_user_ids: + - PRJ4208 + - PA02301 + assigned_user_names: + - John Smith + - Jane Doe + assignment_count: 2 + auto_resolved: false + business_hour_interruptions: 5 + created_at: '2023-05-31T10:05:00' + updated_at: '2023-06-04T00:00:00' + description: The server is on fire! + engaged_seconds: 3510 + engaged_user_count: 10 + escalation_count: 1 + escalation_policy_id: PDESCP1 + escalation_policy_name: Escalation Policy 1 + id: PYC0H08 + incident_number: 928 + incident_type_id: PIJ90N7 + incident_type_name: incident_default + joined_user_ids: + - PRJ4208 + - PA02301 + - P40D0J1 + joined_user_names: + - John Smith + - Jane Doe + - Wanda Evans + major: false + manual_escalation_count: 0 + off_hour_interruptions: 4 + priority_id: null + priority_name: null + priority_order: null + reassignment_count: 0 + resolved_at: '2023-05-31T10:15:00' + resolved_by_user_id: PRJ4208 + resolved_by_user_name: John Smith + seconds_to_engage: 70 + seconds_to_first_ack: 5 + seconds_to_mobilize: 19 + seconds_to_resolve: 3305 + service_id: PPSCXAN + service_name: Engineering + sleep_hour_interruptions: 3 + snoozed_seconds: 604 + status: resolved + team_id: null + team_name: null + timeout_escalation_count: 0 + total_interruptions": null + total_notifications: 2 + urgency: low + user_defined_effort_seconds: null + - acknowledged_user_ids: + - PMT4102 + acknowledged_user_names: + - Sally Styles + acknowledgement_count: 1 + active_user_count: 1 + assigned_user_ids: + - PMT4102 + assigned_user_names: + - Sally Styles + assignment_count: 1 + business_hour_interruptions: 2 + created_at: '2023-05-31T10:00:00' + updated_at: '2023-06-04T00:00:00' + description: Reply on social media + engaged_seconds: 521 + engaged_user_count: 6 + escalation_count: 1 + escalation_policy_id: PDESCP1 + escalation_policy_name: Escalation Policy 1 + id: PCOOHCY + incident_number: 929 + incident_type_id: PIJ90N7 + incident_type_name: incident_default + joined_user_ids: + - PMT4102 + joined_user_names: + - Sally Styles + major: false + manual_escalation_count: 0 + off_hour_interruptions: 3 + priority_id: POTCOTX + priority_name: SEV-2 + priority_order: null + reassignment_count: 0 + resolved_at: '2023-05-30T10:00:05' + resolved_by_user_id: PMT4102 + resolved_by_user_name: Sally Styles + seconds_to_engage: 24 + seconds_to_first_ack: 48 + seconds_to_mobilize: 122 + seconds_to_resolve: 2029 + service_id: PPSCXAN + service_name: Social media tracking + sleep_hour_interruptions: 1 + snoozed_seconds: 698 + status: resolved + team_id: null + team_name: Marketing + timeout_escalation_count: 0 + total_interruptions": null + total_notifications: 2 + urgency: low + user_defined_effort_seconds: null + ending_before: null + filters: {} + first: PYC0H08 + last: PCOOHCY + limit: 10 + more: true + order: desc + order_by: created_at + starting_after: null + time_zone: Etc/UTC + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + filters: + type: object + description: Filters the result, only show incidents that match the conditions passed in the filter. + properties: + created_at_start: + type: string + description: Filters the result, showing only the incidents where the creation timestamp is greater than or equal to the filter value. + example: '2023-05-01T00:00:00-04:00' + created_at_end: + type: string + description: Filters the result, showing only the incidents where the creation timestamp is less than the filter value. + example: '2023-06-01T00:00:00-04:00' + updated_after: + type: string + description: Filters the result, showing only incidents where the updated_at value is greater than the filter value. + urgency: + type: string + description: Filters the result, showing only the incidents where urgency matches the filter value. + example: high + major: + type: boolean + description: An incident is classified as a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) if it has one of the two highest priorities, or if multiple responders are added and acknowledge the incident. + example: true + team_ids: + type: array + description: An array of team IDs. Only incidents that are assigned to a member of these teams will be returned. Account must have the teams ability to use this parameter. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only results related to these services will be returned. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_ids: + type: array + description: The priority_ids filter applied to the results. + items: + type: string + example: + - PITMC5Y + - PEHBBT8 + - PB8QADI + priority_names: + type: array + description: The priority_names filter applied to the results. + items: + type: string + example: + - P1 + - P2 + - P3 + incident_type_ids: + type: array + description: Filter incidents by specific incident type IDs. Only incidents matching the given IDs will be returned. + items: + type: string + example: + - PIJ90N7 + - PKL73Z2 + starting_after: + type: string + description: A cursor to indicate the reference point that the results should follow + ending_before: + type: string + description: A cursor to indicate the reference point that the results should precede + order: + type: string + description: The order the results; asc for ascending, desc for descending. Defaults to 'desc'. + enum: + - asc + - desc + order_by: + type: string + description: The column to use for ordering the results. Defaults to 'created_at'. + enum: + - created_at + - seconds_to_resolve + limit: + type: integer + description: |- + Number of results to include in each batch. + Limits between 1 to 1000 are accepted. + example: 20 + minimum: 0 + exclusiveMinimum: true + maximum: 1000 + exclusiveMaximum: false + time_zone: + type: string + description: The time zone to use for the results. + example: Etc/UTC + examples: + Example Request: + value: + filters: + created_at_start: '2024-01-01T00:00:00-05:00' + created_at_end: '2024-01-31T00:00:00-05:00' + updated_after: '2024-05-01T00:00:00-05:00' + urgency: high + major: true + team_ids: + - PGVXG6U + - PNVU4U4 + service_ids: + - PQVUB8D + - PU2D9X3 + priority_names: + - P1 + - P2 + incident_type_ids: + - PIJ90N7 + - PKL73Z2 + limit: 20 + order: desc + order_by: created_at + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. + description: | + Provides enriched incident data and metrics for multiple incidents. + + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#incidents-list). + + + > A `team_ids` or `service_ids` filter is required for [user-level API keys](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or keys generated through an OAuth flow. Account-level API keys do not have this requirement. + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] + /analytics/raw/incidents/{id}: + get: + x-pd-requires-scope: analytics.read + summary: Get raw data - single incident + tags: + - Analytics + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsRawIncident' + examples: + Example Response: + value: + time_zone: Etc/UTC + data: + acknowledged_user_ids: + - PRJ4208 + acknowledged_user_names: + - Santos Dicera + acknowledgement_count: 1 + active_user_count: 2 + assigned_user_ids: + - PRJ4208 + - PA02301 + assigned_user_names: + - Santos Dicera + - Jane Doe + assignment_count: 2 + auto_resolved: false + business_hour_interruptions: 0 + created_at: '2024-01-01T21:00:00Z' + updated_at: '2024-06-01T00:00:00Z' + description: The server is on fire! + engaged_seconds: 75 + engaged_user_count: 2 + escalation_count: 0 + escalation_policy_id: PCI3U5T + escalation_policy_name: Sputnik + id: PJASD33 + incident_number: 924 + incident_type_id: PIJ90N7 + incident_type_name: incident_default + joined_user_ids: + - PRJ4208 + - PA02301 + joined_user_names: + - Santos Dicera + - Jane Doe + major: true + manual_escalation_count: 0 + off_hour_interruptions: 2 + priority_id: PZOZQXA + priority_name: SEV-1 + priority_order: 67108864 + reassignment_count: 0 + resolved_at: '2024-01-02T21:01:00Z' + resolved_by_user_id: PRJ4208 + resolved_by_user_name: Santos Dicera + seconds_to_engage: 30 + seconds_to_first_ack: 15 + seconds_to_mobilize: 15 + seconds_to_resolve: 60 + service_id: PAQTPI2 + service_name: Engineering + sleep_hour_interruptions: 0 + snoozed_seconds: 0 + status: resolved + team_id: PNVU4UR + team_name: Engineering team 7 + timeout_escalation_count: 0 + total_interruptions: null + total_notifications: 2 + urgency: high + user_defined_effort_seconds: null + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + operationId: getAnalyticsIncidentsById + description: | + Provides enriched incident data and metrics for a single incident. + + Example metrics include Seconds to Resolve, Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#incidents-list). + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.read` + parameters: + - $ref: '#/components/parameters/id' + /analytics/raw/incidents/{id}/responses: + get: + x-pd-requires-scope: analytics.read + summary: Get raw responses from a single incident + tags: + - Analytics + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + incident_id: + type: string + description: The Incident ID passed into the request. + limit: + type: integer + description: Number of results to include in the batch. + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + enum: + - requested_at + time_zone: + type: string + description: The time zone that the results are in. + responses: + type: array + items: + $ref: '#/components/schemas/AnalyticsRawIncidentResponses' + examples: + Example Response: + value: + incident_id: PJASD33 + limit: 100 + order: asc + order_by: requested_at + time_zone: Etc/UTC + responses: + requested_at: '2024-01-05T10:15:00' + responded_at: '2024-01-05T10:18:00' + responder_id: PXPGF42 + responder_name: Earline Greenholt + responder_type: added_responder + response_status: accepted + time_to_respond_seconds: 180 + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + requestBody: + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: |- + Number of results to include in each batch. + Limits between 1 to 1000 are accepted. + example: 20 + minimum: 0 + exclusiveMinimum: true + maximum: 1000 + exclusiveMaximum: false + order: + type: string + description: The order in which to display the results; asc for ascending, desc for descending. Defaults to `desc`. + enum: + - asc + - desc + order_by: + type: string + description: The column to use for ordering the results. + enum: + - requested_at + time_zone: + type: string + description: The time zone to use for the results. + example: Etc/UTC + examples: + Example Request: + value: + limit: 20 + order: desc + order_by: requested_at + time_zone: America/Los_Angeles + description: Parameters to apply to the dataset. + operationId: getAnalyticsIncidentResponsesById + description: | + Provides enriched responder data for a single incident. + + Example metrics include Time to Respond, Responder Type, and Response Status. See metric definitions below. + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + Scoped OAuth requires: `analytics.read` + parameters: + - $ref: '#/components/parameters/id' + /analytics/raw/responders/{responder_id}/incidents: + post: + x-pd-requires-scope: analytics.write + summary: Get raw incidents for a single responder_id + operationId: getAnalyticsResponderIncidents + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + first: + type: string + description: Cursor to identify the first object in the response. + last: + type: string + description: Cursor to identify the last object in the response. + responder_id: + type: string + description: The Responder ID passed into the request. + limit: + type: integer + description: Number of results to include in the batch. + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + enum: + - incident_created_at + time_zone: + type: string + description: The time zone that the results are in. + filters: + type: object + description: A collection of filters that were applied to the results. + properties: + created_at_start: + type: string + description: The lower boundary for the created_at range filter applied to the results. + created_at_end: + type: string + description: The upper boundary for the created_at range filter applied to the results. + urgency: + type: string + description: The urgency filter applied to the results. + enum: + - high + - low + major: + type: boolean + description: The [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) filter applied to the results. + team_ids: + type: array + description: The team_ids filter applied to the results. + items: + type: string + service_ids: + type: array + description: The service_ids filter applied to the results. + items: + type: string + priority_ids: + type: array + description: The priority_ids filter applied to the results. + maxItems: 5 + items: + type: string + priority_names: + type: array + description: The priority_names filter applied to the results. + maxItems: 5 + items: + type: string + incident_type_ids: + type: array + description: The incident_type_ids filter applied to the results. + items: + type: string + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsRawResponderIncidents' + examples: + Example Response: + value: + responder_id: PDUSER1 + limit: 100 + order: asc + order_by: incident_created_at + time_zone: Etc/UTC + data: + - incident_created_at: '2023-06-10T22:08:35' + incident_description: 30 + incident_id: QPDINCIDENT1 + incident_number: 123456 + incident_priority_id: PZOZQXA + incident_priority_name: P1 + incident_priority_order: 67108864 + incident_urgency: 75 + mean_time_to_acknowledge_seconds: 2 + responder_id: PDUSER1 + responder_name: User 1 + service_id: PDSERV1 + service_name: Service 1 + service_team_id: PDTEAM1 + service_team_name: Team 1 + total_acknowledgements: 12 + total_business_hour_interruptions: 3 + total_engaged_seconds: 244 + total_interruptions: 2 + total_manual_escalations_from: 5 + total_manual_escalations_to: 1 + total_off_hour_interruptions: 0 + total_reassignments_from: 0 + total_reassignments_to: 0 + total_sleep_hour_interruptions: 0 + total_timeout_escalations_from: 0 + total_timeout_escalations_to: 0 + - incident_created_at: '2023-06-11T22:08:35' + incident_description: 30 + incident_id: QPDINCIDENT2 + incident_number: 123456 + incident_priority_id: PZOZQXA + incident_priority_name: P1 + incident_priority_order: 67108864 + incident_urgency: 75 + mean_time_to_acknowledge_seconds: 2 + responder_id: PDUSER1 + responder_name: User 1 + service_id: PDSERV2 + service_name: Service 2 + service_team_id: PDTEAM1 + service_team_name: Team 1 + total_acknowledgements: 12 + total_business_hour_interruptions: 3 + total_engaged_seconds: 945 + total_interruptions: 2 + total_manual_escalations_from: 5 + total_manual_escalations_to: 1 + total_off_hour_interruptions: 0 + total_reassignments_from: 0 + total_reassignments_to: 0 + total_sleep_hour_interruptions: 0 + total_timeout_escalations_from: 0 + total_timeout_escalations_to: 0 + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: + - $ref: '#/components/parameters/responder_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + filters: + type: object + description: Filters the result, only show incidents that match the conditions passed in the filter. + properties: + created_at_start: + type: string + description: Filters the result, showing only the incidents where the creation timestamp is greater than the filter value. + example: '2023-05-01T00:00:00-04:00' + created_at_end: + type: string + description: Filters the result, showing only the incidents where the creation timestamp is less than the filter value. + example: '2023-06-01T00:00:00-04:00' + urgency: + type: string + description: Filters the result, showing only the incidents where urgency matches the filter value. + example: high + major: + type: boolean + description: An incident is classified as a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) if it has one of the two highest priorities, or if multiple responders are added and acknowledge the incident. + example: true + team_ids: + type: array + description: An array of team IDs. Only incidents that are assigned to a member of these teams will be returned. Account must have the teams ability to use this parameter. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only results related to these services will be returned. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_ids: + type: array + description: The priority_ids filter applied to the results. + items: + type: string + example: + - PITMC5Y + - PEHBBT8 + - PB8QADI + priority_names: + type: array + description: The priority_names filter applied to the results. + items: + type: string + example: + - P1 + - P2 + - P3 + incident_type_ids: + type: array + description: Filter incidents by specific incident type IDs. Only incidents matching the given IDs will be returned. + items: + type: string + example: + - PIJ90N7 + - PKL73Z2 + starting_after: + type: string + description: A cursor to indicate the reference point that the results should follow + ending_before: + type: string + description: A cursor to indicate the reference point that the results should precede + order: + type: string + description: The order in which to display the results; asc for ascending, desc for descending. Defaults to `desc`. + enum: + - asc + - desc + order_by: + type: string + description: The column to use for ordering the results. Defaults to `incident_created_at`. + enum: + - incident_created_at + limit: + type: integer + description: |- + Number of results to include in each batch. + Limits between 1 to 1000 are accepted. + example: 20 + minimum: 0 + exclusiveMinimum: true + maximum: 1000 + exclusiveMaximum: false + time_zone: + type: string + description: The time zone to use for the results. + example: Etc/UTC + examples: + Example Request: + value: + filters: + created_at_start: '2023-06-10T00:00:00-07:00' + created_at_end: '2023-06-11T23:59:59-07:00' + incident_type_ids: + - PIJ90N7 + - PKL73Z2 + responder_id: PDUSER1 + limit: 100 + order: asc + order_by: incident_created_at + time_zone: Etc/UTC + description: Parameters and filters to apply to the dataset. + tags: + - Analytics + description: | + Provides enriched incident data and metrics for a specific responder. + + Example metrics include Mean Seconds to Resolve, Mean Seconds to Engage, Snoozed Seconds, and Sleep Hour Interruptions. Metric definitions can be found in our [Knowledge Base](https://support.pagerduty.com/docs/insights#incidents-list). + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + /analytics/raw/users: + post: + x-pd-requires-scope: analytics.write + summary: Get raw user analytics data + operationId: getAnalyticsUsers + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + first: + type: string + description: Cursor to identify the first object in the response. + last: + type: string + description: Cursor to identify the last object in the response. + limit: + type: integer + description: Number of results to include in the batch. + more: + type: boolean + description: Indicates if there are more resources available than were returned. + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + default: name + filters: + type: object + description: A collection of filters that were applied to the results. + properties: + created_at_start: + type: string + description: The lower boundary for the created_at range filter applied to the results. + created_at_end: + type: string + description: The upper boundary for the created_at range filter applied to the results. + team_ids: + type: array + description: The team_ids filter applied to the results. + items: + type: string + roles: + type: array + description: The roles filter applied to the results. + items: + type: string + time_zone: + type: string + description: The time zone that the results are in. + data: + type: array + items: + $ref: '#/components/schemas/AnalyticsRawUser' + examples: + Example Response: + value: + data: + - id: PAQ8IMO + description: null + time_zone: null + role: user + account_id: 1454 + team_id: null + team_name: null + created_at: '2025-02-21T16:56:08' + email: atest@pagerduty.com + user_name: Adam Test + last_sign_in_at: '2025-03-04T09:30:51' + default_notification_channel_count: 0 + escalation_policies_count: 0 + schedules_count: 0 + channel_types_configured: + - SlackChannel + - EmailChannel + team_count: 0 + downloaded_mobile_app: false + notification_methods: false + on_escalation_policy: false + on_schedule: false + signed_up: true + - id: PLNOYYJ + description: null + time_zone: Europe/Lisbon + role: user + account_id: 1454 + team_id: null + team_name: null + created_at: '2025-08-12T17:16:12' + email: btest@pagerduty.com + user_name: B Test + last_sign_in_at: '2025-09-03T12:05:29' + default_notification_channel_count: 1 + escalation_policies_count: 0 + schedules_count: 0 + channel_types_configured: + - EmailChannel + - PushNotificationChannel + - SlackChannel + - SmsChannel + - PhoneChannel + team_count: 0 + downloaded_mobile_app: true + notification_methods: true + on_escalation_policy: false + on_schedule: false + signed_up: true + first: eyJpZCI6IlBBUThJTU8iLCJ2YWx1ZSI6IkFkYW0gRGlvcCIsIm9yZGVyX2J5IjoibmFtZSJ9 + last: eyJpZCI6IlBQNTlSRTAiLCJ2YWx1ZSI6IkFsbGlzb24gQ29ybGV5Iiwib3JkZXJfYnkiOiJuYW1lIn0= + more: true + limit: 10 + filters: + created_at_start: '2025-01-01T00:00:00Z' + created_at_end: '2025-09-01T00:00:00Z' + time_zone: Etc/UTC + order: asc + order_by: name + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AnalyticsUserFilter' + examples: + Example Request: + value: + filters: + created_at_start: '2025-01-01T00:00:00Z' + created_at_end: '2025-09-01T00:00:00Z' + limit: 10 + description: Parameters and filters to apply to the dataset. + description: | + Allows users to retrieve a raw list of user analytics data within their account. This endpoint provides detailed data about user activity and account configuration. + + + > **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions. + + Scoped OAuth requires: `analytics.write` + tags: + - Analytics + parameters: [] +components: + schemas: + AnalyticsModel: + type: object + properties: + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. + properties: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + pd_advance_used: + type: boolean + description: If true, only incidents where PD Advance was used will be included in the results, and vice versa. If omitted, all incidents will be included. + example: true + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: created_at + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month + AnalyticsIncidentMetricsEscalationPolicy: + title: Analytics Incident Metrics Escalation Policy + type: object + properties: + distinct_responder_count: + type: integer + description: Distinct count of responders who engaged in incidents on the escalation policy + escalation_policy_id: + type: string + description: ID of the escalation policy the incident was last assigned to. Not included when aggregating by all. + escalation_policy_name: + type: string + description: Name of the escalation policy the incident was last assigned to. Not included when aggregating by all. + mean_assignment_count: + type: integer + description: Mean count of instances where responders were assigned an incident (including through reassignment or escalation) or accepted a responder request. + mean_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders. + Engaged time is measured from the time a user engages with an incident (by + acknowledging or accepting a responder request) until the incident is resolved. + This may include periods in which the incidents were snoozed. + mean_engaged_user_count: + type: integer + description: |- + Mean number of users who engaged with an incident. *Engaged* is defined as + acknowledging an incident or accepting a responder request in it. + mean_seconds_to_engage: + type: integer + description: |- + A measure of *people response time*. This metric measures the time from + the first user engagement (acknowledge or responder accept) to the last. + This metric is only used for incidents with **multiple responders**; + for incidents with one or no engaged users, this value is null. + mean_seconds_to_first_ack: + type: integer + description: Mean time between the start of an incident, and the first responder to acknowledge. + mean_seconds_to_mobilize: + type: integer + description: |- + Mean time between the start of an incident, and the last additional responder + to acknowledge. For incidents with one or no engaged users, this value is null. + mean_seconds_to_resolve: + type: integer + description: Mean time from when an incident was triggered until it was resolved. + mean_user_defined_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders. Engaged time is measured from the time + a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + This metric uses the incident response effort values that + [users have defined](https://support.pagerduty.com/docs/edit-incidents#edit-incident-duration), + if they exist. + range_start: + type: string + description: Start of the date range that the metrics were calculated for. Only included when an aggregate unit is specified in the request. + team_id: + type: string + description: ID of the team the incident was assigned to. Not included when aggregating by all. + team_name: + type: string + description: Name of the team the incident was assigned to. Not included when aggregating by all. + total_business_hour_interruptions: + type: integer + description: Total number of unique interruptions during business hours; 8am-6pm Mon-Fri, based on the user’s time zone. + total_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + total_escalation_count: + type: integer + description: |- + Total count of instances where an incident is escalated between responders + assigned to an escalation policy. + total_incident_count: + type: integer + description: The total number of incidents that were created. + total_incidents_acknowledged: + type: integer + description: |- + The total count of assigned incidents acknowledged. + Only explicit incident acknowledgment counts; reassign, resolve, and escalation actions do not imply acknowledgement. + total_incidents_auto_resolved: + description: |- + The total count of incidents that were resolved automatically. + This count includes incidents resolved via an integration and those that were [auto-resolved in PagerDuty](https://support.pagerduty.com/docs/configurable-service-settings#auto-resolution). + total_incidents_manual_escalated: + type: integer + description: The total count of incidents that were manually escalated. + total_incidents_reassigned: + type: integer + description: The total count of incidents that were reassigned. + total_incidents_timeout_escalated: + type: integer + description: The total count of incidents that were escalated due to timeouts. + total_interruptions: + type: integer + description: Total number of unique interruptions. + total_notifications: + type: integer + description: The total count of incident notifications sent via email, SMS, phone call and push. + total_off_hour_interruptions: + type: integer + description: Total number of unique interruptions during off hours; 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. + total_sleep_hour_interruptions: + type: integer + description: Total number of unique interruptions during sleep hours; 10pm-8am every day, based on the user’s time zone. + total_snoozed_seconds: + type: integer + description: Total number of seconds incidents were snoozed. + total_user_defined_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + This metric uses the edited incident response effort values that + [users have defined](https://support.pagerduty.com/docs/edit-incidents#edit-incident-duration), + if they exist. + up_time_pct: + type: number + description: |- + The percentage of time in the defined date range that the service was not interrupted + by a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents). Not included when aggregating by all. + AnalyticsIncidentMetrics: + title: Analytics Incident Metrics + type: object + properties: + mean_assignment_count: + type: integer + description: Mean count of instances where responders were assigned an incident (including through reassignment or escalation) or accepted a responder request. + mean_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders. + Engaged time is measured from the time a user engages with an incident (by + acknowledging or accepting a responder request) until the incident is resolved. + This may include periods in which the incidents were snoozed. + mean_engaged_user_count: + type: integer + description: |- + Mean number of users who engaged with an incident. *Engaged* is defined as + acknowledging an incident or accepting a responder request in it. + mean_seconds_to_engage: + type: integer + description: |- + A measure of *people response time*. This metric measures the time from + the first user engagement (acknowledge or responder accept) to the last. + This metric is only used for incidents with **multiple responders**; + for incidents with one or no engaged users, this value is null. + mean_seconds_to_first_ack: + type: integer + description: Mean time between the start of an incident, and the first responder to acknowledge. + mean_seconds_to_mobilize: + type: integer + description: |- + Mean time between the start of an incident, and the last additional responder + to acknowledge. For incidents with one or no engaged users, this value is null. + mean_seconds_to_resolve: + type: integer + description: Mean time from when an incident was triggered until it was resolved. + mean_user_defined_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders. Engaged time is measured from the time + a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + This metric uses the incident response effort values that + [users have defined](https://support.pagerduty.com/docs/edit-incidents#edit-incident-duration), + if they exist. + range_start: + type: string + description: Start of the date range for which the metrics were calculated. Only included when an aggregate unit is specified in the request. + service_id: + type: string + description: ID of the service. Only included when aggregating by service. Not included when aggregating by all. + service_name: + type: string + description: Name of the service. Only included when aggregating by service. Not included when aggregating by all. + team_id: + type: string + description: ID of the team to which the incident was assigned. Not included when aggregating by all. + team_name: + type: string + description: Name of the team to which the incident was assigned. Not included when aggregating by all. + total_business_hour_interruptions: + type: integer + description: Total number of unique interruptions during business hours; 8am-6pm Mon-Fri, based on the user’s time zone. + total_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + total_escalation_count: + type: integer + description: |- + Total count of instances where an incident is escalated between responders + assigned to an escalation policy. + total_incident_count: + type: integer + description: The total number of incidents that were created. + total_incidents_acknowledged: + type: integer + description: |- + The total count of assigned incidents acknowledged. + Only explicit incident acknowledgment counts; reassign, resolve, and escalation actions do not imply acknowledgement. + total_incidents_auto_resolved: + description: |- + The total count of incidents that were resolved automatically. + This count includes incidents resolved via an integration and those that were [auto-resolved in PagerDuty](https://support.pagerduty.com/docs/configurable-service-settings#auto-resolution). + total_incidents_manual_escalated: + type: integer + description: The total count of incidents that were manually escalated. + total_incidents_reassigned: + type: integer + description: The total count of incidents that were reassigned. + total_incidents_timeout_escalated: + type: integer + description: The total count of incidents that were escalated due to timeouts. + total_interruptions: + type: integer + description: Total number of unique interruptions. + total_notifications: + type: integer + description: The total count of incident notifications sent via email, SMS, phone call and push. + total_off_hour_interruptions: + type: integer + description: Total number of unique interruptions during off hours; 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. + total_sleep_hour_interruptions: + type: integer + description: |- + Total number of unique interruptions during sleep hours. + Sleep hours: 10pm-8am every day, based on the user’s time zone. + total_snoozed_seconds: + type: integer + description: Total number of seconds incidents were snoozed. + total_user_defined_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + This metric uses the edited incident response effort values that + [users have defined](https://support.pagerduty.com/docs/edit-incidents#edit-incident-duration), + if they exist. + up_time_pct: + type: number + description: |- + The percentage of time in the defined date range that the service was not interrupted + by a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents). + Only included when aggregating by team, escalation policy, service, or all services. + AnalyticsPdAdvanceUsageFilter: + type: object + properties: + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results. + properties: + created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any PD Advance usage with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any PD Advance usage with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with created_at_start is one year. + example: '2024-02-01T00:00:00Z' + incident_created_at_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with incident_created_at_end is one year. + example: '2024-01-01T00:00:00+05:00' + incident_created_at_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with incident_created_at_start is one year. + example: '2024-02-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + major: + type: boolean + description: A boolean flag including whether results should contain *only* [major incidents](https://support.pagerduty.com/docs/operational-reviews#major-incidents), or exclude major incidents. If no value is provided all incidents will be included. + example: true + min_ackowledgements: + type: integer + description: An integer that sets the requirement for the minimum number of acknowledgements to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 acknowledgement. If no value is provided, all incidents will be included. + example: 1 + min_timeout_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of timeout escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 timeout escalation. If no value is provided, all incidents will be included. + example: 1 + min_manual_escalations: + type: integer + description: An integer that sets the requirement for the minimum number of manual escalations to occur on an incident. For example, setting this to 1 will return only incidents that have at least 1 manual escalation. If no value is provided, all incidents will be included. + example: 1 + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + service_ids: + type: array + description: An array of service IDs. Only incidents related to these services will be included in the results. If omitted, all services the requestor has access to will be included in the results. + items: + type: string + example: + - PSEJLIN + - PSLWBL8 + - PT4KHLX + escalation_policy_ids: + type: array + description: An array of escalation policy IDs. Only incidents related to these escalation policies will be included in the results. If omitted, all escalation policies the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + AnalyticsResponderMetrics: + title: Analytics Responder Metrics + type: object + properties: + mean_engaged_seconds: + type: integer + description: |- + Mean engaged time across all responders for incidents that match the given filters. + Engaged time is measured from the time a user engages with an incident (by + acknowledging or accepting a responder request) until the incident is resolved. + This may include periods in which the incidents were snoozed. + mean_time_to_acknowledge_seconds: + type: integer + description: |- + The average time between when an incident is first assigned to a user and when the incident is first acknowledged by that user. + Reassign, resolve, and escalation actions do not imply acknowledgement. + responder_id: + type: integer + description: ID of the responder (user). Not included when aggregating by all responders. + responder_name: + type: string + description: Name of the responder (user). Not included when aggregating by all responders. + team_id: + type: string + description: ID of the team associated with the responder. Not included when aggregating by all responders. + team_name: + type: string + description: Name of the team associated with the responder. Not included when aggregating by all responders. + total_business_hour_interruptions: + type: integer + description: Total number of unique interruptions during business hours; 8am-6pm Mon-Fri, based on the user’s time zone. + total_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders for incidents. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + total_incident_count: + type: integer + description: The total number of incidents that were created. + total_incidents_acknowledged: + type: integer + description: |- + The total count of assigned incidents acknowledged by the user. + Only explicit incident acknowledgment counts; reassign, resolve, and escalation actions do not imply acknowledgement. + total_incidents_manual_escalated_from: + type: integer + description: The total count of the user’s assigned incidents that were manually escalated away from a user without acknowledgement. + total_incidents_manual_escalated_to: + type: integer + description: The total count of incidents the user was manually escalated to. + total_incidents_reassigned_from: + type: integer + description: The total count of a user's assigned incidents that were reassigned away from the user to another user or escalation policy. + total_incidents_reassigned_to: + type: integer + description: The total count of incidents the user was reassigned to. + total_incidents_timeout_escalated_from: + type: integer + description: The total count of the user’s assigned incidents that were escalated due to timeouts. + total_incidents_timeout_escalated_to: + type: integer + description: The total count of incidents the user was escalated to due to timeouts. + total_interruptions: + type: integer + description: Total number of unique interruptions. + total_notifications: + type: integer + description: The total count of incident notifications sent via email, SMS, phone call and push. + total_off_hour_interruptions: + type: integer + description: Total number of unique interruptions during off hours; 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. + total_seconds_on_call: + type: integer + description: Total seconds the responder was on call. + total_seconds_on_call_level_1: + type: integer + description: Total seconds the responder was on call at level 1 of their escalation policy. + total_seconds_on_call_level_2_plus: + type: integer + description: Total seconds the responder was on call at level 2 or higher of their escalation policy. + total_sleep_hour_interruptions: + type: integer + description: Total number of unique interruptions during sleep hours; 10pm-8am every day, based on the user’s time zone. + AnalyticsResponderFilter: + type: object + properties: + filters: + type: object + description: Accepts a set of filters to apply to the Incidents before aggregating. Any incidents that do not match the included filters will be omitted from the results + properties: + date_range_start: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at less than this value will be omitted from the results. The maximum supported time range in conjunction with date_range_end is one year. + example: '2023-10-01T00:00:00+05:00' + date_range_end: + type: string + description: Accepts an ISO8601 DateTime string. Any incidents with a created_at greater than or equal to this value will be omitted from the results. The maximum supported time range in conjunction with date_range_start is one year. + example: '2023-10-01T00:00:00Z' + urgency: + type: string + description: Any incidents whose urgency does not match the provided string will be omitted from the results. + example: high + enum: + - high + - low + team_ids: + type: array + description: An array of team IDs. Only incidents related to these teams will be included in the results. If omitted, all teams the requestor has access to will be included in the results. + items: + type: string + example: + - P373JQQ + - PAECHJV + - P7SYGW6 + responder_ids: + type: array + description: An array of responder IDs. Only incidents related to these responders will be included in the results. If omitted, all responders the requestor has access to will be included in the results. + items: + type: string + example: + - PDJXDF3 + - PG4EHNS + priority_ids: + type: array + description: An array of priority IDs. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - PC8O0L3 + - PX01HJD + - P5FK83M + priority_names: + type: array + description: An array of user-defined priority names. Only incidents with these priorities will be included in the results. If omitted, all priorities will be included in the results. + items: + type: string + example: + - P1 + - P2 + - P3 + time_zone: + type: string + description: The time zone to use for the results and grouping. + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + order_by: + type: string + description: The column that was used for ordering the results. + example: user_id + AnalyticsUserMetrics: + title: Analytics User Metrics + type: object + properties: + total_downloaded_mobile_app_count: + type: integer + description: The number of users who have downloaded the mobile app. + total_downloaded_mobile_app_percentage: + type: number + format: float + description: The percentage of users who have downloaded the mobile app. + total_on_escalation_policy_count: + type: integer + description: The number of users who are on at least one escalation policy. + total_on_escalation_policy_percentage: + type: number + format: float + description: The percentage of users who are on at least one escalation policy. + total_signed_up_count: + type: integer + description: The number of users who have signed up (completed onboarding). + total_signed_up_percentage: + type: number + format: float + description: The percentage of users who have signed up. + total_user_count: + type: integer + description: The total number of users in the account that match the filters. + total_with_notification_methods_count: + type: integer + description: The number of users who have at least one notification method configured. + total_with_notification_methods_percentage: + type: number + format: float + description: The percentage of users who have at least one notification method configured. + AnalyticsUserFilter: + title: Analytics User Filter + type: object + properties: + filters: + $ref: '#/components/schemas/AnalyticsUserFilterConditions' + time_zone: + type: string + description: The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). + example: Etc/UTC + order: + type: string + description: The order in which the results were sorted; asc for ascending, desc for descending. + enum: + - asc + - desc + default: desc + order_by: + type: string + description: The column that was used for ordering the results. + example: user_id + default: user_id + aggregate_unit: + type: string + description: The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period. + nullable: true + example: day + enum: + - day + - week + - month + limit: + type: integer + description: The maximum number of results to return per page. The default (and maximum allowed value) is 1000. + default: 1000 + starting_after: + type: string + nullable: true + description: A cursor used for pagination. Starting after cursor provides the next set of results in forward pagination order. + ending_before: + type: string + nullable: true + description: A cursor used for pagination. Ending before cursor provides the previous set of results in reverse pagination order. + AnalyticsRawIncident: + title: Analytics Raw Incident + type: object + properties: + acknowledged_user_ids: + type: array + items: + type: string + description: The IDs of the users who acknowledged the incident. + acknowledged_user_names: + type: array + items: + type: string + description: The names of the users who acknowledged the incident. + acknowledgement_count: + type: integer + description: Total count of acknowledgements in the incident. + active_user_count: + type: integer + description: Total number of responders who either acknowledged the incident or accepted a responder request. + assigned_user_ids: + type: array + items: + type: string + description: The IDs of the users who were assigned the incident. + assigned_user_names: + type: array + items: + type: string + description: The names of the users who were assigned the incident. + assignment_count: + type: integer + description: Total count of instances where responders were assigned an incident (including through reassignment or escalation). + auto_resolved: + type: boolean + description: |- + Whether or not the incident resolved automatically, either via an integration + or [auto-resolved in PagerDuty](https://support.pagerduty.com/docs/configurable-service-settings#auto-resolution). + business_hour_interruptions: + type: integer + description: Total number of unique interruptions during business hours; 8am-6pm Mon-Fri, based on the user’s time zone. + created_at: + type: string + description: Timestamp of when the incident was created. + updated_at: + type: string + description: Timestamp of when the incident was last updated by the analytics process. Does not match the updated_at for an incident returned by the standard REST api incidents endpoint. + description: + type: string + description: The incident description + engaged_seconds: + type: integer + description: Total engaged time across all responders for this incident. Engaged time is measured from the time a user engages with an incident (by acknowledging or accepting a responder request) until the incident is resolved. This may include periods in which the incidents were snoozed. + engaged_user_count: + type: integer + description: Total number of users who engaged (acknowledged, accepted responder request) in the incident. + escalation_count: + type: integer + description: Total count of instances where an incident is escalated between responders assigned to an escalation policy. + escalation_policy_id: + type: string + description: ID of the escalation policy the incident was assigned to. + escalation_policy_name: + type: string + description: Name of the escalation policy the incident was assigned to. + id: + type: string + description: Incident ID + incident_number: + type: integer + description: The PagerDuty incident number. + incident_type_id: + type: string + description: ID of the Incident Type. + incident_type_name: + type: string + description: The name of the Incident Type. + joined_user_ids: + type: array + items: + type: string + description: The IDs of the users who either acknowledged the incident or accepted a responder request. + joined_user_names: + type: array + items: + type: string + description: The names of the users who either acknowledged the incident or accepted a responder request. + major: + type: boolean + description: An incident is classified as a [major incident](https://support.pagerduty.com/docs/operational-reviews#major-incidents) if it has one of the two highest priorities, or if multiple responders are added and acknowledge the incident. + manual_escalation_count: + type: integer + description: Total count of manual escalations in the incident. + off_hour_interruptions: + type: integer + description: Total number of unique interruptions during off hours; 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. + priority_id: + type: string + nullable: true + description: ID of the incident's priority level. + priority_name: + type: string + nullable: true + description: The user-provided short name of the priority. + priority_order: + type: integer + nullable: true + description: The numerical value used to sort priorities. Higher values are higher priority. + reassignment_count: + type: integer + description: Total count of reassignments in the incident. + resolved_at: + type: string + description: Timestamp of when the incident was resolved. + resolved_by_user_id: + type: string + description: ID of the user who resolved the incident. + resolved_by_user_name: + type: string + description: Name of the user who resolved the incident. + seconds_to_engage: + type: integer + description: |- + A measure of *people response time*. This metric measures the time from + the first user engagement (acknowledge or responder accept) to the last. + This metric is only used for incidents with **multiple responders**; + for incidents with one or no engaged users, this value is null. + seconds_to_first_ack: + type: integer + description: Time between the start of an incident, and the first responder to acknowledge. + seconds_to_mobilize: + type: integer + description: Time between the start of an incident, and the last additional responder to acknowledge. If an incident has one or no responders, the value will be null. + seconds_to_resolve: + type: integer + description: Time from when an incident was triggered until it was resolved. + service_id: + type: string + description: ID of the service that the incident triggered on. + service_name: + type: string + description: Name of the service that the incident triggered on. + sleep_hour_interruptions: + type: integer + description: Total number of unique interruptions during sleep hours; 10pm-8am every day, based on the user’s time zone. + snoozed_seconds: + type: integer + description: Total seconds the incident has been snoozed for. + status: + type: string + description: The incident status. Can be one of `triggered`, `acknowledged`, or `resolved`. + team_id: + type: string + nullable: true + description: ID of the team the incident was assigned to. + team_name: + type: string + nullable: true + description: Name of the team the incident was assigned to. + timeout_escalation_count: + type: integer + description: Total count of timeout escalations in the incident. + total_interruptions: + type: integer + description: Total number of unique interruptions in the incident. + total_notifications: + type: integer + description: Total number of notifications sent for the incident. + urgency: + type: string + description: Notification level + user_defined_effort_seconds: + type: integer + description: |- + The total response effort in seconds, + [as defined by the user](https://support.pagerduty.com/docs/editing-incidents#edit-incident-duration). + nullable: true + AnalyticsRawIncidentResponses: + title: Analytics Raw Incident Responses + type: object + properties: + responder_name: + type: string + description: Name of the user associated with the Incident Response. + responder_id: + type: string + description: ID of the user associated with the Incident Response. + response_status: + type: string + description: Status of the user's interaction with the Incident notification. + enum: + - joined + - pending + - declined + responder_type: + type: string + description: |- + Type of responder, where `assigned` means the user was added to the Incident via Assignment at Incident creation, + `reassigned` means the user was added to the Incident via Reassignment, `escalated` means the user was added via Escalation, + and `added_responder` means the user was added via Responder Reqeuest. + enum: + - assigned + - reassigned + - escalated + - added_responder + requested_at: + type: string + description: Timestamp of when the user was requested. + responded_at: + type: string + description: Timestamp of when the user responded to the request. + time_to_respond_seconds: + type: integer + description: Measures the time it took for the user to respond to the Incident request. In other words, `responded_at - requested_at`. + AnalyticsRawResponderIncidents: + title: Analytics Raw Responder Incidents + type: object + properties: + incident_created_at: + type: string + description: Timestamp of when the incident was created. + incident_description: + type: string + description: The incident description. + incident_id: + type: string + description: Incident ID + incident_number: + type: integer + description: The PagerDuty incident number. + incident_priority_id: + type: string + nullable: true + description: ID of the incident's priority level. + incident_priority_name: + type: string + nullable: true + description: The user-provided short name of the priority. + incident_priority_order: + type: integer + nullable: true + description: The numerical value used to sort priorities. Higher values are higher priority. + incident_urgency: + type: string + description: Notification level + mean_time_to_acknowledge_seconds: + type: integer + description: Mean time from this user being assigned to an incident until this user acknowledges the incident. + responder_id: + type: string + description: ID of the responder. + responder_name: + type: string + description: Name of the responder. + service_id: + type: string + description: ID of the service that the incident triggered on. + service_name: + type: string + description: Name of the service that the incident triggered on. + service_team_id: + type: string + nullable: true + description: ID of the team that owns the related service. + service_team_name: + type: string + nullable: true + description: Name of the team that owns the related service. + total_acknowledgements: + type: integer + description: Total acknowledgements from the responder on the incident. + total_business_hour_interruptions: + type: integer + description: Total number of unique interruptions during business hours; 8am-6pm Mon-Fri, based on the user’s time zone. + total_engaged_seconds: + type: integer + description: |- + Total engaged time across all responders for incidents. Engaged time is measured from + the time a user engages with an incident (by acknowledging or accepting a responder request) + until the incident is resolved. This may include periods in which the incidents were snoozed. + total_interruptions: + type: integer + description: Total number of unique interruptions for the responder during the incident. + total_manual_escalations_from: + type: integer + description: Total times the responder was manually escalated away from the incident. + total_manual_escalations_to: + type: integer + description: Total times the responder was manually escalated to the incident. + total_off_hour_interruptions: + type: string + description: Total number of unique interruptions during off hours; 6pm-10pm Mon-Fri and all day Sat-Sun, based on the user’s time zone. + total_reassignments_from: + type: integer + description: Total times the responder was reassigned away from the incident. + total_reassignments_to: + type: integer + description: Total times the responder was reassigned to the incident. + total_sleep_hour_interruptions: + type: integer + description: Total number of unique interruptions during sleep hours; 10pm-8am every day, based on the user’s time zone. + total_timeout_escalations_from: + type: integer + description: Total times the responder was escalated away from the incident due to timeout. + total_timeout_escalations_to: + type: integer + description: Total times the responder was escalated to the incident due to timeout. + AnalyticsRawUser: + title: Analytics Raw User + type: object + properties: + id: + type: string + description: Obfuscated ID of the user. + user_name: + type: string + description: Name of the user. + email: + type: string + description: Email of the user. + account_id: + type: integer + description: Account ID the user belongs to. + description: + type: string + nullable: true + description: User description, if available. + time_zone: + type: string + nullable: true + description: User's configured time zone. + role: + type: string + description: User's role in the account. + team_id: + type: string + nullable: true + description: ID of the team the user belongs to, if any. + team_name: + type: string + nullable: true + description: Name of the team the user belongs to, if any. + created_at: + type: string + format: date-time + description: Timestamp indicating when the user was created. + last_sign_in_at: + type: string + format: date-time + nullable: true + description: Timestamp of the user's last sign-in, if available. + default_notification_channel_count: + type: integer + description: Number of notification channels configured for this user. + escalation_policies_count: + type: integer + description: Number of escalation policies this user is part of. + schedules_count: + type: integer + description: Number of schedules this user is part of. + channel_types_configured: + type: array + items: + type: string + description: List of notification channel types configured for this user. + team_count: + type: integer + description: Number of teams this user belongs to. + downloaded_mobile_app: + type: boolean + description: Whether the user has downloaded the mobile app. + notification_methods: + type: boolean + description: Whether the user has notification methods configured. + on_escalation_policy: + type: boolean + description: Whether the user is part of any escalation policy. + on_schedule: + type: boolean + description: Whether the user is part of any schedule. + signed_up: + type: boolean + description: Whether the user has signed up (based on last_sign_in_at not being null). + AnalyticsUserFilterConditions: + title: Analytics User Filter Conditions + type: object + properties: + created_at_start: + type: string + format: date-time + description: The start of the date range to search + created_at_end: + type: string + format: date-time + description: The end of the date range to search + team_ids: + type: array + items: + type: string + description: An array of team IDs. Only users belonging to these teams will be included in results. + user_ids: + type: array + items: + type: string + description: An array of user IDs. Only these users will be included in results. + role_ids: + type: array + items: + type: string + description: An array of role IDs. Only users with these roles will be included in results. + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + responder_id: + name: responder_id + description: The ID of the responder. + in: path + required: true + schema: + type: string + x-stackQL-resources: + incident_metrics: + id: pagerduty.analytics.incident_metrics + name: incident_metrics + title: Incident Metrics + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1all/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + incident_metrics_by_escalation_policy: + id: pagerduty.analytics.incident_metrics_by_escalation_policy + name: incident_metrics_by_escalation_policy + title: Incident Metrics By Escalation Policy + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1escalation_policies/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics_by_escalation_policy/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + incident_metrics_all_escalation_policies: + id: pagerduty.analytics.incident_metrics_all_escalation_policies + name: incident_metrics_all_escalation_policies + title: Incident Metrics All Escalation Policies + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1escalation_policies~1all/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics_all_escalation_policies/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + incident_metrics_by_service: + id: pagerduty.analytics.incident_metrics_by_service + name: incident_metrics_by_service + title: Incident Metrics By Service + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1services/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics_by_service/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + incident_metrics_all_services: + id: pagerduty.analytics.incident_metrics_all_services + name: incident_metrics_all_services + title: Incident Metrics All Services + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1services~1all/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics_all_services/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + incident_metrics_by_team: + id: pagerduty.analytics.incident_metrics_by_team + name: incident_metrics_by_team + title: Incident Metrics By Team + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics_by_team/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + incident_metrics_all_teams: + id: pagerduty.analytics.incident_metrics_all_teams + name: incident_metrics_all_teams + title: Incident Metrics All Teams + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1incidents~1teams~1all/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_metrics_all_teams/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + pd_advance_usage_metrics: + id: pagerduty.analytics.pd_advance_usage_metrics + name: pd_advance_usage_metrics + title: Pd Advance Usage Metrics + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1pd_advance_usage~1features/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/pd_advance_usage_metrics/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + responder_metrics: + id: pagerduty.analytics.responder_metrics + name: responder_metrics + title: Responder Metrics + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1responders~1all/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/responder_metrics/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + responder_metrics_by_team: + id: pagerduty.analytics.responder_metrics_by_team + name: responder_metrics_by_team + title: Responder Metrics By Team + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1responders~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/responder_metrics_by_team/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + user_metrics: + id: pagerduty.analytics.user_metrics + name: user_metrics + title: User Metrics + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1metrics~1users~1all/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/user_metrics/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + raw_incidents: + id: pagerduty.analytics.raw_incidents + name: raw_incidents + title: Raw Incidents + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1raw~1incidents/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + get: + operation: + $ref: '#/paths/~1analytics~1raw~1incidents~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/raw_incidents/methods/get' + - $ref: '#/components/x-stackQL-resources/raw_incidents/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + raw_incident_responses: + id: pagerduty.analytics.raw_incident_responses + name: raw_incident_responses + title: Raw Incident Responses + methods: + list: + operation: + $ref: '#/paths/~1analytics~1raw~1incidents~1{id}~1responses/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.responses + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/raw_incident_responses/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + raw_responder_incidents: + id: pagerduty.analytics.raw_responder_incidents + name: raw_responder_incidents + title: Raw Responder Incidents + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1raw~1responders~1{responder_id}~1incidents/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/raw_responder_incidents/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + raw_users: + id: pagerduty.analytics.raw_users + name: raw_users + title: Raw Users + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1analytics~1raw~1users/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/raw_users/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/audit.yaml b/providers/src/pagerduty/v00.00.00000/services/audit.yaml index 6fa02342..ebdbefb1 100644 --- a/providers/src/pagerduty/v00.00.00000/services/audit.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/audit.yaml @@ -1,139 +1,94 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Audit + description: Account-wide audit records. version: 2.0.0 - title: PagerDuty API - audit - description: | - Provides audit record data. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /audit/records: + get: + x-pd-requires-scope: audit_records.read + summary: List audit records + tags: + - Audit + operationId: listAuditRecords + description: | + List audit trail records matching provided query params or default criteria. + + The returned records are sorted by the `execution_time` from newest to oldest. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + + Only admins, account owners, or global API tokens on PagerDuty account [pricing plans](https://www.pagerduty.com/pricing) with the "Audit Trail" feature can access this endpoint. + + For other role based access to audit records by resource ID, see the resource's API documentation. + + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + - $ref: '#/components/parameters/audit_root_resource_types' + - $ref: '#/components/parameters/audit_actor_type' + - $ref: '#/components/parameters/audit_actor_id' + - $ref: '#/components/parameters/audit_method_type' + - $ref: '#/components/parameters/audit_method_truncated_token' + - $ref: '#/components/parameters/audit_actions' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records. components: schemas: AuditRecordResponseSchema: - allOf: - - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/AuditRecord' - response_metadata: - nullable: true - anyOf: - - $ref: '#/components/schemas/AuditMetadata' - required: - - records - - $ref: '#/components/schemas/CursorPagination' + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor AuditRecord: type: object readOnly: true @@ -148,7 +103,7 @@ components: execution_time: type: string format: date-time - description: 'The date/time the action executed, in ISO8601 format and millisecond precision.' + description: The date/time the action executed, in ISO8601 format and millisecond precision. execution_context: type: object description: Action execution context @@ -180,7 +135,25 @@ components: nullable: true example: 3xyz type: - $ref: '#/components/parameters/audit_method_type/schema' + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other required: - type root_resource: @@ -302,1862 +275,416 @@ components: required: - limit - next_cursor - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: + type: object + properties: + id: type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: + description: | + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service + type: integer + cursor_cursor: + name: cursor in: query required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. schema: type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state + audit_since: + name: since in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) schema: type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID + format: date-time + audit_until: + name: until in: query - required: true + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. schema: type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. + format: date-time + audit_root_resource_types: + name: root_resource_types[] in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true + description: Resource type filter for the root_resource. schema: type: string enum: - users - teams + - schedules - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' + - ip_allow_lists + example: users + audit_actor_type: + name: actor_type in: query - description: Array of additional Models to include in response. - explode: true + description: Actor type filter. schema: type: string enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by + - user_reference + - api_key_reference + - app_reference + example: user_reference + audit_actor_id: + name: actor_id in: query - description: Used to specify the field you wish to sort the results on. + description: Actor Id filter. Must be qualified by providing the `actor_type` param. schema: type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by + example: P123456 + audit_method_type: + name: method_type in: query - description: Used to specify the field you wish to sort the results on. + description: Method type filter. schema: type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + description: | + Describes the method used to perform the action: + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' + - browser + - oauth + - api_token + - identity_provider + - other + audit_method_truncated_token: + name: method_truncated_token in: query - description: Array of additional details to include. - explode: true + description: Method truncated_token filter. Must be qualified by providing the `method_type` param. schema: type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' + example: 3xyz + audit_actions: + name: actions[] in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true + description: Action filter schema: type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: + description: | + The action executed on the aggregate + enum: + - create + - update + - delete + examples: + AuditRecordResponse: summary: Response Example value: records: - - id: PDRECORDID1_SERVICE_CREATED + - id: PDRECORDID1_TEAM_CREATED execution_time: '2020-06-04T15:30:16.272Z' execution_context: request_id: 111lDEOIH-534-4ljhLHJjh111 @@ -2170,643 +697,162 @@ components: type: api_token truncated_token: 3usr root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 + id: PXASDFE type: team_reference summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update + action: create details: resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' + id: PXASDFE + type: team_reference + summary: my DevOps team fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM + - name: teamName + value: DevOps team + - id: PDRECORDID2_USER_REMOVED_FROM_TEAM execution_time: '2020-06-04T15:30:16.272Z' execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 + request_id: 222lDEOIH-534-4ljhLHJjh222 remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' method: - type: browser + type: api_token + truncated_token: 2adm root_resource: - id: PD_TEAM123 + id: PRY9M8B type: team_reference summary: DevOps action: update details: resource: - id: PD_TEAM123 + id: PRY9M8B type: team_reference summary: DevOps references: - name: members - added: - - id: PD_ADMIN_USER123 + removed: + - id: PRY9M8B type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' + summary: John Doe + - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED + execution_time: '2020-06-04T15:30:16.272Z' execution_context: request_id: 222lDEOIH-534-4ljhLHJjh222 remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' method: - type: browser + type: api_token + truncated_token: 2adm root_resource: - id: PD_TEAM123 + id: PRY9M8B type: team_reference summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules resource: - id: PD_USER_999 - summary: Test User + id: PDUSER type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference + - name: team_role + before_value: observer + value: manager + - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED + execution_time: '2020-06-04T15:30:16.272Z' execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update + request_id: 222lDEOIH-534-4ljhLHJjh222 + remote_address: 201.19.20.19 actors: - id: PDUSER summary: John Snow type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' method: - type: browser + type: identity_provider root_resource: - id: PD_USER_999 - summary: Test User + id: PDUSER type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT + summary: John Snow action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules resource: - id: PD_USER_999 - summary: Test User + id: PDUSER type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference + - name: name + before_value: Bob Doe + value: Jon Snow + - name: email + before_value: bob.doe@domain.com + value: john.snow@domain.com + - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE + execution_time: '2020-06-04T15:30:16.272Z' execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update + request_id: 222lDEOIH-534-4ljhLHJjh222 + remote_address: 201.19.20.19 actors: - id: PDUSER summary: John Snow type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' method: - type: browser + type: api_token + truncated_token: 2adm root_resource: - id: PD_USER_999 - summary: Test User + id: PDUSER type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' + summary: John Snow + action: update details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 + id: PXOGWUS + type: assignment_notification_rule_reference + summary: '0 minutes: channel P1IAAPZ' + fields: + - name: start_delay_in_minutes + before_value: '0' + value: '2' + references: + - name: contact_method + removed: + - id: POE6L88 + type: push_notification_contact_method_reference + summary: Pixel 3 + added: + - id: P4GTUMK + type: sms_contact_method_reference + summary: Mobile next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + limit: 10 x-stackQL-resources: records: id: pagerduty.audit.records name: records title: Records methods: - list_audit_records: + list: operation: $ref: '#/paths/~1audit~1records/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.records - _list_audit_records: - operation: - $ref: '#/paths/~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/records/methods/list_audit_records' + - $ref: '#/components/x-stackQL-resources/records/methods/list' insert: [] update: [] delete: [] -paths: - /audit/records: - get: - x-pd-requires-scope: audit_records.read - summary: List audit records - tags: - - Audit - operationId: listAuditRecords - description: | - List audit trail records matching provided query params or default criteria. - - The returned records are sorted by the `execution_time` from newest to oldest. - - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - - Only admins, account owners, or global API tokens on PagerDuty account [pricing plans](https://www.pagerduty.com/pricing) with the "Audit Trail" feature can access this endpoint. - - For other role based access to audit records by resource ID, see the resource's API documentation. - - For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). - - Scoped OAuth requires: `audit_records.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/audit_since' - - $ref: '#/components/parameters/audit_until' - - $ref: '#/components/parameters/audit_root_resource_types' - - $ref: '#/components/parameters/audit_actor_type' - - $ref: '#/components/parameters/audit_actor_id' - - $ref: '#/components/parameters/audit_method_type' - - $ref: '#/components/parameters/audit_method_truncated_token' - - $ref: '#/components/parameters/audit_actions' - responses: - '200': - description: Records matching the query criteria. - content: - application/json: - schema: - $ref: '#/components/schemas/AuditRecordResponseSchema' - examples: - response: - $ref: '#/components/examples/AuditRecordResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/automation_actions.yaml b/providers/src/pagerduty/v00.00.00000/services/automation_actions.yaml index d6b095ec..0e2ddfa3 100644 --- a/providers/src/pagerduty/v00.00.00000/services/automation_actions.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/automation_actions.yaml @@ -1,3549 +1,1485 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Automation Actions + description: 'Automation Actions: actions, runners, invocations and their service and team associations.' version: 2.0.0 - title: PagerDuty API - automation_actions - description: Automation_Actions -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - AutomationActionsScriptActionPostBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsAbstractActionPostBody' - - type: object - properties: - action_data_reference: - $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' - required: - - action_data_reference - AutomationActionsProcessAutomationJobActionPostBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsAbstractActionPostBody' - - type: object - properties: - action_data_reference: - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' - required: - - action_data_reference - AutomationActionsScriptActionWithTeams: - allOf: - - $ref: '#/components/schemas/AutomationActionsScriptAction' - - type: object - properties: - teams: - type: array - items: - $ref: '#/components/schemas/TeamReference' - AutomationActionsProcessAutomationJobActionWithTeams: - allOf: - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobAction' - - type: object - properties: - teams: - type: array - items: - $ref: '#/components/schemas/TeamReference' - AutomationActionsAbstractActionPostBody: - type: object - properties: - name: - type: string - example: Restart apache - maxLength: 255 - description: - type: string - example: Restarts apache on the us-west-2-shopping-cart host - maxLength: 1024 - action_classification: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - action_type: - $ref: '#/components/parameters/automation_actions_action_type/schema' - runner: - type: string - example: 1a6763bd-b1ad-458f-a347-6c8a9bea2d70 - maxLength: 36 - services: - nullable: false - type: array - items: - $ref: '#/components/schemas/ServiceReference' - teams: - nullable: false - type: array - items: - $ref: '#/components/schemas/TeamReference' - required: - - name - - description - - action_type - AutomationActionsScriptActionDataReference: - type: object - properties: - script: - type: string - description: 'Body of the script to be executed on the Runner. To execute it, the Runner will write the content of the property into a temp file, make the file executable and execute it. It is assumed that the Runner has a properly configured environment to run the script as an executable file. This behaviour can be altered by providing the `invocation_command` property. The maxLength value is specified in bytes.' - example: print("Hello from a Python script!") - maxLength: 16777215 - invocation_command: - type: string - description: 'The command to executed a script with. With the body of the script written into a temp file, the Runner will execute the ` ` command. The maxLength value is specified in bytes.' - example: /usr/local/bin/python3 - maxLength: 65535 - required: - - script - AutomationActionsProcessAutomationJobActionDataReference: - type: object - properties: - process_automation_job_id: - type: string - example: 79c199bba1aff6e519f198457f5ec0fc - maxLength: 36 - process_automation_job_arguments: - type: string - description: Arguments to pass to the Process Automation job. The maxLength value is specified in bytes. - example: '-env production' - maxLength: 1024 - process_automation_node_filter: - type: string - description: 'Node filter for the Process Automation job. The maxLength value is specified in bytes. Filter syntax: https://docs.rundeck.com/docs/manual/11-node-filters.html#node-filter-syntax' - example: 'mynode1 !nodename: mynode2' - maxLength: 1024 - required: - - process_automation_job_id - AutomationActionsScriptAction: - allOf: - - $ref: '#/components/schemas/AutomationActionsAbstractAction' - - type: object - properties: - action_data_reference: - $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' - required: - - action_data_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - AutomationActionsProcessAutomationJobAction: - allOf: - - $ref: '#/components/schemas/AutomationActionsAbstractAction' - - type: object - properties: - action_data_reference: - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' - required: - - action_data_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - AutomationActionsAbstractAction: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - description: 'A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message.' - properties: - name: - type: string - example: Restart apache - description: - type: string - example: Restarts apache on the us-west-2-shopping-cart host - action_type: - $ref: '#/components/parameters/automation_actions_action_type/schema' - action_classification: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - runner: - type: string - maxLength: 36 - runner_type: - $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' - services: - type: array - items: - $ref: '#/components/schemas/ServiceReference' - privileges: - $ref: '#/components/schemas/AutomationActionsUserPermissions' - metadata: +paths: + /automation_actions/actions: + post: + summary: Create an Automation Action + tags: + - Automation Actions + description: | + Create a Script, Process Automation, or Runbook Automation action + operationId: createAutomationAction + parameters: [] + requestBody: + content: + application/json: + schema: type: object - creation_time: - type: string - format: date-time - description: The date/time - modify_time: - type: string - format: date-time - description: The date/time - last_run: - type: string - format: date-time - description: The date/time - last_run_by: - oneOf: - - $ref: '#/components/schemas/UserReference' - - type: object + properties: + action: + discriminator: + propertyName: action_type + mapping: + script: '#/components/schemas/AutomationActionsScriptActionPostBody' + process_automation: '#/components/schemas/AutomationActionsProcessAutomationJobActionPostBody' + type: object properties: - id: + name: type: string - example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 - type: + example: Restart apache + maxLength: 255 + description: type: string - example: event_orchestration_reference + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + example: 1a6763bd-b1ad-458f-a347-6c8a9bea2d70 + maxLength: 36 + services: + nullable: false + type: array + items: + $ref: '#/components/schemas/ServiceReference' + teams: + nullable: false + type: array + items: + $ref: '#/components/schemas/TeamReference' + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' required: - - type - - id - - $ref: '#/components/schemas/Template/allOf/1/properties/created_by/oneOf/1' - required: - - id - - type - - action_type - - name - - creation_time - - modify_time - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - AutomationActionsRunnerTypeEnum: - description: | - sidecar -- The runner is backed by an external sidecar that polls for invocations. - runbook -- The runner communicates directly with a runbook instance. - type: string - enum: - - sidecar - - runbook - example: runbook - AutomationActionsUserPermissions: - type: object - properties: - permissions: - nullable: false - type: array - items: - type: string - enum: - - create - - update - - delete - - invoke - example: - - update - - delete - required: - - permissions - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - Template: - allOf: - - $ref: '#/components/schemas/EditableTemplate' - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - type: - type: string - enum: - - template - created_by: - description: User/Account object reference of the creator - oneOf: - - $ref: '#/components/schemas/UserReference' - - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - account_reference - updated_by: - description: User/Account object reference of the updator - oneOf: - - $ref: '#/components/schemas/UserReference' - - $ref: '#/components/schemas/Template/allOf/1/properties/created_by/oneOf/1' - EditableTemplate: - type: object - properties: - template_type: - type: string - description: The type of template (`status_update` is the only supported template at this time) - enum: - - status_update - name: - type: string - description: The name of the template - description: - type: string - nullable: true - description: Description of the template - templated_fields: - type: object - properties: - email_subject: - type: string - nullable: true - description: The subject of the e-mail - email_body: - type: string - nullable: true - description: The HTML body of the e-mail message - message: - type: string - nullable: true - description: |- - The short-message of the template (SMS, Push notification, Slack, - etc) - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - AutomationActionsScriptActionPutBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsAbstractActionPutBody' - - type: object - properties: - action_data_reference: - $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' - required: - - action_data_reference - AutomationActionsProcessAutomationJobActionPutBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsAbstractActionPutBody' - - type: object - properties: - action_data_reference: - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' - required: - - action_data_reference - AutomationActionsAbstractActionPutBody: - type: object - properties: - name: - type: string - example: Restart apache - maxLength: 255 - description: - type: string - example: Restarts apache on the us-west-2-shopping-cart host - maxLength: 1024 - action_classification: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - action_type: - $ref: '#/components/parameters/automation_actions_action_type/schema' - runner: - type: string - maxLength: 36 - required: - - name - - description - - action_type - AutomationActionsInvocation: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - action_snapshot: - allOf: - - type: object - properties: - name: - type: string - example: Restart apache - action_type: - $ref: '#/components/parameters/automation_actions_action_type/schema' - required: - - action_type - name - - type: object - properties: + - description + - action_type + - action_data_reference + required: + - action + examples: + request: + value: + action: + name: Restart apache + description: Restarts apache on the us-west-2-shopping-cart host + action_type: script action_data_reference: - oneOf: - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' - - $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' - runner_id: - type: string - timing: - description: A list of state transitions with timestamps. Only the 'created' transition is guaranteed to exist at any time. - type: array - items: + script: java --version + teams: + - id: PQ9K7I8 + type: team_reference + services: + - id: PRDRWUJ + type: service_reference + required: true + responses: + '201': + description: Action information + content: + application/json: + schema: type: object properties: - timestamp: - type: string - format: date-time - description: The date/time - state: - $ref: '#/components/parameters/automation_actions_invocation_state/schema' - required: - - timestamp - - state - duration: - description: The duration of the invocation's execution time. - example: 23 - type: integer - state: - $ref: '#/components/parameters/automation_actions_invocation_state/schema' - action_id: - type: string - metadata: - type: object - properties: - agent: - oneOf: - - $ref: '#/components/schemas/UserReference' - - $ref: '#/components/schemas/AutomationActionsAbstractAction/allOf/1/properties/last_run_by/oneOf/1' - - $ref: '#/components/schemas/Template/allOf/1/properties/created_by/oneOf/1' - incident: - $ref: '#/components/schemas/IncidentReference' - required: - - agent - required: - - id - - type - - action_snapshot - - runner_id - - timing - - state - - action_id - - metadata - IncidentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - incident_reference - AutomationActionsRunnerSidecarPostBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsRunnerSidecarBody' - - type: object - properties: - runner_type: - $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' - teams: - type: array - description: The list of teams associated with the Runner - items: - $ref: '#/components/schemas/TeamReference' - required: - - runner_type - AutomationActionsRunnerRunbookPostBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsRunnerRunbookBody' - - type: object - properties: - runner_type: - $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' - teams: - type: array - description: The list of teams associated with the Runner - items: - $ref: '#/components/schemas/TeamReference' - required: - - runner_type - - runbook_base_uri - - runbook_api_key - AutomationActionsRunner: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - description: 'A remote entity capable of executing work specified by an action. At maximum, an account can have 1000 runners. If runner maximum is exceeded, a 400 response is returned with error message.' - properties: - runner_type: - $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' - name: - type: string - example: us-west-2 prod runner - description: - type: string - example: us-west-2 runner provisioned in the production environment by the SRE team - last_seen: - type: string - format: date-time - status: - $ref: '#/components/schemas/AutomationActionsRunnerStatusEnum' - creation_time: - type: string - format: date-time - runbook_base_uri: - $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' - teams: - type: array - readOnly: true - description: The list of teams associated with the Runner - items: - $ref: '#/components/schemas/TeamReference' - privileges: - $ref: '#/components/schemas/AutomationActionsUserPermissions' - associated_actions: - description: References to at most 3 actions associated with the Runner. Use appropriate endpoints to retrieve the full list of associated actions. - allOf: - - type: object - properties: - actions: - nullable: false - type: array - items: - allOf: - - $ref: '#/components/schemas/Reference' + action: + discriminator: + propertyName: action_type + mapping: + script: '#/components/schemas/AutomationActionsScriptActionWithTeams' + process_automation: '#/components/schemas/AutomationActionsProcessAutomationJobActionWithTeams' + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' - type: object properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 type: type: string - enum: - - action_reference - required: - - actions - - type: object - required: - - more - properties: - more: - type: boolean - description: Indicates whether more actions exist for the Runner. - metadata: - type: object - description: Additional metadata - required: - - id - - type - - name - - runner_type - - status - - creation_time - AutomationActionsRunnerSidecarBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsRunnerBody' - AutomationActionsRunnerRunbookBody: - allOf: - - $ref: '#/components/schemas/AutomationActionsRunnerBody' - - type: object - properties: - runbook_base_uri: - type: string - description: 'The base URI of the Runbook server to connect to. May only contain alphanumeric characters, periods, underscores and dashes. If omitted, the previously stored value will remain unchanged.' - maxLength: 255 - example: subdomain - runbook_api_key: - type: string - maxLength: 64 - description: 'The API key to connect to the Runbook server with. If omitted, the previously stored value will remain unchanged.' - AutomationActionsRunnerStatusEnum: + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + required: + - action + examples: + response: + summary: Response Example + value: + action: + action_data_reference: + script: java --version + action_type: script + type: action + creation_time: '2022-11-08T14:54:02.267989Z' + description: Restarts apache on the us-west-2-shopping-cart host + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + modify_time: '2022-11-08T14:54:02.267989Z' + name: Restart apache + only_invocable_on_unresolved_incidents: false + allow_invocation_manually: true + allow_invocation_from_event_orchestration: true + map_to_all_services: false + privileges: + permissions: + - read + - update + - delete + - invoke + services: + - id: PRDRWUJ + type: service_reference + teams: + - id: PQ9K7I8 + type: team_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + get: + summary: List Automation Actions + tags: + - Automation Actions + operationId: getAllAutomationActions description: | - Configured -- Runner has connected to the backend at least once - NotConfigured -- Runner has never connected to backend - type: string - enum: - - Configured - - NotConfigured - example: Configured - AutomationActionsRunbookBaseURI: - type: string - description: 'The base URI of the Runbook server to connect to. May only contain alphanumeric characters, periods, underscores and dashes.' - maxLength: 255 - example: subdomain - AutomationActionsRunnerBody: - type: object - properties: - name: - type: string - maxLength: 255 - example: us-west-2 prod runner - description: - type: string - maxLength: 1024 - example: us-west-2 runner provisioned in the production environment by the SRE team - required: - - name - - description - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Lists Automation Actions matching provided query params. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + The returned records are sorted by action name in alphabetical order. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + parameters: + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/automation_actions_name' + - $ref: '#/components/parameters/automation_actions_runner_id' + - $ref: '#/components/parameters/automation_actions_classification' + - $ref: '#/components/parameters/automation_actions_team_id' + - $ref: '#/components/parameters/automation_actions_service_id' + - $ref: '#/components/parameters/automation_actions_action_type' + responses: + '200': + description: An array of actions + content: + application/json: + schema: + type: object + properties: + actions: + type: array + items: + oneOf: + - $ref: '#/components/schemas/AutomationActionsScriptAction' + - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobAction' + discriminator: + propertyName: action_type + mapping: + script: '#/components/schemas/AutomationActionsScriptAction' + process_automation: '#/components/schemas/AutomationActionsProcessAutomationJobAction' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - actions + - limit + - next_cursor + examples: + response: + summary: Response Example + value: + actions: + - action_data_reference: + script: java --version + action_type: script + type: action + creation_time: '2022-11-08T14:54:02.267989Z' + description: Restarts apache on the us-west-2-shopping-cart host + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + modify_time: '2022-11-08T14:54:02.267989Z' + name: Restart apache + only_invocable_on_unresolved_incidents: false + map_to_all_services: false + allow_invocation_manually: true + allow_invocation_from_event_orchestration: true + privileges: + permissions: + - read + - update + - delete + - invoke + services: + - id: PRDRWUJ + type: service_reference + - action_data_reference: + script: java --version + action_type: script + type: action + creation_time: '2022-11-08T14:54:02.267989Z' + description: Restarts apache on the us-west-2-shopping-cart host + id: 01DACKMP6Q3Y5YG51ENA26CX2I + modify_time: '2022-11-08T14:54:02.267989Z' + name: Restart apache + only_invocable_on_unresolved_incidents: false + map_to_all_services: false + allow_invocation_manually: true + allow_invocation_from_event_orchestration: true + privileges: + permissions: + - read + - update + limit: 2 + next_cursor: null + privileges: + permissions: + - read + - update + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and create Automation Actions + /automation_actions/actions/{id}: + get: + summary: Get an Automation Action + tags: + - Automation Actions + operationId: getAutomationAction description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id + Get an Automation Action + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Action information + content: + application/json: + schema: + type: object + properties: + action: + discriminator: + propertyName: action_type + mapping: + script: '#/components/schemas/AutomationActionsScriptActionWithTeams' + process_automation: '#/components/schemas/AutomationActionsProcessAutomationJobActionWithTeams' + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + required: + - action + examples: + response: + value: + action: + action_data_reference: + script: java --version + action_type: script + type: action + creation_time: '2022-11-08T14:54:02.267989Z' + description: Restarts apache on the us-west-2-shopping-cart host + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + modify_time: '2022-11-08T14:54:02.267989Z' + name: Restart apache + only_invocable_on_unresolved_incidents: false + allow_invocation_manually: true + allow_invocation_from_event_orchestration: true + map_to_all_services: false + privileges: + permissions: + - read + - update + - delete + - invoke + services: + - id: PRDRWUJ + type: service_reference + teams: + - id: PQ9K7I8 + type: team_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + summary: Delete an Automation Action + tags: + - Automation Actions + operationId: deleteAutomationAction description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header + Delete an Automation Action + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: Deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + summary: Update an Automation Action + tags: + - Automation Actions + operationId: updateAutomationAction description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header + Updates an Automation Action + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + action: + discriminator: + propertyName: action_type + mapping: + script: '#/components/schemas/AutomationActionsScriptActionPutBody' + process_automation: '#/components/schemas/AutomationActionsProcessAutomationJobActionPutBody' + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + maxLength: 36 + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + required: + - action + required: true + responses: + '200': + description: Action information + content: + application/json: + schema: + type: object + properties: + action: + discriminator: + propertyName: action_type + mapping: + script: '#/components/schemas/AutomationActionsScriptActionWithTeams' + process_automation: '#/components/schemas/AutomationActionsProcessAutomationJobActionWithTeams' + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + required: + - action + examples: + response: + value: + action: + action_data_reference: + script: java --version + action_type: script + type: action + creation_time: '2022-11-08T14:54:02.267989Z' + description: Restarts apache on the us-west-2-shopping-cart host + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + modify_time: '2022-11-08T14:54:02.267989Z' + name: Restart apache + only_invocable_on_unresolved_incidents: false + allow_invocation_manually: true + allow_invocation_from_event_orchestration: true + map_to_all_services: false + privileges: + permissions: + - read + - update + - delete + - invoke + services: + - id: PRDRWUJ + type: service_reference + teams: + - id: PQ9K7I8 + type: team_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: View, Update and Delete Automation Actions + /automation_actions/actions/{id}/invocations: + post: + summary: Create an Invocation + tags: + - Automation Actions description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Invokes an Action + operationId: createAutomationActionInvocation + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + invocation: + type: object + properties: + metadata: + type: object + properties: + incident_id: + type: string + alert_id: + type: string + required: + - incident_id + required: + - metadata + required: + - invocation + examples: + request: + value: + invocation: + metadata: + incident_id: Q2LAR4ADCXC8IB + required: true + responses: + '201': + description: Created invocation + content: + application/json: + schema: + type: object + properties: + invocation: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + action_snapshot: + type: object + properties: + name: + type: string + example: Restart apache + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_data_reference: + oneOf: + - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' + - $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + required: + - action_type + - name + runner_id: + type: string + timing: + description: A list of state transitions with timestamps, sorted in ascending order by timestamp. Only the 'created' transition is guaranteed to exist at any time. + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The date/time + state: + type: string + description: prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner unknown -- transient error encountered when fetching invocation state + enum: + - prepared + - created + - sent + - queued + - running + - aborted + - completed + - error + - unknown + example: sent + required: + - timestamp + - state + duration: + description: The duration of the invocation's execution time. + example: 23 + type: integer + state: + type: string + description: prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner unknown -- transient error encountered when fetching invocation state + enum: + - prepared + - created + - sent + - queued + - running + - aborted + - completed + - error + - unknown + example: sent + action_id: + type: string + metadata: + type: object + properties: + agent: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + - type: object + properties: + id: + type: string + example: PT4KHRS + type: + type: string + example: incident_workflow_reference + required: + - type + - id + incident: + $ref: '#/components/schemas/IncidentReference' + required: + - agent + required: + - id + - type + - action_snapshot + - runner_id + - timing + - state + - action_id + - metadata + description: (opaque JSON object) + required: + - invocation + examples: + response: + summary: Response Example + value: + invocation: + id: 01DBYD4A25RCXAXQDC9ZX0678V + type: invocation + action_snapshot: + name: Restart apache + action_type: script + action_data_reference: + script: print(\Hello from a Python script!\) + invocation_command: /usr/local/bin/python3 + runner_id: 01COQFFNVWIONSLY8C66YTU2O5 + timing: + - timestamp: '2022-11-08T22:57:14.756Z' + state: sent + duration: 23 + state: sent + action_id: 01DAW70HK24JZORNE0P9C2V1L9 + metadata: + agent: + id: PT4KHLK + type: user_reference + incident: + id: Q2LAR4ADCXC8IB + type: incident_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Create an Invocation + /automation_actions/actions/{id}/services: + get: + summary: Get all service references associated with an Automation Action + tags: + - Automation Actions + operationId: getAutomationActionsActionServiceAssociations + description: Gets all service references associated with an Automation Action + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: An array of service references + content: + application/json: + schema: + type: object + properties: + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + examples: + response: + value: + services: + - id: PQ9K7I8 + type: service_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + summary: Associate an Automation Action with a service + tags: + - Automation Actions + operationId: createAutomationActionServiceAssocation description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - actions: - id: pagerduty.automation_actions.actions - name: actions - title: Actions - methods: - create_automation_action: - operation: - $ref: '#/paths/~1automation_actions~1actions/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_all_automation_actions: - operation: - $ref: '#/paths/~1automation_actions~1actions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.actions - _get_all_automation_actions: - operation: - $ref: '#/paths/~1automation_actions~1actions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_automation_action: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.action - _get_automation_action: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_automation_action: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_automation_action: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - create_automation_action_invocation: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1invocations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/actions/methods/get_automation_action' - - $ref: '#/components/x-stackQL-resources/actions/methods/get_all_automation_actions' - insert: - - $ref: '#/components/x-stackQL-resources/actions/methods/create_automation_action_invocation' - - $ref: '#/components/x-stackQL-resources/actions/methods/create_automation_action' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/actions/methods/delete_automation_action' - actions_services: - id: pagerduty.automation_actions.actions_services - name: actions_services - title: Actions Services - methods: - get_automation_actions_action_service_associations: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.services - _get_automation_actions_action_service_associations: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_automation_action_service_assocation: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1services/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_automation_actions_action_service_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1services~1{service_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.service - _get_automation_actions_action_service_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1services~1{service_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_automation_action_service_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1services~1{service_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/actions_services/methods/get_automation_actions_action_service_association' - - $ref: '#/components/x-stackQL-resources/actions_services/methods/get_automation_actions_action_service_associations' - insert: - - $ref: '#/components/x-stackQL-resources/actions_services/methods/create_automation_action_service_assocation' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/actions_services/methods/delete_automation_action_service_association' - actions_teams: - id: pagerduty.automation_actions.actions_teams - name: actions_teams - title: Actions Teams - methods: - create_automation_action_team_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_automation_actions_action_team_associations: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.teams - _get_automation_actions_action_team_associations: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_automation_action_team_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams~1{team_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - get_automation_actions_action_team_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams~1{team_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.team - _get_automation_actions_action_team_association: - operation: - $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams~1{team_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/actions_teams/methods/get_automation_actions_action_team_association' - - $ref: '#/components/x-stackQL-resources/actions_teams/methods/get_automation_actions_action_team_associations' - insert: - - $ref: '#/components/x-stackQL-resources/actions_teams/methods/create_automation_action_team_association' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/actions_teams/methods/delete_automation_action_team_association' - invocations: - id: pagerduty.automation_actions.invocations - name: invocations - title: Invocations - methods: - list_automation_action_invocations: - operation: - $ref: '#/paths/~1automation_actions~1invocations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.invocations - _list_automation_action_invocations: - operation: - $ref: '#/paths/~1automation_actions~1invocations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_automation_actions_invocation: - operation: - $ref: '#/paths/~1automation_actions~1invocations~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.invocation - _get_automation_actions_invocation: - operation: - $ref: '#/paths/~1automation_actions~1invocations~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/invocations/methods/get_automation_actions_invocation' - - $ref: '#/components/x-stackQL-resources/invocations/methods/list_automation_action_invocations' - insert: [] - update: [] - delete: [] - runners: - id: pagerduty.automation_actions.runners - name: runners - title: Runners - methods: - create_automation_actions_runner: - operation: - $ref: '#/paths/~1automation_actions~1runners/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_automation_actions_runners: - operation: - $ref: '#/paths/~1automation_actions~1runners/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.runners - _get_automation_actions_runners: - operation: - $ref: '#/paths/~1automation_actions~1runners/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_automation_actions_runner: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.runner - _get_automation_actions_runner: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_automation_actions_runner: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_automation_actions_runner: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/runners/methods/get_automation_actions_runner' - - $ref: '#/components/x-stackQL-resources/runners/methods/get_automation_actions_runners' - insert: - - $ref: '#/components/x-stackQL-resources/runners/methods/create_automation_actions_runner' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/runners/methods/delete_automation_actions_runner' - runners_teams: - id: pagerduty.automation_actions.runners_teams - name: runners_teams - title: Runners Teams - methods: - create_automation_actions_runner_team_association: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_automation_actions_runner_team_associations: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.teams - _get_automation_actions_runner_team_associations: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_automation_actions_runner_team_association: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams~1{team_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - get_automation_actions_runner_team_association: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams~1{team_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.team - _get_automation_actions_runner_team_association: - operation: - $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams~1{team_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/runners_teams/methods/get_automation_actions_runner_team_association' - - $ref: '#/components/x-stackQL-resources/runners_teams/methods/get_automation_actions_runner_team_associations' - insert: - - $ref: '#/components/x-stackQL-resources/runners_teams/methods/create_automation_actions_runner_team_association' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/runners_teams/methods/delete_automation_actions_runner_team_association' -paths: - /automation_actions/actions: + Associate an Automation Action with a service + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/ServiceReference' + required: + - service + examples: + request: + value: + service: + id: PRDRWUJ + type: service_reference + required: true + responses: + '201': + description: The action-service association was created + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/ServiceReference' + required: + - service + examples: + response: + value: + service: + id: PRDRWUJ + type: service_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage Action-Service associations + /automation_actions/actions/{id}/services/{service_id}: + get: + summary: Get the details of an Automation Action / service relation + tags: + - Automation Actions + operationId: getAutomationActionsActionServiceAssociation + description: Gets the details of a Automation Action / service relation + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/service_id' + responses: + '200': + description: Service reference + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/ServiceReference' + examples: + response: + value: + service: + id: PQ9K7I8 + type: service_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + summary: Disassociate an Automation Action from a service + tags: + - Automation Actions + operationId: deleteAutomationActionServiceAssociation + description: | + Disassociate an Automation Action from a service + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/service_id' + responses: + '204': + description: Ok. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage Action-Service associations + /automation_actions/actions/{id}/teams: post: - summary: Create an Automation Action + summary: Associate an Automation Action with a team tags: - Automation Actions + operationId: createAutomationActionTeamAssociation description: | - Create a Script, Process Automation, or Runbook Automation action - operationId: createAutomationAction + Associate an Automation Action with a team parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: type: object properties: - action: - oneOf: - - $ref: '#/components/schemas/AutomationActionsScriptActionPostBody' - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionPostBody' - discriminator: - propertyName: action_type - mapping: - script: models/automationActions/ScriptActionPostBody.yaml - process_automation: models/automationActions/ProcessAutomationJobActionPostBody.yaml + team: + $ref: '#/components/schemas/TeamReference' required: - - action + - team examples: request: value: - action: - name: Restart apache - description: Restarts apache on the us-west-2-shopping-cart host - action_type: script - action_data_reference: - script: java --version - teams: - - id: PQ9K7I8 - type: team_reference - services: - - id: PRDRWUJ - type: service_reference + team: + id: PQ9K7I8 + type: team_reference required: true responses: '201': - description: Action information + description: The action-team association was created content: application/json: schema: type: object properties: - action: - oneOf: - - $ref: '#/components/schemas/AutomationActionsScriptActionWithTeams' - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionWithTeams' - discriminator: - propertyName: action_type - mapping: - script: models/automationActions/ScriptActionWithTeams.yaml - process_automation: models/automationActions/ProcessAutomationJobActionWithTeams.yaml + team: + $ref: '#/components/schemas/TeamReference' required: - - action + - team examples: response: - summary: Response Example value: - action: - action_data_reference: - script: java --version - action_type: script - type: action - creation_time: '2022-11-08T14:54:02.267989Z' - description: Restarts apache on the us-west-2-shopping-cart host - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - modify_time: '2022-11-08T14:54:02.267989Z' - name: Restart apache - privileges: - permissions: - - read - - update - - delete - - invoke - services: - - id: PRDRWUJ - type: service_reference - teams: - - id: PQ9K7I8 - type: team_reference + team: + id: PQ9K7I8 + type: team_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + get: + summary: Get all team references associated with an Automation Action + tags: + - Automation Actions + operationId: getAutomationActionsActionTeamAssociations + description: Gets all team references associated with an Automation Action + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + examples: + response: + value: + teams: + - id: PQ9K7I8 + type: team_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage Action-Team associations + /automation_actions/actions/{id}/teams/{team_id}: + delete: + summary: Disassociate an Automation Action from a team + tags: + - Automation Actions + operationId: deleteAutomationActionTeamAssociation + description: | + Disassociate an Automation Action from a team + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/team_id' + responses: + '204': + description: Ok. '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3559,96 +1495,30 @@ paths: '500': $ref: '#/components/responses/InternalServerError' get: - summary: List Automation Actions + summary: Get the details of an Automation Action / team relation tags: - Automation Actions - operationId: getAllAutomationActions - description: | - Lists Automation Actions matching provided query params. - - The returned records are sorted by action name in alphabetical order. - - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + operationId: getAutomationActionsActionTeamAssociation + description: Gets the details of an Automation Action / team relation parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/automation_actions_name' - - $ref: '#/components/parameters/automation_actions_runner_id' - - $ref: '#/components/parameters/automation_actions_classification' - - $ref: '#/components/parameters/automation_actions_team_id' - - $ref: '#/components/parameters/automation_actions_service_id' - - $ref: '#/components/parameters/automation_actions_action_type' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/team_id' responses: '200': - description: An array of actions + description: OK content: application/json: schema: - allOf: - - type: object - properties: - actions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/AutomationActionsScriptAction' - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobAction' - discriminator: - propertyName: action_type - mapping: - script: models/automationActions/ScriptAction.yaml - process_automation: models/automationActions/ProcessAutomationJobAction.yaml - required: - - actions - - type: object - properties: - privileges: - $ref: '#/components/schemas/AutomationActionsUserPermissions' - - $ref: '#/components/schemas/CursorPagination' + type: object + properties: + team: + $ref: '#/components/schemas/TeamReference' examples: response: - summary: Response Example value: - actions: - - action_data_reference: - script: java --version - action_type: script - type: action - creation_time: '2022-11-08T14:54:02.267989Z' - description: Restarts apache on the us-west-2-shopping-cart host - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - modify_time: '2022-11-08T14:54:02.267989Z' - name: Restart apache - privileges: - permissions: - - read - - update - - delete - - invoke - services: - - id: PRDRWUJ - type: service_reference - - action_data_reference: - script: java --version - action_type: script - type: action - creation_time: '2022-11-08T14:54:02.267989Z' - description: Restarts apache on the us-west-2-shopping-cart host - id: 01DACKMP6Q3Y5YG51ENA26CX2I - modify_time: '2022-11-08T14:54:02.267989Z' - name: Restart apache - privileges: - permissions: - - read - - update - limit: 2 - next_cursor: null - privileges: - permissions: - - read - - update + team: + id: PQ9K7I8 + type: team_reference '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3663,90 +1533,69 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - '/automation_actions/actions/{id}': + description: Manage Action-Team associations + /automation_actions/invocations: get: - summary: Get an Automation Action + summary: List Invocations tags: - Automation Actions - operationId: getAutomationAction description: | - Get an Automation Action + List Invocations + operationId: listAutomationActionInvocations parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/automation_actions_invocation_state' + - $ref: '#/components/parameters/automation_actions_not_invocation_state' + - $ref: '#/components/parameters/automation_actions_incident_id' + - $ref: '#/components/parameters/automation_actions_action_id' responses: '200': - description: Action information + description: Invocations matching the criteria content: application/json: schema: type: object properties: - action: - oneOf: - - $ref: '#/components/schemas/AutomationActionsScriptActionWithTeams' - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionWithTeams' - discriminator: - propertyName: action_type - mapping: - script: models/automationActions/ScriptActionWithTeams.yaml - process_automation: models/automationActions/ProcessAutomationJobActionWithTeams.yaml + invocations: + type: array + description: List of invocations sorted by creation_time in reverse chronological order (newest invocations first). At most 25 invocations are returned. + items: + $ref: '#/components/schemas/AutomationActionsInvocation' required: - - action + - invocations examples: response: + summary: Response Example value: - action: - action_data_reference: - script: java --version - action_type: script - type: action - creation_time: '2022-11-08T14:54:02.267989Z' - description: Restarts apache on the us-west-2-shopping-cart host - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - modify_time: '2022-11-08T14:54:02.267989Z' - name: Restart apache - privileges: - permissions: - - read - - update - - delete - - invoke - services: - - id: PRDRWUJ - type: service_reference - teams: - - id: PQ9K7I8 - type: team_reference - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - summary: Delete an Automation Action - tags: - - Automation Actions - operationId: deleteAutomationAction - description: | - Delete an Automation Action - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: Deleted successfully. + invocations: + - id: 01DBYD4A25RCXAXQDC9ZX0678V + type: invocation + action_id: 01DAW70HK24JZORNE0P9C2V1L9 + action_snapshot: + name: Restart Apache + action_type: process_automation + action_data_reference: + process_automation_job_arguments: prod-datapipe + process_automation_node_filter: 'mynode1 !nodename: mynode2' + process_automation_job_id: 79c199bba1aff6e519f198457f5ec0fc + duration: 5 + metadata: + agent: + id: PRJ94S1 + type: user_reference + incident: + id: Q2LAR4ADCXC8IB + type: incident_reference + runner_id: 01COQFFNVWIONSLY8C66YTU2O5 + state: completed + timing: + - creation_timestamp: '2022-11-08T06:30:05.018949Z' + state: created + - creation_timestamp: '2022-11-08T06:30:10.069000Z' + state: running + - creation_timestamp: '2022-11-08T06:30:10.083000Z' + state: completed + - creation_timestamp: '2022-11-08T06:30:10.066000Z' + state: queued '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3755,85 +1604,67 @@ paths: $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - put: - summary: Update an Automation Action + description: List Invocations + /automation_actions/invocations/{id}: + get: + summary: Get an Invocation tags: - Automation Actions - operationId: updateAutomationAction + operationId: getAutomationActionsInvocation description: | - Updates an Automation Action + Get an Automation Action Invocation parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - action: - oneOf: - - $ref: '#/components/schemas/AutomationActionsScriptActionPutBody' - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionPutBody' - discriminator: - propertyName: action_type - mapping: - script: models/automationActions/ScriptActionPutBody.yaml - process_automation: models/automationActions/ProcessAutomationJobActionPutBody.yaml - required: - - action - required: true responses: '200': - description: Action information + description: Invocation information content: application/json: schema: type: object properties: - action: - oneOf: - - $ref: '#/components/schemas/AutomationActionsScriptActionWithTeams' - - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionWithTeams' - discriminator: - propertyName: action_type - mapping: - script: models/automationActions/ScriptActionWithTeams.yaml - process_automation: models/automationActions/ProcessAutomationJobActionWithTeams.yaml + invocation: + $ref: '#/components/schemas/AutomationActionsInvocation' required: - - action + - invocation examples: response: + summary: Response Example value: - action: - action_data_reference: - script: java --version - action_type: script - type: action - creation_time: '2022-11-08T14:54:02.267989Z' - description: Restarts apache on the us-west-2-shopping-cart host - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - modify_time: '2022-11-08T14:54:02.267989Z' - name: Restart apache - privileges: - permissions: - - read - - update - - delete - - invoke - services: - - id: PRDRWUJ - type: service_reference - teams: - - id: PQ9K7I8 - type: team_reference + invocation: + id: 01DBYD4A25RCXAXQDC9ZX0678V + type: invocation + action_id: 01DAW70HK24JZORNE0P9C2V1L9 + action_snapshot: + name: Restart Apache + action_type: process_automation + action_data_reference: + process_automation_job_arguments: prod-datapipe + process_automation_node_filter: 'mynode1 !nodename: mynode2' + process_automation_job_id: 79c199bba1aff6e519f198457f5ec0fc + duration: 5 + metadata: + agent: + id: PRJ94S1 + type: user_reference + incident: + id: Q2LAR4ADCXC8IB + type: incident_reference + runner_id: 01COQFFNVWIONSLY8C66YTU2O5 + state: completed + timing: + - creation_timestamp: '2022-11-08T06:30:05.018949Z' + state: created + - creation_timestamp: '2022-11-08T06:30:10.069000Z' + state: running + - creation_timestamp: '2022-11-08T06:30:10.083000Z' + state: completed + - creation_timestamp: '2022-11-08T06:30:10.066000Z' + state: queued '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3848,85 +1679,210 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - '/automation_actions/actions/{id}/invocations': + description: View an Automation Actions Invocation + /automation_actions/runners: post: - summary: Create an Invocation + summary: Create an Automation Action runner. tags: - Automation Actions description: | - Invokes an Action - operationId: createAutomationActionInvocation - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' + Create a Process Automation or a Runbook Automation runner. + operationId: createAutomationActionsRunner + parameters: [] requestBody: content: application/json: schema: type: object properties: - invocation: + runner: + discriminator: + propertyName: runner_type type: object + title: RunnerSidecarPostBody properties: - metadata: - type: object - properties: - incident_id: - type: string - required: - - incident_id + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + name: + type: string + maxLength: 255 + example: us-west-2 prod runner + description: + type: string + maxLength: 1024 + example: us-west-2 runner provisioned in the production environment by the SRE team + teams: + type: array + description: The list of teams associated with the Runner + items: + $ref: '#/components/schemas/TeamReference' + runbook_base_uri: + $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' + runbook_api_key: + type: string + maxLength: 64 + description: The API key to connect to the Runbook server with. If omitted, the previously stored value will remain unchanged required: - - metadata + - runner_type + - name + - description + - runbook_base_uri + - runbook_api_key required: - - invocation + - runner examples: request: value: - metadata: - incident_id: Q2LAR4ADCXC8IB + runner: + name: us-west-2 prod sidecar runner + description: us-west-2 prod sidecar runner provisioned by SRE + runner_type: sidecar + teams: + - id: PQ9K7I8 + type: team_reference required: true responses: '201': - description: Created invocation + description: Runner information content: application/json: schema: type: object properties: - invocation: - allOf: - - $ref: '#/components/schemas/AutomationActionsInvocation' - - type: object + runner: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + name: + type: string + example: us-west-2 prod runner + description: + type: string + example: us-west-2 runner provisioned in the production environment by the SRE team + last_seen: + type: string + format: date-time + status: + $ref: '#/components/schemas/AutomationActionsRunnerStatusEnum' + creation_time: + type: string + format: date-time + runbook_base_uri: + $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' + teams: + type: array + readOnly: true + description: The list of teams associated with the Runner + items: + $ref: '#/components/schemas/TeamReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + associated_actions: + description: References to at most 3 actions associated with the Runner. Use appropriate endpoints to retrieve the full list of associated actions. + type: object + properties: + actions: + nullable: false + type: array + items: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + more: + type: boolean + description: Indicates whether more actions exist for the Runner. + required: + - actions + - more + metadata: + type: string + description: Additional metadata (opaque JSON object) + secret: + description: Secret used for authentication of sidecar runner_types + type: string + description: A remote entity capable of executing work specified by an action. At maximum, an account can have 1000 runners. If runner maximum is exceeded, a 400 response is returned with error message. + required: + - id + - type + - name + - runner_type + - status + - creation_time required: - - invocation + - runner examples: response: summary: Response Example value: - invocation: - id: 01DBYD4A25RCXAXQDC9ZX0678V - type: invocation - action_snapshot: - name: Restart apache - action_type: script - action_data_reference: - script: print(\Hello from a Python script!\) - invocation_command: /usr/local/bin/python3 - runner_id: 01COQFFNVWIONSLY8C66YTU2O5 - timing: - - timestamp: '2022-11-08T22:57:14.756Z' - state: sent - duration: 23 - state: sent - action_id: 01DAW70HK24JZORNE0P9C2V1L9 - metadata: - agent: - id: PT4KHLK - type: user_reference - incident: - id: Q2LAR4ADCXC8IB - type: incident_reference + runner: + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + name: us-west-2 prod sidecar runner + summary: us-west-2 prod sidecar runner + type: runner + description: us-west-2 prod sidecar runner provisioned by SRE + creation_time: '2022-10-21T19:42:52.127369Z' + runner_type: sidecar + status: Configured + secret: 01DAZ9ZJ97OE23JUI6WH9XN7BK + teams: + - id: PQ9K7I8 + type: team_reference + privileges: + permissions: + - read + - update '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3941,95 +1897,137 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - '/automation_actions/actions/{id}/services': get: - summary: Get all service references associated with an Automation Action + summary: List Automation Action runners tags: - Automation Actions - operationId: getAutomationActionsActionServiceAssociations - description: Gets all service references associated with an Automation Action + operationId: getAutomationActionsRunners + description: | + Lists Automation Action runners matching provided query params. + The returned records are sorted by runner name in alphabetical order. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/automation_actions_name' + - $ref: '#/components/parameters/automation_actions_runners_include' responses: '200': - description: An array of service references + description: Runners matching the criteria. content: application/json: schema: type: object properties: - services: + runners: type: array items: - $ref: '#/components/schemas/ServiceReference' + $ref: '#/components/schemas/AutomationActionsRunner' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor examples: response: + summary: Response Example value: - services: - - id: PQ9K7I8 - type: service_reference - '400': - $ref: '#/components/responses/ArgumentError' + runners: + - id: 01DACKMP6Q3Y5YG51ENA26CX2I + name: us-west-2 prod runbook runner + description: us-west-2 prod runbook runner provisioned by SRE + creation_time: '2022-10-21T19:42:52.127369Z' + type: runner + runner_type: runbook + runbook_base_uri: acme.prod + status: Configured + teams: + - id: PQ9K7I8 + type: team_reference + privileges: + permissions: + - read + - update + - delete + - id: 01DA2MLYN0J5EFC1LKWXUKDDKT + name: us-west-2 prod sidecar runner + description: us-west-2 prod sidecar runner provisioned by SRE + creation_time: '2022-10-21T19:42:52.127369Z' + type: runner + runner_type: sidecar + status: Configured + privileges: + permissions: + - read + - update + privileges: + permissions: + - create + limit: 2 + next_cursor: eyJjMiI6IjAxREEyTUxZTjBKNUVGQzFMS1dYVUtEREtUIiwiYzEiOiJSQkEgU2hhcmVkIFN0YWdpbmcgSW5zdGFuY2UifQ== '401': $ref: '#/components/responses/Unauthorized' '402': $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - post: - summary: Associate an Automation Action with a service + description: List and create Automation Action runners. + /automation_actions/runners/{id}: + get: + summary: Get an Automation Action runner tags: - Automation Actions - operationId: createAutomationActionServiceAssocation + operationId: getAutomationActionsRunner description: | - Associate an Automation Action with a service + Get an Automation Action runner parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - service: - $ref: '#/components/schemas/ServiceReference' - required: - - service - examples: - request: - value: - service: - id: PRDRWUJ - type: service_reference - required: true responses: - '201': - description: The action-service association was created + '200': + description: Runner information content: application/json: schema: type: object properties: - service: - $ref: '#/components/schemas/ServiceReference' + runner: + $ref: '#/components/schemas/AutomationActionsRunner' required: - - service + - runner examples: response: + summary: Response Example value: - service: - id: PRDRWUJ - type: service_reference + runner: + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + name: us-west-2 prod sidecar runner + summary: us-west-2 prod sidecar runner + type: runner + description: us-west-2 prod sidecar runner provisioned by SRE + creation_time: '2022-10-21T19:42:52.127369Z' + runner_type: sidecar + status: Configured + teams: + - id: PQ9K7I8 + type: team_reference + privileges: + permissions: + - read + - update '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4044,34 +2042,82 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - '/automation_actions/actions/{id}/services/{service_id}': - get: - summary: Get the details of an Automation Action / service relation + put: + summary: Update an Automation Action runner tags: - Automation Actions - operationId: getAutomationActionsActionServiceAssociation - description: Gets the details of a Automation Action / service relation + operationId: updateAutomationActionsRunner + description: | + Update an Automation Action runner parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/service_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + runner: + discriminator: + propertyName: runner_type + type: object + title: RunnerSidecarBody + properties: + name: + type: string + maxLength: 255 + example: us-west-2 prod runner + description: + type: string + maxLength: 1024 + example: us-west-2 runner provisioned in the production environment by the SRE team + runbook_base_uri: + $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' + runbook_api_key: + type: string + maxLength: 64 + description: The API key to connect to the Runbook server with. If omitted, the previously stored value will remain unchanged + required: + - runner + examples: + request: + value: + runner: + name: us-west-2 prod sidecar runner + description: us-west-2 prod sidecar runner provisioned by SRE + required: true responses: '200': - description: Service reference + description: Runner information content: application/json: schema: type: object properties: - service: - $ref: '#/components/schemas/ServiceReference' + runner: + $ref: '#/components/schemas/AutomationActionsRunner' + required: + - runner examples: response: + summary: Response Example value: - service: - id: PQ9K7I8 - type: service_reference + runner: + id: 01DA2MLYN0J5EFC1LKWXUKDDKT + name: us-west-2 prod sidecar runner + summary: us-west-2 prod sidecar runner + type: runner + description: us-west-2 prod sidecar runner provisioned by SRE + creation_time: '2022-10-21T19:42:52.127369Z' + runner_type: sidecar + status: Configured + teams: + - id: PQ9K7I8 + type: team_reference + privileges: + permissions: + - read + - update '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4087,20 +2133,17 @@ paths: '500': $ref: '#/components/responses/InternalServerError' delete: - summary: Disassociate an Automation Action from a service + summary: Delete an Automation Action runner tags: - Automation Actions - operationId: deleteAutomationActionServiceAssociation + operationId: deleteAutomationActionsRunner description: | - Disassociate an Automation Action from a service + Delete an Automation Action runner parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/service_id' responses: '204': - description: Ok. + description: Deleted successfully. '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4115,17 +2158,16 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - '/automation_actions/actions/{id}/teams': + description: View, Update and Delete Automation Action runners + /automation_actions/runners/{id}/teams: post: - summary: Associate an Automation Action with a team + summary: Associate a runner with a team tags: - Automation Actions - operationId: createAutomationActionTeamAssociation + operationId: createAutomationActionsRunnerTeamAssociation description: | - Associate an Automation Action with a team + Associate a runner with a team parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -4146,7 +2188,7 @@ paths: required: true responses: '201': - description: The action-team association was created + description: The runner-team association that was created. content: application/json: schema: @@ -4158,6 +2200,7 @@ paths: - team examples: response: + summary: Response Example value: team: id: PQ9K7I8 @@ -4177,14 +2220,12 @@ paths: '500': $ref: '#/components/responses/InternalServerError' get: - summary: Get all team references associated with an Automation Action + summary: Get all team references associated with a runner tags: - Automation Actions - operationId: getAutomationActionsActionTeamAssociations - description: Gets all team references associated with an Automation Action + operationId: getAutomationActionsRunnerTeamAssociations + description: Gets all team references associated with a runner parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '200': @@ -4218,17 +2259,16 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - '/automation_actions/actions/{id}/teams/{team_id}': + description: Manage Runner-Team associations + /automation_actions/runners/{id}/teams/{team_id}: delete: - summary: Disassociate an Automation Action from a team + summary: Disassociate a runner from a team tags: - Automation Actions - operationId: deleteAutomationActionTeamAssociation + operationId: deleteAutomationActionsRunnerTeamAssociation description: | - Disassociate an Automation Action from a team + Disassociates a runner from a team parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/team_id' responses: @@ -4249,14 +2289,12 @@ paths: '500': $ref: '#/components/responses/InternalServerError' get: - summary: Get the details of an Automation Action / team relation + summary: Get the details of a runner / team relation tags: - Automation Actions - operationId: getAutomationActionsActionTeamAssociation - description: Gets the details of an Automation Action / team relation + operationId: getAutomationActionsRunnerTeamAssociation + description: Gets the details of a runner / team relation parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/team_id' responses: @@ -4289,658 +2327,2524 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' - /automation_actions/invocations: - get: - summary: List Invocations - tags: - - Automation Actions - description: | - List Invocations - operationId: listAutomationActionInvocations - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/automation_actions_invocation_state' - - $ref: '#/components/parameters/automation_actions_incident_id' - responses: - '200': - description: Invocations matching the criteria - content: - application/json: - schema: - allOf: - - type: object - properties: - invocations: - type: array - description: List of invocations sorted by creation_time in reverse chronological order (newest invocations first). At most 25 invocations are returned. - items: - $ref: '#/components/schemas/AutomationActionsInvocation' - required: - - invocations - examples: - response: - summary: Response Example - value: - invocations: - - id: 01DBYD4A25RCXAXQDC9ZX0678V - type: invocation - action_id: 01DAW70HK24JZORNE0P9C2V1L9 - action_snapshot: - name: Restart Apache - action_type: process_automation - action_data_reference: - process_automation_job_arguments: prod-datapipe - process_automation_node_filter: 'mynode1 !nodename: mynode2' - process_automation_job_id: 79c199bba1aff6e519f198457f5ec0fc - duration: 5 - metadata: - agent: - id: PRJ94S1 - type: user_reference - incident: - id: Q2LAR4ADCXC8IB - type: incident_reference - runner_id: 01COQFFNVWIONSLY8C66YTU2O5 - state: completed - timing: - - creation_timestamp: '2022-11-08T06:30:05.018949Z' - state: created - - creation_timestamp: '2022-11-08T06:30:10.069000Z' - state: running - - creation_timestamp: '2022-11-08T06:30:10.083000Z' - state: completed - - creation_timestamp: '2022-11-08T06:30:10.066000Z' - state: queued - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/automation_actions/invocations/{id}': - get: - summary: Get an Invocation - tags: - - Automation Actions - operationId: getAutomationActionsInvocation - description: | - Get an Automation Action Invocation - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: Invocation information - content: - application/json: - schema: + description: Manage Runner-Team associations +components: + schemas: + AutomationActionsScriptActionPostBody: + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + example: 1a6763bd-b1ad-458f-a347-6c8a9bea2d70 + maxLength: 36 + services: + nullable: false + type: array + items: + $ref: '#/components/schemas/ServiceReference' + teams: + nullable: false + type: array + items: + $ref: '#/components/schemas/TeamReference' + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + required: + - name + - description + - action_type + - action_data_reference + AutomationActionsProcessAutomationJobActionPostBody: + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + example: 1a6763bd-b1ad-458f-a347-6c8a9bea2d70 + maxLength: 36 + services: + nullable: false + type: array + items: + $ref: '#/components/schemas/ServiceReference' + teams: + nullable: false + type: array + items: + $ref: '#/components/schemas/TeamReference' + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' + required: + - name + - description + - action_type + - action_data_reference + AutomationActionsScriptActionWithTeams: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + AutomationActionsProcessAutomationJobActionWithTeams: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + AutomationActionsScriptAction: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + AutomationActionsProcessAutomationJobAction: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + - action_data_reference + AutomationActionsUserPermissions: + type: object + properties: + permissions: + nullable: false + type: array + items: + type: string + enum: + - create + - update + - delete + - invoke + example: + - update + - delete + required: + - permissions + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + AutomationActionsScriptActionPutBody: + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + maxLength: 36 + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + AutomationActionsProcessAutomationJobActionPutBody: + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + maxLength: 36 + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + action_data_reference: + $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' + AutomationActionsInvocation: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + action_snapshot: + type: object + properties: + name: + type: string + example: Restart apache + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_data_reference: + oneOf: + - $ref: '#/components/schemas/AutomationActionsProcessAutomationJobActionDataReference' + - $ref: '#/components/schemas/AutomationActionsScriptActionDataReference' + required: + - action_type + - name + runner_id: + type: string + timing: + description: A list of state transitions with timestamps, sorted in ascending order by timestamp. Only the 'created' transition is guaranteed to exist at any time. + type: array + items: + type: object + properties: + timestamp: + type: string + format: date-time + description: The date/time + state: + type: string + description: prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner unknown -- transient error encountered when fetching invocation state + enum: + - prepared + - created + - sent + - queued + - running + - aborted + - completed + - error + - unknown + example: sent + required: + - timestamp + - state + duration: + description: The duration of the invocation's execution time. + example: 23 + type: integer + state: + type: string + description: prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner unknown -- transient error encountered when fetching invocation state + enum: + - prepared + - created + - sent + - queued + - running + - aborted + - completed + - error + - unknown + example: sent + action_id: + type: string + metadata: + type: object + properties: + agent: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference + required: + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + - type: object + properties: + id: + type: string + example: PT4KHRS + type: + type: string + example: incident_workflow_reference + required: + - type + - id + incident: + $ref: '#/components/schemas/IncidentReference' + required: + - agent + required: + - id + - type + - action_snapshot + - runner_id + - timing + - state + - action_id + - metadata + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AutomationActionsRunnerSidecarPostBody: + type: object + title: RunnerSidecarPostBody + properties: + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + name: + type: string + maxLength: 255 + example: us-west-2 prod runner + description: + type: string + maxLength: 1024 + example: us-west-2 runner provisioned in the production environment by the SRE team + teams: + type: array + description: The list of teams associated with the Runner + items: + $ref: '#/components/schemas/TeamReference' + required: + - runner_type + - name + - description + AutomationActionsRunnerRunbookPostBody: + type: object + title: RunnerRunbookPostBody + properties: + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + name: + type: string + maxLength: 255 + example: us-west-2 prod runner + description: + type: string + maxLength: 1024 + example: us-west-2 runner provisioned in the production environment by the SRE team + runbook_base_uri: + $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' + runbook_api_key: + type: string + maxLength: 64 + description: The API key to connect to the Runbook server with. If omitted, the previously stored value will remain unchanged + teams: + type: array + description: The list of teams associated with the Runner + items: + $ref: '#/components/schemas/TeamReference' + required: + - runner_type + - name + - description + - runbook_base_uri + - runbook_api_key + AutomationActionsRunner: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + name: + type: string + example: us-west-2 prod runner + description: + type: string + example: us-west-2 runner provisioned in the production environment by the SRE team + last_seen: + type: string + format: date-time + status: + $ref: '#/components/schemas/AutomationActionsRunnerStatusEnum' + creation_time: + type: string + format: date-time + runbook_base_uri: + $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' + teams: + type: array + readOnly: true + description: The list of teams associated with the Runner + items: + $ref: '#/components/schemas/TeamReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + associated_actions: + description: References to at most 3 actions associated with the Runner. Use appropriate endpoints to retrieve the full list of associated actions. + type: object + properties: + actions: + nullable: false + type: array + items: type: object properties: - invocation: - $ref: '#/components/schemas/AutomationActionsInvocation' + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app required: - - invocation - examples: - response: - summary: Response Example - value: - invocation: - id: 01DBYD4A25RCXAXQDC9ZX0678V - type: invocation - action_id: 01DAW70HK24JZORNE0P9C2V1L9 - action_snapshot: - name: Restart Apache - action_type: process_automation - action_data_reference: - process_automation_job_arguments: prod-datapipe - process_automation_node_filter: 'mynode1 !nodename: mynode2' - process_automation_job_id: 79c199bba1aff6e519f198457f5ec0fc - duration: 5 - metadata: - agent: - id: PRJ94S1 - type: user_reference - incident: - id: Q2LAR4ADCXC8IB - type: incident_reference - runner_id: 01COQFFNVWIONSLY8C66YTU2O5 - state: completed - timing: - - creation_timestamp: '2022-11-08T06:30:05.018949Z' - state: created - - creation_timestamp: '2022-11-08T06:30:10.069000Z' - state: running - - creation_timestamp: '2022-11-08T06:30:10.083000Z' - state: completed - - creation_timestamp: '2022-11-08T06:30:10.066000Z' - state: queued - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - /automation_actions/runners: - post: - summary: Create an Automation Action runner. - tags: - - Automation Actions - description: | - Create a Process Automation or a Runbook Automation runner. - operationId: createAutomationActionsRunner - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - requestBody: - content: - application/json: - schema: - type: object + - type + - id + description: (opaque JSON object) + more: + type: boolean + description: Indicates whether more actions exist for the Runner. + required: + - actions + - more + metadata: + type: string + description: Additional metadata (opaque JSON object) + description: A remote entity capable of executing work specified by an action. At maximum, an account can have 1000 runners. If runner maximum is exceeded, a 400 response is returned with error message. + required: + - id + - type + - name + - runner_type + - status + - creation_time + AutomationActionsRunnerSidecarBody: + type: object + title: RunnerSidecarBody + properties: + name: + type: string + maxLength: 255 + example: us-west-2 prod runner + description: + type: string + maxLength: 1024 + example: us-west-2 runner provisioned in the production environment by the SRE team + AutomationActionsRunnerRunbookBody: + type: object + title: RunnerRunbookBody + properties: + name: + type: string + maxLength: 255 + example: us-west-2 prod runner + description: + type: string + maxLength: 1024 + example: us-west-2 runner provisioned in the production environment by the SRE team + runbook_base_uri: + $ref: '#/components/schemas/AutomationActionsRunbookBaseURI' + runbook_api_key: + type: string + maxLength: 64 + description: The API key to connect to the Runbook server with. If omitted, the previously stored value will remain unchanged + AutomationActionsAbstractActionPostBody: + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + example: 1a6763bd-b1ad-458f-a347-6c8a9bea2d70 + maxLength: 36 + services: + nullable: false + type: array + items: + $ref: '#/components/schemas/ServiceReference' + teams: + nullable: false + type: array + items: + $ref: '#/components/schemas/TeamReference' + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + required: + - name + - description + - action_type + AutomationActionsScriptActionDataReference: + type: object + properties: + script: + type: string + description: Body of the script to be executed on the Runner. To execute it, the Runner will write the content of the property into a temp file, make the file executable and execute it. It is assumed that the Runner has a properly configured environment to run the script as an executable file. This behaviour can be altered by providing the `invocation_command` property. The maxLength value is specified in bytes. + example: print("Hello from a Python script!") + maxLength: 16777215 + invocation_command: + type: string + description: The command to executed a script with. With the body of the script written into a temp file, the Runner will execute the ` ` command. The maxLength value is specified in bytes. + example: /usr/local/bin/python3 + maxLength: 65535 + required: + - script + AutomationActionsProcessAutomationJobActionDataReference: + type: object + properties: + process_automation_job_id: + type: string + example: 79c199bba1aff6e519f198457f5ec0fc + maxLength: 36 + process_automation_job_arguments: + type: string + description: Arguments to pass to the Process Automation job. The maxLength value is specified in bytes. + example: '-env production' + maxLength: 1024 + process_automation_node_filter: + type: string + description: 'Node filter for the Process Automation job. The maxLength value is specified in bytes. Filter syntax: https://docs.rundeck.com/docs/manual/11-node-filters.html#node-filter-syntax' + example: 'mynode1 !nodename: mynode2' + maxLength: 1024 + required: + - process_automation_job_id + AutomationActionsActionClassificationEnum: + type: string + enum: + - diagnostic + - remediation + nullable: true + AutomationActionsAbstractAction: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + example: Restart apache + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + runner: + type: string + maxLength: 36 + runner_type: + $ref: '#/components/schemas/AutomationActionsRunnerTypeEnum' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + privileges: + $ref: '#/components/schemas/AutomationActionsUserPermissions' + metadata: + type: string + description: (opaque JSON object) + creation_time: + type: string + format: date-time + description: The date/time + modify_time: + type: string + format: date-time + description: The date/time + last_run: + type: string + format: date-time + description: The date/time + last_run_by: + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object properties: - runner: - oneOf: - - $ref: '#/components/schemas/AutomationActionsRunnerSidecarPostBody' - - $ref: '#/components/schemas/AutomationActionsRunnerRunbookPostBody' - discriminator: - propertyName: runner_type + id: + type: string + example: /5471da24-eecd-42e2-ac38-a32b2d907406/service/P000000 + type: + type: string + example: event_orchestration_reference required: - - runner - examples: - request: - value: - runner: - name: us-west-2 prod sidecar runner - description: us-west-2 prod sidecar runner provisioned by SRE - runner_type: sidecar - teams: - - id: PQ9K7I8 - type: team_reference - required: true - responses: - '201': - description: Runner information - content: - application/json: - schema: - type: object - properties: - runner: - allOf: - - $ref: '#/components/schemas/AutomationActionsRunner' - - type: object - properties: - secret: - description: Secret used for authentication of sidecar runner_types - type: string - required: - - runner - examples: - response: - summary: Response Example - value: - runner: - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - name: us-west-2 prod sidecar runner - summary: us-west-2 prod sidecar runner - type: runner - description: us-west-2 prod sidecar runner provisioned by SRE - creation_time: '2022-10-21T19:42:52.127369Z' - runner_type: sidecar - status: Configured - secret: 01DAZ9ZJ97OE23JUI6WH9XN7BK - teams: - - id: PQ9K7I8 - type: team_reference - privileges: - permissions: - - read - - update - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - get: - summary: List Automation Action runners - tags: - - Automation Actions - operationId: getAutomationActionsRunners + - type + - id + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + description: A unit of work to be executed on runner. At most, an account can have 10,000 actions. If action maximum is exceeded, a 400 reponse is returned with error message. + required: + - id + - type + - action_type + - name + - creation_time + - modify_time + AutomationActionsAbstractActionPutBody: + type: object + properties: + name: + type: string + example: Restart apache + maxLength: 255 + description: + type: string + example: Restarts apache on the us-west-2-shopping-cart host + maxLength: 1024 + action_classification: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + action_type: + type: string + enum: + - script + - process_automation + example: process_automation + runner: + type: string + maxLength: 36 + only_invocable_on_unresolved_incidents: + type: boolean + description: If true, the action can only be invoked against an unresolved incident. + default: false + example: false + allow_invocation_manually: + type: boolean + description: If true, the action can only be invoked manually by a user. + default: true + example: true + allow_invocation_from_event_orchestration: + type: boolean + description: If true, the action can only be invoked automatically by an Event Orchestration. + default: true + example: true + map_to_all_services: + type: boolean + description: If true, the action will be associated with every service. + default: false + example: false + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Template: + type: object + properties: + template_type: + type: string + description: The type of template (`status_update` is the only supported template at this time) + enum: + - status_update + name: + type: string + description: The name of the template + description: + type: string + nullable: true + description: Description of the template + templated_fields: + type: object + properties: + email_subject: + type: string + nullable: true + description: The subject of the e-mail + email_body: + type: string + nullable: true + description: The HTML body of the e-mail message + message: + type: string + nullable: true + description: |- + The short-message of the template (SMS, Push notification, Slack, + etc) + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + type: + type: string + enum: + - template + created_by: + description: User/Account object reference of the creator + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + updated_by: + description: User/Account object reference of the updator + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AutomationActionsRunnerTypeEnum: description: | - Lists Automation Action runners matching provided query params. - The returned records are sorted by runner name in alphabetical order. - - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/automation_actions_name' - - $ref: '#/components/parameters/automation_actions_runners_include' - responses: - '200': - description: Runners matching the criteria. - content: - application/json: - schema: - allOf: - - type: object - properties: - runners: - type: array - items: - $ref: '#/components/schemas/AutomationActionsRunner' - - type: object - properties: - privileges: - $ref: '#/components/schemas/AutomationActionsUserPermissions' - - $ref: '#/components/schemas/CursorPagination' - examples: - response: - summary: Response Example - value: - runners: - - id: 01DACKMP6Q3Y5YG51ENA26CX2I - name: us-west-2 prod runbook runner - description: us-west-2 prod runbook runner provisioned by SRE - creation_time: '2022-10-21T19:42:52.127369Z' - type: runner - runner_type: runbook - runbook_base_uri: acme.prod - status: Configured - teams: - - id: PQ9K7I8 - type: team_reference - privileges: - permissions: - - read - - update - - delete - - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - name: us-west-2 prod sidecar runner - description: us-west-2 prod sidecar runner provisioned by SRE - creation_time: '2022-10-21T19:42:52.127369Z' - type: runner - runner_type: sidecar - status: Configured - privileges: - permissions: - - read - - update - privileges: - permissions: - - create - limit: 2 - next_cursor: eyJjMiI6IjAxREEyTUxZTjBKNUVGQzFMS1dYVUtEREtUIiwiYzEiOiJSQkEgU2hhcmVkIFN0YWdpbmcgSW5zdGFuY2UifQ== - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/automation_actions/runners/{id}': - get: - summary: Get an Automation Action runner - tags: - - Automation Actions - operationId: getAutomationActionsRunner + sidecar -- The runner is backed by an external sidecar that polls for invocations. + runbook -- The runner communicates directly with a runbook instance. + type: string + enum: + - sidecar + - runbook + example: runbook + AutomationActionsRunbookBaseURI: + type: string + description: The base URI of the Runbook server to connect to. May only contain alphanumeric characters, periods, underscores and dashes. Specified as the subdomain portion of an RBA host, as in .runbook.pagerduty.cloud + maxLength: 255 + example: subdomain + AutomationActionsRunnerStatusEnum: description: | - Get an Automation Action runner - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: Runner information - content: - application/json: - schema: + Configured -- Runner has connected to the backend at least once + NotConfigured -- Runner has never connected to backend + type: string + enum: + - Configured + - NotConfigured + example: Configured + EditableTemplate: + type: object + properties: + template_type: + type: string + description: The type of template (`status_update` is the only supported template at this time) + enum: + - status_update + name: + type: string + description: The name of the template + description: + type: string + nullable: true + description: Description of the template + templated_fields: + type: object + properties: + email_subject: + type: string + nullable: true + description: The subject of the e-mail + email_body: + type: string + nullable: true + description: The HTML body of the e-mail message + message: + type: string + nullable: true + description: |- + The short-message of the template (SMS, Push notification, Slack, + etc) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - runner: - $ref: '#/components/schemas/AutomationActionsRunner' - required: - - runner - examples: - response: - summary: Response Example - value: - runner: - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - name: us-west-2 prod sidecar runner - summary: us-west-2 prod sidecar runner - type: runner - description: us-west-2 prod sidecar runner provisioned by SRE - creation_time: '2022-10-21T19:42:52.127369Z' - runner_type: sidecar - status: Configured - teams: - - id: PQ9K7I8 - type: team_reference - privileges: - permissions: - - read - - update - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - put: - summary: Update an Automation Action runner - tags: - - Automation Actions - operationId: updateAutomationActionsRunner + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Update an Automation Action runner - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - runner: - oneOf: - - $ref: '#/components/schemas/AutomationActionsRunnerSidecarBody' - - $ref: '#/components/schemas/AutomationActionsRunnerRunbookBody' - discriminator: - propertyName: runner_type - required: - - runner - examples: - request: - value: - runner: - name: us-west-2 prod sidecar runner - description: us-west-2 prod sidecar runner provisioned by SRE - required: true - responses: - '200': - description: Runner information - content: - application/json: - schema: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - runner: - $ref: '#/components/schemas/AutomationActionsRunner' - required: - - runner - examples: - response: - summary: Response Example - value: - runner: - id: 01DA2MLYN0J5EFC1LKWXUKDDKT - name: us-west-2 prod sidecar runner - summary: us-west-2 prod sidecar runner - type: runner - description: us-west-2 prod sidecar runner provisioned by SRE - creation_time: '2022-10-21T19:42:52.127369Z' - runner_type: sidecar - status: Configured - teams: - - id: PQ9K7I8 - type: team_reference - privileges: - permissions: - - read - - update - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - summary: Delete an Automation Action runner - tags: - - Automation Actions - operationId: deleteAutomationActionsRunner + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Delete an Automation Action runner - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: Deleted successfully. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/automation_actions/runners/{id}/teams': - post: - summary: Associate a runner with a team - tags: - - Automation Actions - operationId: createAutomationActionsRunnerTeamAssociation + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Associate a runner with a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - team: - $ref: '#/components/schemas/TeamReference' - required: - - team - examples: - request: - value: - team: - id: PQ9K7I8 - type: team_reference - required: true - responses: - '201': - description: The runner-team association that was created. - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - team: - $ref: '#/components/schemas/TeamReference' - required: - - team - examples: - response: - summary: Response Example - value: - team: - id: PQ9K7I8 - type: team_reference - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - get: - summary: Get all team references associated with a runner - tags: - - Automation Actions - operationId: getAutomationActionsRunnerTeamAssociations - description: Gets all team references associated with a runner - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: OK - content: - application/json: - schema: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - teams: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/TeamReference' - examples: - response: - value: - teams: - - id: PQ9K7I8 - type: team_reference - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/automation_actions/runners/{id}/teams/{team_id}': - delete: - summary: Disassociate a runner from a team - tags: - - Automation Actions - operationId: deleteAutomationActionsRunnerTeamAssociation + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false description: | - Disassociates a runner from a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/team_id' - responses: - '204': - description: Ok. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - get: - summary: Get the details of a runner / team relation - tags: - - Automation Actions - operationId: getAutomationActionsRunnerTeamAssociation - description: Gets the details of a runner / team relation - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/team_id' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - team: - $ref: '#/components/schemas/TeamReference' - examples: - response: - value: - team: - id: PQ9K7I8 - type: team_reference - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + automation_actions_name: + name: name + description: Filters results to include the ones matching the name (case insensitive substring matching) + in: query + required: false + schema: + type: string + nullable: false + automation_actions_runner_id: + name: runner_id + description: | + Filters results to include the ones linked to the specified runner. + Specifying the value `any` filters results to include the ones linked to runners only, + thus omitting the results not linked to runners. + in: query + required: false + schema: + type: string + nullable: false + automation_actions_classification: + name: classification + description: Filters results to include the ones matching the specified classification (aka category) + in: query + required: false + schema: + $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' + automation_actions_team_id: + name: team_id + description: Filters results to include the ones associated with the specified team. + in: query + required: false + schema: + type: string + nullable: false + automation_actions_service_id: + name: service_id + description: Filters results to include the ones associated with the specified service + in: query + required: false + schema: + type: string + nullable: false + automation_actions_action_type: + name: action_type + description: Filters results to include the ones matching the specified action type + in: query + required: false + schema: + type: string + enum: + - script + - process_automation + example: process_automation + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + service_id: + name: service_id + in: path + description: The service ID + required: true + schema: + type: string + team_id: + name: team_id + in: path + description: The team ID + required: true + schema: + type: string + automation_actions_invocation_state: + name: invocation_state + description: Invocation state + in: query + schema: + type: string + description: prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner unknown -- transient error encountered when fetching invocation state + enum: + - prepared + - created + - sent + - queued + - running + - aborted + - completed + - error + - unknown + example: sent + automation_actions_not_invocation_state: + name: not_invocation_state + description: Invocation state inverse filter (matches invocations NOT in the specified state) + in: query + schema: + type: string + description: prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner unknown -- transient error encountered when fetching invocation state + enum: + - prepared + - created + - sent + - queued + - running + - aborted + - completed + - error + - unknown + example: sent + automation_actions_incident_id: + name: incident_id + description: Incident ID + in: query + required: false + schema: + type: string + example: Q2LAR4ADCXC8IB + automation_actions_action_id: + name: action_id + description: Action ID + in: query + required: false + schema: + type: string + example: 01DAW70HK24JZORNE0P9C2V1L9 + automation_actions_runners_include: + name: include[] + in: query + required: false + description: Includes additional data elements into the response + explode: true + schema: + type: array + items: + type: string + enum: + - associated_actions + example: associated_actions + uniqueItems: true + x-stackQL-resources: + actions: + id: pagerduty.automation_actions.actions + name: actions + title: Actions + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1actions/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1automation_actions~1actions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.actions + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.action + delete: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/actions/methods/get' + - $ref: '#/components/x-stackQL-resources/actions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/actions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/actions/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/actions/methods/delete' + replace: [] + invocations: + id: pagerduty.automation_actions.invocations + name: invocations + title: Invocations + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1invocations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1automation_actions~1invocations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.invocations + get: + operation: + $ref: '#/paths/~1automation_actions~1invocations~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.invocation + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/invocations/methods/get' + - $ref: '#/components/x-stackQL-resources/invocations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/invocations/methods/create' + update: [] + delete: [] + replace: [] + action_services: + id: pagerduty.automation_actions.action_services + name: action_services + title: Action Services + methods: + list: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1services/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1services/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1services~1{service_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.service + delete: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1services~1{service_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/action_services/methods/get' + - $ref: '#/components/x-stackQL-resources/action_services/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/action_services/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/action_services/methods/delete' + replace: [] + action_teams: + id: pagerduty.automation_actions.action_teams + name: action_teams + title: Action Teams + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.teams + delete: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams~1{team_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + get: + operation: + $ref: '#/paths/~1automation_actions~1actions~1{id}~1teams~1{team_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.team + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/action_teams/methods/get' + - $ref: '#/components/x-stackQL-resources/action_teams/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/action_teams/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/action_teams/methods/delete' + replace: [] + runners: + id: pagerduty.automation_actions.runners + name: runners + title: Runners + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1runners/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1automation_actions~1runners/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.runners + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.runner + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/runners/methods/get' + - $ref: '#/components/x-stackQL-resources/runners/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/runners/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/runners/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/runners/methods/delete' + replace: [] + runner_teams: + id: pagerduty.automation_actions.runner_teams + name: runner_teams + title: Runner Teams + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.teams + delete: + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams~1{team_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + get: + operation: + $ref: '#/paths/~1automation_actions~1runners~1{id}~1teams~1{team_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.team + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/runner_teams/methods/get' + - $ref: '#/components/x-stackQL-resources/runner_teams/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/runner_teams/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/runner_teams/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/business_services.yaml b/providers/src/pagerduty/v00.00.00000/services/business_services.yaml index be3d303c..67f60f7a 100644 --- a/providers/src/pagerduty/v00.00.00000/services/business_services.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/business_services.yaml @@ -1,3032 +1,111 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Business Services + description: Business services model the services an organization provides, their subscribers, impacts and priority thresholds. version: 2.0.0 - title: PagerDuty API - business_services - description: Business_Services -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - BusinessService: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - name: - type: string - description: The name of the business service. - description: - type: string - description: The user-provided description of the business service. - point_of_contact: - type: string - description: The point of contact assigned to this service. - team: - type: object - nullable: true - title: Team - description: Reference to the team that owns the business service. - properties: - id: - type: string - type: - type: string - description: A string that determines the schema of the object. - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible. - readOnly: true - required: - - id - example: - id: P3X2XX3 - type: business_service - name: Self-serve mobile checkout - description: Checkout service for our mobile clients - point_of_contact: PagerDuty Admin - team: - type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' - id: P3ZQXDF - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - NotificationSubscriber: - title: NotificationSubscriber - description: A reference of a subscriber entity. - type: object - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - description: The type of the entity being subscribed - enum: - - user - - team - example: - subscriber_id: PD1234 - subscriber_type: user - NotificationSubscriptionWithContext: - title: NotificationSubscriptionWithContext - type: object - description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. - x-examples: - example-1: - subscriber_id: string - subscriber_type: user - subscribable_id: string - subscribable_type: incident - account_id: string - result: success - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - enum: - - user - - team - description: The type of the entity being subscribed - subscribable_id: - type: string - description: The ID of the entity being subscribed to - subscribable_type: - type: string - enum: - - incident - - business_service - description: The type of the entity being subscribed to - account_id: - type: string - description: The type of the entity being subscribed to - result: - type: string - enum: - - success - - duplicate - - unauthorized - description: The resulting status of the subscription - LiveListResponse: - type: object - properties: - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - Impact: - title: Impact - type: object - properties: - id: - type: string - readOnly: true - name: - type: string - readOnly: true - type: - type: string - description: The kind of object that has been impacted - enum: - - business_service - status: - type: string - description: The current impact status of the object - enum: - - impacted - - not_impacted - additional_fields: - type: object - properties: - highest_impacting_priority: - type: object - nullable: true - description: Priority information for the highest priority level that is affecting the impacted object. - properties: - id: - type: string - readOnly: true - order: - type: integer - readOnly: true - Impactor: - title: Impactor - type: object - properties: - id: - type: string - readOnly: true - type: - type: string - description: The kind of object that is impacting - enum: - - incident - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. +paths: + /business_services: + get: + x-pd-requires-scope: services.read + tags: + - Business Services + operationId: listBusinessServices + description: | + List existing Business Services. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + Business services model capabilities that span multiple technical services and that may be owned by several different teams. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Scoped OAuth requires: `services.read` + summary: List Business Services + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + responses: + '200': + description: A paginated array of services. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + business_services: + type: array + items: + $ref: '#/components/schemas/BusinessService' + required: + - business_services + examples: + response: + summary: Response Example + value: + business_services: + - type: business_service + self: https://api.pagerduty.com/business_services/P3U7V58 + html_url: null + point_of_contact: PagerDuty Admin + name: stand-alone node + team: null + id: P3U7V58 + description: Very important business function + summary: stand-alone node + - type: business_service + self: https://api.pagerduty.com/business_services/P1L1YEE + html_url: null + point_of_contact: PagerDuty Admin + name: Cross-tier business service + id: P1L1YEE + summary: Cross-tier business service + team: + id: PQ9K7I8 + type: team_reference + self: https://api.pagerduty.com/teams/PQ9K7I8 + limit: 100 + offset: 0 + total: null + more: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + post: + x-pd-requires-scope: services.write + tags: + - Business Services + operationId: createBusinessService description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Create a new Business Service. - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - UnprocessableEntity: - description: Unprocessable Entity. Some arguments failed validation checks. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - business_services: - id: pagerduty.business_services.business_services - name: business_services - title: Business Services - methods: - list_business_services: - operation: - $ref: '#/paths/~1business_services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.services - _list_business_services: - operation: - $ref: '#/paths/~1business_services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_business_service: - operation: - $ref: '#/paths/~1business_services/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_business_service: - operation: - $ref: '#/paths/~1business_services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.business_service - _get_business_service: - operation: - $ref: '#/paths/~1business_services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_business_service: - operation: - $ref: '#/paths/~1business_services~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_business_service: - operation: - $ref: '#/paths/~1business_services~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/business_services/methods/get_business_service' - - $ref: '#/components/x-stackQL-resources/business_services/methods/list_business_services' - insert: - - $ref: '#/components/x-stackQL-resources/business_services/methods/create_business_service' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/business_services/methods/delete_business_service' - account_subscription: - id: pagerduty.business_services.account_subscription - name: account_subscription - title: Account Subscription - methods: - create_business_service_account_subscription: - operation: - $ref: '#/paths/~1business_services~1{id}~1account_subscription/post' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_business_service_account_subscription: - operation: - $ref: '#/paths/~1business_services~1{id}~1account_subscription/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - remove_business_service_notification_subscriber: - operation: - $ref: '#/paths/~1business_services~1{id}~1unsubscribe/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/account_subscription/methods/create_business_service_account_subscription' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/account_subscription/methods/remove_business_service_account_subscription' - subscribers: - id: pagerduty.business_services.subscribers - name: subscribers - title: Subscribers - methods: - get_business_service_subscribers: - operation: - $ref: '#/paths/~1business_services~1{id}~1subscribers/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.subscribers - _get_business_service_subscribers: - operation: - $ref: '#/paths/~1business_services~1{id}~1subscribers/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_business_service_notification_subscribers: - operation: - $ref: '#/paths/~1business_services~1{id}~1subscribers/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/subscribers/methods/get_business_service_subscribers' - insert: - - $ref: '#/components/x-stackQL-resources/subscribers/methods/create_business_service_notification_subscribers' - update: [] - delete: [] - supporting_services_impacts: - id: pagerduty.business_services.supporting_services_impacts - name: supporting_services_impacts - title: Supporting Services Impacts - methods: - get_business_service_supporting_service_impacts: - operation: - $ref: '#/paths/~1business_services~1{id}~1supporting_services~1impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.services - _get_business_service_supporting_service_impacts: - operation: - $ref: '#/paths/~1business_services~1{id}~1supporting_services~1impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/supporting_services_impacts/methods/get_business_service_supporting_service_impacts' - insert: [] - update: [] - delete: [] - impactors: - id: pagerduty.business_services.impactors - name: impactors - title: Impactors - methods: - get_business_service_top_level_impactors: - operation: - $ref: '#/paths/~1business_services~1impactors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.impactors - _get_business_service_top_level_impactors: - operation: - $ref: '#/paths/~1business_services~1impactors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/impactors/methods/get_business_service_top_level_impactors' - insert: [] - update: [] - delete: [] - impacts: - id: pagerduty.business_services.impacts - name: impacts - title: Impacts - methods: - get_business_service_impacts: - operation: - $ref: '#/paths/~1business_services~1impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.services - _get_business_service_impacts: - operation: - $ref: '#/paths/~1business_services~1impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/impacts/methods/get_business_service_impacts' - insert: [] - update: [] - delete: [] - priority_thresholds: - id: pagerduty.business_services.priority_thresholds - name: priority_thresholds - title: Priority Thresholds - methods: - get_business_service_priority_thresholds: - operation: - $ref: '#/paths/~1business_services~1priority_thresholds/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.global_threshold - _get_business_service_priority_thresholds: - operation: - $ref: '#/paths/~1business_services~1priority_thresholds/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_business_service_priority_thresholds: - operation: - $ref: '#/paths/~1business_services~1priority_thresholds/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - put_business_service_priority_thresholds: - operation: - $ref: '#/paths/~1business_services~1priority_thresholds/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/priority_thresholds/methods/get_business_service_priority_thresholds' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/priority_thresholds/methods/delete_business_service_priority_thresholds' -paths: - /business_services: - get: - x-pd-requires-scope: services.read - tags: - - Business Services - operationId: listBusinessServices - description: | - List existing Business Services. - - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) - - Scoped OAuth requires: `services.read` - summary: List Business Services - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - responses: - '200': - description: A paginated array of services. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - business_services: - type: array - items: - $ref: '#/components/schemas/BusinessService' - required: - - business_services - examples: - response: - summary: Response Example - value: - business_services: - - type: business_service - self: 'https://api.pagerduty.com/business_services/P3U7V58' - html_url: null - point_of_contact: PagerDuty Admin - name: stand-alone node - team: null - id: P3U7V58 - description: Very important business function - summary: stand-alone node - - type: business_service - self: 'https://api.pagerduty.com/business_services/P1L1YEE' - html_url: null - point_of_contact: PagerDuty Admin - name: Cross-tier business service - id: P1L1YEE - summary: Cross-tier business service - team: - id: PQ9K7I8 - type: team_reference - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - limit: 100 - offset: 0 - total: null - more: false - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - post: - x-pd-requires-scope: services.write - tags: - - Business Services - operationId: createBusinessService - description: | - Create a new Business Service. - - Business services model capabilities that span multiple technical services and that may be owned by several different teams. + Business services model capabilities that span multiple technical services and that may be owned by several different teams. There is a limit of 5,000 business services per account. If the limit is reached, the API will respond with an error. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.write` summary: Create a Business Service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + parameters: [] requestBody: content: application/json: @@ -3083,7 +162,7 @@ paths: business_service: id: P1L1YEE type: business_service - self: 'https://api.pagerduty.com/business_services/P1L1YEE' + self: https://api.pagerduty.com/business_services/P1L1YEE html_url: null point_of_contact: PagerDuty Admin name: Self-serve mobile checkout @@ -3092,7 +171,7 @@ paths: team: id: P3ZQXDF type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' + self: https://api.pagerduty.com/teams/P3ZQXDF '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3101,7 +180,8 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/business_services/{id}': + description: List and create Business Services. + /business_services/{id}: get: x-pd-requires-scope: services.read tags: @@ -3112,13 +192,11 @@ paths: Business services model capabilities that span multiple technical services and that may be owned by several different teams. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.read` summary: Get a Business Service parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '200': @@ -3139,7 +217,7 @@ paths: business_service: id: P1L1YEE type: business_service - self: 'https://api.pagerduty.com/business_services/P1L1YEE' + self: https://api.pagerduty.com/business_services/P1L1YEE html_url: null name: Cross-tier business service description: Business service affected by multiple teams @@ -3148,7 +226,7 @@ paths: team: id: PQ9K7I8 type: team_reference - self: 'https://api.pagerduty.com/teams/PQ9K7I8' + self: https://api.pagerduty.com/teams/PQ9K7I8 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3169,13 +247,11 @@ paths: Business services model capabilities that span multiple technical services and that may be owned by several different teams. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.write` summary: Delete a Business Service parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '204': @@ -3196,13 +272,11 @@ paths: Business services model capabilities that span multiple technical services and that may be owned by several different teams. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.write` summary: Update a Business Service parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3260,7 +334,7 @@ paths: business_service: id: P1L1YEE type: business_service - self: 'https://api.pagerduty.com/business_services/P1L1YEE' + self: https://api.pagerduty.com/business_services/P1L1YEE html_url: null point_of_contact: PagerDuty Admin name: Self-serve mobile checkout @@ -3269,14 +343,15 @@ paths: team: id: P3ZQXDF type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' + self: https://api.pagerduty.com/teams/P3ZQXDF '400': $ref: '#/components/responses/ArgumentError' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/business_services/{id}/account_subscription': + description: Manage a Business Service. + /business_services/{id}/account_subscription: post: x-pd-requires-scope: subscribers.write summary: Create Business Service Account Subscription @@ -3313,7 +388,6 @@ paths: Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' delete: x-pd-requires-scope: subscribers.write @@ -3337,9 +411,8 @@ paths: Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' - '/business_services/{id}/subscribers': + /business_services/{id}/subscribers: get: x-pd-requires-scope: subscribers.read summary: List Business Service Subscribers @@ -3351,19 +424,32 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - subscribers: - type: array - items: - $ref: '#/components/schemas/NotificationSubscriber' - - type: object - properties: - account_id: - type: string - description: The ID of the account belonging to the subscriber entity + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + subscribers: + type: array + items: + $ref: '#/components/schemas/NotificationSubscriber' + account_id: + type: string + description: The ID of the account belonging to the subscriber entity examples: response: summary: Response Example @@ -3396,7 +482,6 @@ paths: > Users must be added through `POST /business_services/{id}/subscribers` to be returned from this endpoint. Scoped OAuth requires: `subscribers.read` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' post: x-pd-requires-scope: subscribers.write @@ -3452,7 +537,6 @@ paths: Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' requestBody: content: @@ -3480,9 +564,10 @@ paths: - subscriber_id: PD1234 subscriber_type: user description: The entities to subscribe. - '/business_services/{id}/supporting_services/impacts': + /business_services/{id}/supporting_services/impacts: get: - summary: 'List the supporting Business Services for the given Business Service Id, sorted by impacted status.' + x-pd-requires-scope: services.read + summary: List the supporting Business Services for the given Business Service Id, sorted by impacted status. tags: - Business Services responses: @@ -3491,21 +576,25 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/LiveListResponse' - - type: object - properties: - services: - type: array - items: - $ref: '#/components/schemas/Impact' - - type: object + type: object + properties: + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + services: + type: array + items: + $ref: '#/components/schemas/Impact' + additional_fields: + type: object properties: - additional_fields: - type: object - properties: - total_impacted_count: - type: integer + total_impacted_count: + type: integer examples: response: summary: Response Example @@ -3540,24 +629,19 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' operationId: getBusinessServiceSupportingServiceImpacts - description: |- + description: | Retrieve of Business Services that support the given Business Service sorted by highest Impact with `status` included. This endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted up to the limit of 200. The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. To get impact information about a specific set of Business Services, use the `ids[]` parameter on the `/business_services/impacts` endpoint. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `services.read` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/early_access_bis' - $ref: '#/components/parameters/impacts_additional_fields' - $ref: '#/components/parameters/ids' - '/business_services/{id}/unsubscribe': + /business_services/{id}/unsubscribe: post: x-pd-requires-scope: subscribers.write summary: Remove Business Service Subscribers @@ -3602,7 +686,6 @@ paths: Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' requestBody: content: @@ -3630,6 +713,7 @@ paths: description: The entities to unsubscribe. /business_services/impactors: get: + x-pd-requires-scope: services.read summary: List Impactors affecting Business Services tags: - Business Services @@ -3639,14 +723,20 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/LiveListResponse' - - type: object - properties: - impactors: - type: array - items: - $ref: '#/components/schemas/Impactor' + type: object + properties: + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + impactors: + type: array + items: + $ref: '#/components/schemas/Impactor' examples: response: summary: Response Example @@ -3669,7 +759,7 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' operationId: getBusinessServiceTopLevelImpactors - description: |- + description: | Retrieve a list of Impactors for the top-level Business Services on the account. Impactors are currently limited to Incidents. This endpoint does not return an exhaustive list of Impactors but rather provides access to the highest priority Impactors for the Business Services in question up to the limit of 200. @@ -3677,16 +767,12 @@ paths: To get Impactors for a specific set of Business Services, use the `ids[]` parameter. The returned Impactors are sorted first by priority and secondarily by their creation date. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `services.read` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/early_access_bis' - $ref: '#/components/parameters/ids' /business_services/impacts: get: + x-pd-requires-scope: services.read summary: List Business Services sorted by impacted status tags: - Business Services @@ -3696,21 +782,25 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/LiveListResponse' - - type: object - properties: - services: - type: array - items: - $ref: '#/components/schemas/Impact' - - type: object + type: object + properties: + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + services: + type: array + items: + $ref: '#/components/schemas/Impact' + additional_fields: + type: object properties: - additional_fields: - type: object - properties: - total_impacted_count: - type: integer + total_impacted_count: + type: integer examples: response: summary: Response Example @@ -3744,179 +834,872 @@ paths: $ref: '#/components/responses/UnprocessableEntity' '429': $ref: '#/components/responses/TooManyRequests' - operationId: getBusinessServiceImpacts - description: |- - Retrieve a list top-level Business Services sorted by highest Impact with `status` included. - When called without the `ids[]` parameter, this endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted up to the limit of 200. - - The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. - - To get impact information about a specific set of Business Services, use the `ids[]` parameter. + operationId: getBusinessServiceImpacts + description: | + Retrieve a list top-level Business Services sorted by highest Impact with `status` included. + When called without the `ids[]` parameter, this endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted up to the limit of 200. + + The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. + + To get impact information about a specific set of Business Services, use the `ids[]` parameter. + Scoped OAuth requires: `services.read` + parameters: + - $ref: '#/components/parameters/impacts_additional_fields' + - $ref: '#/components/parameters/ids' + /business_services/priority_thresholds: + get: + x-pd-requires-scope: services.read + summary: Get the global priority threshold for a Business Service to be considered impacted by an Incident + tags: + - Business Services + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + global_threshold: + type: object + nullable: true + properties: + id: + type: string + order: + type: integer + examples: + response: + summary: Response Example + value: + limit: 100 + more: false + global_threshold: null + type: object + properties: + id: string + order: integer + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + operationId: getBusinessServicePriorityThresholds + description: | + Retrieves the priority threshold information for an account. Currently, there is a `global_threshold` that can be set for the account. Incidents that have a priority meeting or exceeding this threshold will be considered impacting on any Business Service that depends on the Service to which the Incident belongs. + Scoped OAuth requires: `services.read` + parameters: [] + delete: + x-pd-requires-scope: services.write + summary: Deletes the account-level priority threshold for Business Service impact + tags: + - Business Services + responses: + '204': + description: The Priority Threshold for the account was successfully cleared. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + operationId: deleteBusinessServicePriorityThresholds + description: | + Clears the Priority Threshold for the account. If the priority threshold is cleared, any Incident with a Priority set will be able to impact Business Services. + Scoped OAuth requires: `services.write` + parameters: [] + put: + x-pd-requires-scope: services.write + summary: Set the Account-level priority threshold for Business Service impact. + tags: + - Business Services + responses: + '200': + description: OK + content: + application/json: + schema: + description: '' + type: object + properties: + global_threshold: + type: object + properties: + id: + type: string + order: + type: number + required: + - id + - order + required: + - global_threshold + examples: + response: + summary: Response Example + value: + global_threshold: + id: PTLNKGF + order: 256 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + description: Internal Server Error + operationId: putBusinessServicePriorityThresholds + description: | + Set the Account-level priority threshold for Business Service. + Scoped OAuth requires: `services.write` + parameters: [] + requestBody: + content: + application/json: + schema: + description: '' + type: object + properties: + global_threshold: + type: object + properties: + id: + type: string + minLength: 1 + order: + type: number + required: + - id + - order + required: + - global_threshold + examples: + example: + value: + global_threshold: + id: PTLNKGF + order: 256 + description: |- + Set the `id` and `order` of the global Priority Threshold. These values can be obtained by calling the `/priorities` endpoint. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/early_access_bis' - - $ref: '#/components/parameters/impacts_additional_fields' - - $ref: '#/components/parameters/ids' - /business_services/priority_thresholds: - get: - summary: Get the global priority threshold for a Business Service to be considered impacted by an Incident - tags: - - Business Services - responses: - '200': - description: OK - content: - application/json: - schema: + Once set, Incidents must be at or above the specified level in order to impact Business Services. An exception to this rule is if the Incident has been added to the incident directly using the `PUT /incidents/{id}/business_services/{business_service_id}/impacts` endpoint. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + BusinessService: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the business service. + description: + type: string + description: The user-provided description of the business service. + point_of_contact: + type: string + description: The point of contact assigned to this service. + team: + type: object + nullable: true + title: Team + description: Reference to the team that owns the business service. + properties: + id: + type: string + type: + type: string + description: A string that determines the schema of the object. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + required: + - id + example: + id: P3X2XX3 + type: business_service + name: Self-serve mobile checkout + description: Checkout service for our mobile clients + point_of_contact: PagerDuty Admin + team: + type: team_reference + self: https://api.pagerduty.com/teams/P3ZQXDF + id: P3ZQXDF + NotificationSubscriber: + title: NotificationSubscriber + description: A reference of a subscriber entity. + type: object + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + description: The type of the entity being subscribed + enum: + - user + - team + example: + subscriber_id: PD1234 + subscriber_type: user + NotificationSubscriptionWithContext: + title: NotificationSubscriptionWithContext + type: object + description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. + x-examples: + example-1: + subscriber_id: string + subscriber_type: user + subscribable_id: string + subscribable_type: incident + account_id: string + result: success + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + enum: + - user + - team + description: The type of the entity being subscribed + subscribable_id: + type: string + description: The ID of the entity being subscribed to + subscribable_type: + type: string + enum: + - incident + - business_service + description: The type of the entity being subscribed to + account_id: + type: string + description: The type of the entity being subscribed to + result: + type: string + enum: + - success + - duplicate + - unauthorized + description: The resulting status of the subscription + LiveListResponse: + type: object + properties: + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + Impact: + title: Impact + type: object + properties: + id: + type: string + readOnly: true + name: + type: string + readOnly: true + type: + type: string + description: The kind of object that has been impacted + enum: + - business_service + status: + type: string + description: The current impact status of the object + enum: + - impacted + - not_impacted + additional_fields: + type: object + properties: + highest_impacting_priority: + type: object + nullable: true + description: Priority information for the highest priority level that is affecting the impacted object. + properties: + id: + type: string + readOnly: true + order: + type: integer + readOnly: true + Impactor: + title: Impactor + type: object + properties: + id: + type: string + readOnly: true + type: + type: string + description: The kind of object that is impacting + enum: + - incident + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - global_threshold: - type: object - nullable: true - properties: - id: - type: string - order: - type: integer - examples: - response: - summary: Response Example - value: - limit: 100 - more: false - global_threshold: null - type: object - properties: - id: string - order: integer - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - operationId: getBusinessServicePriorityThresholds - description: |- - Retrieves the priority threshold information for an account. Currently, there is a `global_threshold` that can be set for the account. Incidents that have a priority meeting or exceeding this threshold will be considered impacting on any Business Service that depends on the Service to which the Incident belongs. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/early_access_bis' - delete: - summary: Deletes the account-level priority threshold for Business Service impact - tags: - - Business Services - responses: - '204': - description: The Priority Threshold for the account was successfully cleared. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - operationId: deleteBusinessServicePriorityThresholds - description: |- - Clears the Priority Threshold for the account. If the priority threshold is cleared, any Incident with a Priority set will be able to impact Business Services. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/early_access_bis' - put: - summary: Set the Account-level priority threshold for Business Service impact. - tags: - - Business Services - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - global_threshold: - type: object - properties: - id: - type: string - order: - type: number - required: - - id - - order - required: - - global_threshold - examples: - response: - summary: Response Example - value: - global_threshold: - id: PTLNKGF - order: 256 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - description: Internal Server Error - operationId: putBusinessServicePriorityThresholds - description: |- - Set the Account-level priority threshold for Business Service. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/early_access_bis' - requestBody: - content: - application/json: - schema: - description: '' - type: object - properties: - global_threshold: - type: object - properties: - id: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + UnprocessableEntity: + description: Unprocessable Entity. Some arguments failed validation checks. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: type: string - minLength: 1 - order: - type: number - required: - - id - - order - required: - - global_threshold - examples: - example: - value: - global_threshold: - id: PTLNKGF - order: 256 - description: |- - Set the `id` and `order` of the global Priority Threshold. These values can be obtained by calling the `/priorities` endpoint. + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Once set, Incidents must be at or above the specified level in order to impact Business Services. An exception to this rule is if the Incident has been added to the incident directly using the `PUT /incidents/{id}/business_services/{business_service_id}/impacts` endpoint. + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + impacts_additional_fields: + name: additional_fields[] + in: query + description: Provides access to additional fields such as highest priority per business service and total impacted count + explode: true + schema: + type: string + enum: + - services.highest_impacting_priority + - total_impacted_count + ids: + name: ids[] + description: The IDs of the resources. + in: query + explode: true + schema: + type: string + x-stackQL-resources: + business_services: + id: pagerduty.business_services.business_services + name: business_services + title: Business Services + methods: + list: + operation: + $ref: '#/paths/~1business_services/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.business_services + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1business_services/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1business_services~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.business_service + delete: + operation: + $ref: '#/paths/~1business_services~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1business_services~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/business_services/methods/get' + - $ref: '#/components/x-stackQL-resources/business_services/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/business_services/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/business_services/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/business_services/methods/delete' + replace: [] + account_subscriptions: + id: pagerduty.business_services.account_subscriptions + name: account_subscriptions + title: Account Subscriptions + methods: + create: + operation: + $ref: '#/paths/~1business_services~1{id}~1account_subscription/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1business_services~1{id}~1account_subscription/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/account_subscriptions/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/account_subscriptions/methods/delete' + replace: [] + subscribers: + id: pagerduty.business_services.subscribers + name: subscribers + title: Subscribers + methods: + list: + operation: + $ref: '#/paths/~1business_services~1{id}~1subscribers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.subscribers + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1business_services~1{id}~1subscribers/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unsubscribe: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1business_services~1{id}~1unsubscribe/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/subscribers/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/subscribers/methods/create' + update: [] + delete: [] + replace: [] + supporting_service_impacts: + id: pagerduty.business_services.supporting_service_impacts + name: supporting_service_impacts + title: Supporting Service Impacts + methods: + list: + operation: + $ref: '#/paths/~1business_services~1{id}~1supporting_services~1impacts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/supporting_service_impacts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + impactors: + id: pagerduty.business_services.impactors + name: impactors + title: Impactors + methods: + list: + operation: + $ref: '#/paths/~1business_services~1impactors/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.impactors + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/impactors/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + impacts: + id: pagerduty.business_services.impacts + name: impacts + title: Impacts + methods: + list: + operation: + $ref: '#/paths/~1business_services~1impacts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/impacts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + priority_thresholds: + id: pagerduty.business_services.priority_thresholds + name: priority_thresholds + title: Priority Thresholds + methods: + get: + operation: + $ref: '#/paths/~1business_services~1priority_thresholds/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.global_threshold + delete: + operation: + $ref: '#/paths/~1business_services~1priority_thresholds/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1business_services~1priority_thresholds/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/priority_thresholds/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/priority_thresholds/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/priority_thresholds/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/change_events.yaml b/providers/src/pagerduty/v00.00.00000/services/change_events.yaml index ba288bbb..64ba4f35 100644 --- a/providers/src/pagerduty/v00.00.00000/services/change_events.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/change_events.yaml @@ -1,2905 +1,167 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Change Events + description: Change events represent changes (deployments, configuration changes) correlated with incidents. version: 2.0.0 - title: PagerDuty API - change_events - description: Change_Events -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - ChangeEvent: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - timestamp: - type: string - format: date-time - readOnly: true - description: The time at which the emitting tool detected or generated the event. - type: - type: string - readOnly: true - default: change_event - description: The type of object being created. - enum: - - change_event - services: - type: array - readOnly: true - description: An array containing Service objects that this change event is associated with. - items: - $ref: '#/components/schemas/ServiceReference' - integration: - allOf: - - readOnly: true - - $ref: '#/components/schemas/IntegrationReference' - routing_key: - readOnly: true - title: Routing Key - description: This is the 32 character Integration Key for an Integration on a Service. The same Integration Key can be used for both alert and change events. - type: string - summary: - type: string - description: A brief text summary of the event. Displayed in PagerDuty to provide information about the change. The maximum permitted length of this property is 1024 characters. - source: - type: string - readOnly: true - description: The unique name of the location where the Change Event occurred. - links: - type: array - readOnly: true - description: List of links to include. - items: +paths: + /change_events: + get: + x-pd-requires-scope: change_events.read + tags: + - Change Events + operationId: listChangeEvents + description: | + List all of the existing Change Events. + + Scoped OAuth requires: `change_events.read` + summary: List Change Events + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/integration_ids' + - $ref: '#/components/parameters/change_since' + - $ref: '#/components/parameters/change_until' + responses: + '200': + description: The array of Change Events returned by the query. + content: + application/json: + schema: type: object properties: - href: - type: string - text: - type: string - images: - type: array - readOnly: true - items: + change_events: + type: array + items: + $ref: '#/components/schemas/ChangeEvent' + examples: + response: + summary: Response Example + value: + change_events: + - summary: Build Success - Increase snapshot create timeout to 30 seconds + id: 01BBYA6PEVW6A852BUO6QYUE7O + timestamp: '2020-07-17T08:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '2' + run_time: 1236s + links: + - href: https://acme.pagerduty.dev/build/2 + text: View more details in Acme! + - summary: Build Success - Increase snapshot create timeout to 15 seconds + id: 01BBYA6PDIXPL8KO1HPIUL9CZN + timestamp: '2020-07-17T07:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '1' + run_time: 1233s + links: + - href: https://acme.pagerduty.dev/build/1 + text: View more details in Acme! + limit: null + offset: null + total: null + more: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + post: + summary: Create a Change Event + description: | + Sending Change Events is documented as part of the V2 Events API. See [`Send Change Event`](https://developer.pagerduty.com/api-reference/b3A6Mjc0ODI2Ng-send-change-events-to-the-pager-duty-events-api). + operationId: createChangeEvent + tags: + - Change Events + parameters: [] + responses: + '202': + description: See [`Send Change Event`](https://developer.pagerduty.com/api-reference/b3A6Mjc0ODI2Ng-send-change-events-to-the-pager-duty-events-api) in the V2 Events API reference. + description: List change events. + /change_events/{id}: + get: + x-pd-requires-scope: change_events.read + tags: + - Change Events + operationId: getChangeEvent + description: | + Get details about an existing Change Event. + + Scoped OAuth requires: `change_events.read` + summary: Get a Change Event + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The Change Event requested. + content: + application/json: + schema: type: object properties: - src: - type: string - href: - type: string - alt: - type: string - custom_details: - type: object - description: Additional details about the change event. - title: Custom Details - example: - summary: Build Success - Increase snapshot create timeout to 30 seconds - timestamp: '2020-07-17T08:42:58Z' - type: change_event - source: acme-build-pipeline-tool-default-i-9999 - integration: - id: PEYSGVF - type: inbound_integration_reference - services: - - id: PEYSGRV - type: service_reference - custom_details: - build_state: passed - build_number: '2' - run_time: 1236s - links: - - href: 'https://acme.pagerduty.dev/build/2' - text: View more details in Acme! - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - IntegrationReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - aws_cloudwatch_inbound_integration_reference - - cloudkick_inbound_integration_reference - - event_transformer_api_inbound_integration_reference - - generic_email_inbound_integration_reference - - generic_events_api_inbound_integration_reference - - keynote_inbound_integration_reference - - nagios_inbound_integration_reference - - pingdom_inbound_integration_reference - - sql_monitor_inbound_integration_reference - - events_api_v2_inbound_integration_reference - - inbound_integration_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - change_events: - id: pagerduty.change_events.change_events - name: change_events - title: Change Events - methods: - list_change_events: - operation: - $ref: '#/paths/~1change_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.change_events - _list_change_events: - operation: - $ref: '#/paths/~1change_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_change_event: - operation: - $ref: '#/paths/~1change_events/post' - response: - mediaType: application/json - openAPIDocKey: '202' - get_change_event: - operation: - $ref: '#/paths/~1change_events~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.change_event - _get_change_event: - operation: - $ref: '#/paths/~1change_events~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_change_event: - operation: - $ref: '#/paths/~1change_events~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/change_events/methods/get_change_event' - - $ref: '#/components/x-stackQL-resources/change_events/methods/list_change_events' - insert: - - $ref: '#/components/x-stackQL-resources/change_events/methods/create_change_event' - update: [] - delete: [] - incidents_related_change_events: - id: pagerduty.change_events.incidents_related_change_events - name: incidents_related_change_events - title: Incidents Related Change Events - methods: - list_incident_related_change_events: - operation: - $ref: '#/paths/~1incidents~1{id}~1related_change_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.change_events - _list_incident_related_change_events: - operation: - $ref: '#/paths/~1incidents~1{id}~1related_change_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/incidents_related_change_events/methods/list_incident_related_change_events' - insert: [] - update: [] - delete: [] - services: - id: pagerduty.change_events.services - name: services - title: Services - methods: - list_service_change_events: - operation: - $ref: '#/paths/~1services~1{id}~1change_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.change_events - _list_service_change_events: - operation: - $ref: '#/paths/~1services~1{id}~1change_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/services/methods/list_service_change_events' - insert: [] - update: [] - delete: [] -paths: - /change_events: - get: - x-pd-requires-scope: change_events.read - tags: - - Change Events - operationId: listChangeEvents - description: | - List all of the existing Change Events. - - Scoped OAuth requires: `change_events.read` - summary: List Change Events - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/team_ids' - - $ref: '#/components/parameters/integration_ids' - - $ref: '#/components/parameters/change_since' - - $ref: '#/components/parameters/change_until' - responses: - '200': - description: The array of Change Events returned by the query. - content: - application/json: - schema: - type: object - properties: - change_events: - type: array - items: - $ref: '#/components/schemas/ChangeEvent' - examples: - response: - summary: Response Example - value: - change_events: - - summary: Build Success - Increase snapshot create timeout to 30 seconds - id: 01BBYA6PEVW6A852BUO6QYUE7O - timestamp: '2020-07-17T08:42:58Z' - type: change_event - source: acme-build-pipeline-tool-default-i-9999 - integration: - id: PEYSGVF - type: inbound_integration_reference - services: - - id: PEYSGRV - type: service_reference - custom_details: - build_state: passed - build_number: '2' - run_time: 1236s - links: - - href: 'https://acme.pagerduty.dev/build/2' - text: View more details in Acme! - - summary: Build Success - Increase snapshot create timeout to 15 seconds - id: 01BBYA6PDIXPL8KO1HPIUL9CZN - timestamp: '2020-07-17T07:42:58Z' - type: change_event - source: acme-build-pipeline-tool-default-i-9999 - integration: - id: PEYSGVF - type: inbound_integration_reference - services: - - id: PEYSGRV - type: service_reference - custom_details: - build_state: passed - build_number: '1' - run_time: 1233s - links: - - href: 'https://acme.pagerduty.dev/build/1' - text: View more details in Acme! - limit: null - offset: null - total: null - more: false - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - post: - summary: Create a Change Event - description: | - Sending Change Events is documented as part of the V2 Events API. See [`Send Change Event`](https://developer.pagerduty.com/api-reference/b3A6Mjc0ODI2Ng-send-change-events-to-the-pager-duty-events-api). - operationId: createChangeEvent - tags: - - Change Events - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - responses: - '202': - description: 'See [`Send Change Event`](https://developer.pagerduty.com/api-reference/b3A6Mjc0ODI2Ng-send-change-events-to-the-pager-duty-events-api) in the V2 Events API reference.' - '/change_events/{id}': - get: - x-pd-requires-scope: change_events.read - tags: - - Change Events - operationId: getChangeEvent - description: | - Get details about an existing Change Event. - - Scoped OAuth requires: `change_events.read` - summary: Get a Change Event - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The Change Event requested. - content: - application/json: - schema: - type: object - properties: - change_event: - $ref: '#/components/schemas/ChangeEvent' - examples: - response: - summary: Response Example - value: - change_event: - summary: Build Success - Increase snapshot create timeout to 30 seconds - timestamp: '2020-07-17T08:42:58Z' - type: change_event - source: acme-build-pipeline-tool-default-i-9999 - integration: - id: PEYSGVF - type: inbound_integration_reference - services: - - id: PEYSGRV - type: service_reference - custom_details: - build_state: passed - build_number: '2' - run_time: 1236s - links: - - href: 'https://acme.pagerduty.dev/build/2' - text: View more details in Acme! - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: change_events.write - summary: Update a Change Event - description: | - Update an existing Change Event + change_event: + $ref: '#/components/schemas/ChangeEvent' + examples: + response: + summary: Response Example + value: + change_event: + summary: Build Success - Increase snapshot create timeout to 30 seconds + timestamp: '2020-07-17T08:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '2' + run_time: 1236s + links: + - href: https://acme.pagerduty.dev/build/2 + text: View more details in Acme! + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: change_events.write + summary: Update a Change Event + description: | + Update an existing Change Event Scoped OAuth requires: `change_events.write` tags: - Change Events operationId: updateChangeEvent parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -2953,7 +215,7 @@ paths: build_number: '2' run_time: 1236s links: - - href: 'https://acme.pagerduty.dev/build/2' + - href: https://acme.pagerduty.dev/build/2 text: View more details in Acme! '400': $ref: '#/components/responses/ArgumentError' @@ -2963,7 +225,8 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/incidents/{id}/related_change_events': + description: Read and update a Change Event. + /incidents/{id}/related_change_events: get: x-pd-requires-scope: incidents.read tags: @@ -2981,8 +244,6 @@ paths: parameters: - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' responses: '200': description: The array of Change Events returned by the query. @@ -2994,21 +255,140 @@ paths: change_events: type: array items: - allOf: - - $ref: '#/components/schemas/ChangeEvent' - - type: object + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + timestamp: + type: string + format: date-time + readOnly: true + description: The time at which the emitting tool detected or generated the event. + services: + type: array + readOnly: true + description: An array containing Service objects that this change event is associated with. + items: + $ref: '#/components/schemas/ServiceReference' + integration: + readOnly: true + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + routing_key: + readOnly: true + title: Routing Key + description: This is the 32 character Integration Key for an Integration on a Service. The same Integration Key can be used for both alert and change events. + type: string + source: + type: string + readOnly: true + description: The unique name of the location where the Change Event occurred. + links: + type: array + readOnly: true + description: List of links to include. + items: + type: object + properties: + href: + type: string + text: + type: string + images: + type: array + readOnly: true + items: + type: object + properties: + src: + type: string + href: + type: string + alt: + type: string + custom_details: + type: string + description: Additional details about the change event. (opaque JSON object) + title: Custom Details + correlation_reason: + type: object properties: - correlation_reason: - type: object - properties: - reason: - type: string - enum: - - most_recent - - related_service - - intelligent - readOnly: true - description: The reason a change event was determined to be related to the given incident. + reason: + type: string + enum: + - most_recent + - related_service + - intelligent + readOnly: true + description: The reason a change event was determined to be related to the given incident. + example: + summary: Build Success - Increase snapshot create timeout to 30 seconds + timestamp: '2020-07-17T08:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '2' + run_time: 1236s + links: + - href: https://acme.pagerduty.dev/build/2 + text: View more details in Acme! examples: response: summary: Response Example @@ -3030,7 +410,7 @@ paths: build_number: '2' run_time: 1236s links: - - href: 'https://acme.pagerduty.dev/build/2' + - href: https://acme.pagerduty.dev/build/2 text: View more details in Acme! correlation_reason: reason: most_recent @@ -3050,7 +430,7 @@ paths: build_number: '1' run_time: 1233s links: - - href: 'https://acme.pagerduty.dev/build/1' + - href: https://acme.pagerduty.dev/build/1 text: View more details in Acme! correlation_reason: reason: related_service @@ -3066,7 +446,8 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/services/{id}/change_events': + description: List change events related to an incident. + /services/{id}/change_events: get: x-pd-requires-scope: services.read tags: @@ -3084,8 +465,6 @@ paths: - $ref: '#/components/parameters/offset_limit' - $ref: '#/components/parameters/offset_offset' - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/team_ids' - $ref: '#/components/parameters/integration_ids' responses: @@ -3096,60 +475,632 @@ paths: schema: type: object properties: - change_events: + change_events: + type: array + items: + $ref: '#/components/schemas/ChangeEvent' + examples: + response: + summary: Response Example + value: + change_events: + - summary: Build Success - Increase snapshot create timeout to 30 seconds + id: 01BBYA6PEVW6A852BUO6QYUE7O + timestamp: '2020-07-17T08:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '2' + run_time: 1236s + links: + - href: https://acme.pagerduty.dev/build/2 + text: View more details in Acme! + - summary: Build Success - Increase snapshot create timeout to 15 seconds + id: 01BBYA6PDIXPL8KO1HPIUL9CZN + timestamp: '2020-07-17T07:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '1' + run_time: 1233s + links: + - href: https://acme.pagerduty.dev/build/1 + text: View more details in Acme! + limit: null + offset: null + total: null + more: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: List change events for a service. +components: + schemas: + ChangeEvent: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + timestamp: + type: string + format: date-time + readOnly: true + description: The time at which the emitting tool detected or generated the event. + services: + type: array + readOnly: true + description: An array containing Service objects that this change event is associated with. + items: + $ref: '#/components/schemas/ServiceReference' + integration: + readOnly: true + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + routing_key: + readOnly: true + title: Routing Key + description: This is the 32 character Integration Key for an Integration on a Service. The same Integration Key can be used for both alert and change events. + type: string + source: + type: string + readOnly: true + description: The unique name of the location where the Change Event occurred. + links: + type: array + readOnly: true + description: List of links to include. + items: + type: object + properties: + href: + type: string + text: + type: string + images: + type: array + readOnly: true + items: + type: object + properties: + src: + type: string + href: + type: string + alt: + type: string + custom_details: + type: string + description: Additional details about the change event. (opaque JSON object) + title: Custom Details + example: + summary: Build Success - Increase snapshot create timeout to 30 seconds + timestamp: '2020-07-17T08:42:58Z' + type: change_event + source: acme-build-pipeline-tool-default-i-9999 + integration: + id: PEYSGVF + type: inbound_integration_reference + services: + - id: PEYSGRV + type: service_reference + custom_details: + build_state: passed + build_number: '2' + run_time: 1236s + links: + - href: https://acme.pagerduty.dev/build/2 + text: View more details in Acme! + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IntegrationReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/ChangeEvent' - examples: - response: - summary: Response Example - value: - change_events: - - summary: Build Success - Increase snapshot create timeout to 30 seconds - id: 01BBYA6PEVW6A852BUO6QYUE7O - timestamp: '2020-07-17T08:42:58Z' - type: change_event - source: acme-build-pipeline-tool-default-i-9999 - integration: - id: PEYSGVF - type: inbound_integration_reference - services: - - id: PEYSGRV - type: service_reference - custom_details: - build_state: passed - build_number: '2' - run_time: 1236s - links: - - href: 'https://acme.pagerduty.dev/build/2' - text: View more details in Acme! - - summary: Build Success - Increase snapshot create timeout to 15 seconds - id: 01BBYA6PDIXPL8KO1HPIUL9CZN - timestamp: '2020-07-17T07:42:58Z' - type: change_event - source: acme-build-pipeline-tool-default-i-9999 - integration: - id: PEYSGVF - type: inbound_integration_reference - services: - - id: PEYSGRV - type: service_reference - custom_details: - build_state: passed - build_number: '1' - run_time: 1233s - links: - - href: 'https://acme.pagerduty.dev/build/1' - text: View more details in Acme! - limit: null - offset: null - total: null - more: false - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + integration_ids: + name: integration_ids[] + in: query + description: An array of integration IDs. Only results related to these integrations will be returned. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + change_since: + name: since + in: query + description: The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes. + schema: + type: string + format: date-time + pattern: YYYY-MM-DDThh:mm:ssZ + change_until: + name: until + in: query + description: The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes. + schema: + type: string + format: date-time + pattern: YYYY-MM-DDThh:mm:ssZ + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + change_events: + id: pagerduty.change_events.change_events + name: change_events + title: Change Events + methods: + list: + operation: + $ref: '#/paths/~1change_events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.change_events + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + operation: + $ref: '#/paths/~1change_events/post' + response: + mediaType: application/json + openAPIDocKey: '202' + get: + operation: + $ref: '#/paths/~1change_events~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.change_event + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1change_events~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/change_events/methods/get' + - $ref: '#/components/x-stackQL-resources/change_events/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/change_events/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/change_events/methods/update' + delete: [] + replace: [] + incident_change_events: + id: pagerduty.change_events.incident_change_events + name: incident_change_events + title: Incident Change Events + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1related_change_events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.change_events + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_change_events/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + service_change_events: + id: pagerduty.change_events.service_change_events + name: service_change_events + title: Service Change Events + methods: + list: + operation: + $ref: '#/paths/~1services~1{id}~1change_events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.change_events + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_change_events/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/custom_fields.yaml b/providers/src/pagerduty/v00.00.00000/services/custom_fields.yaml index 719c28cc..c1364fc6 100644 --- a/providers/src/pagerduty/v00.00.00000/services/custom_fields.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/custom_fields.yaml @@ -1,3446 +1,682 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Custom Fields + description: Account-level custom field definitions for incidents (deprecated in favour of incident types) and services. version: 2.0.0 - title: PagerDuty API - custom_fields - description: Custom_Fields -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - CustomFieldsFieldWithOptions: - allOf: - - $ref: '#/components/schemas/CustomFieldsField' - - type: object - properties: - field_options: - type: array - description: The fixed list of value options that may be stored in this field. - items: - $ref: '#/components/schemas/CustomFieldsFieldOption' - nullable: true - CustomFieldsField: - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableField' - - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - self: - type: string - nullable: true - readOnly: true - format: url - description: The API show URL at which the object is accessible - type: - type: string - enum: - - field - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - datatype: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/datatype' - multi_value: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/multi_value' - fixed_options: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/fixed_options' - required: - - id - - summary - - self - - type - - created_at - - updated_at - - datatype - - namespace - - name - - display_name - - multi_value - - fixed_options - CustomFieldsFieldOption: - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableFieldOption' - - type: object - required: - - id - - type - - data - - created_at - - updated_at - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - CustomFieldsEditableField: - type: object - properties: - display_name: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/display_name' - description: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/description' - CustomFieldsFieldValue: - type: object - properties: - id: - type: string - description: Id of the field. - name: - type: string - description: 'The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique.' - maxLength: 50 - type: - type: string - description: Determines the type of the reference. - enum: - - field_value - display_name: - type: string - description: The human-readable name of the field. This must be unique across an account. - maxLength: 50 - multi_value: - type: boolean - description: 'If `true`, allows the custom field to store a set of multiple values. Must be `false` if `datatype` is not "string" or "url"' - datatype: - type: string - description: The kind of data the custom field is allowed to contain. - enum: - - boolean - - integer - - float - - string - - datetime - - url - description: - type: string - nullable: true - description: A description of the data this field contains. - maxLength: 1000 - fixed_options: - type: boolean - description: 'If `true`, restricts the values allowed to be stored in the custom field to a limited set of options (configured via the Field Option sub-resource). Must be `false` if `datatype` is "boolean", "url", or "datetime"' - value: - oneOf: - - type: object - properties: - value: - type: boolean - nullable: true - - type: object - properties: - value: - type: number - nullable: true - - type: object - properties: - value: - type: integer - nullable: true - - type: object - properties: - value: - oneOf: - - type: string - maxLength: 200 - nullable: true - - type: array - items: - type: string - maxLength: 200 - maxItems: 10 - uniqueItems: true - nullable: true - - type: object - properties: - value: - type: string - nullable: true - format: date-time - - type: object - properties: - value: - oneOf: - - type: string - format: uri - maxLength: 200 - nullable: true - - type: array - items: - type: string - format: uri - maxLength: 200 - maxItems: 10 - uniqueItems: true - nullable: true - required: - - id - - type - - name - - value - - display_name - - datatype - - multi_value - - description - - fixed_options - CustomFieldsEditableFieldOption: - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - type: - type: string - enum: - - field_option - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - data: - oneOf: - - type: object +paths: + /incidents/custom_fields: + post: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: createCustomFieldsField + description: | + + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields + + Creates a new Custom Field on the Base Incident Type, along with the Field Options if provided. \ + An account may have up to 10 Fields. + + Scoped OAuth requires: `custom_fields.write` + summary: Create a Field + deprecated: true + requestBody: + content: + application/json: + schema: + type: object properties: - datatype: - type: string - description: The kind of data represented by this option. Must match the Field's `datatype`. - enum: - - integer - value: - type: integer + field: + $ref: '#/components/schemas/CustomFieldsFieldWithOptions' required: - - datatype - - value - - type: object - properties: - datatype: - type: string - description: The kind of data represented by this option. Must match the Field's `datatype`. - enum: - - float + - field + examples: + request1: + summary: 'Example: With field_options and single-value' value: - type: number - required: - - datatype - - value - - type: object - properties: - datatype: - type: string - description: The kind of data represented by this option. Must match the Field's `datatype`. - enum: - - string + field: + data_type: string + name: environment + display_name: Environment + description: The environment that the issue occurred in + field_type: single_value_fixed + default_value: production + field_options: + - data: + data_type: string + value: production + - data: + data_type: string + value: staging + request2: + summary: 'Example: With field_options and multi-value' value: - type: string - maxLength: 200 - required: - - datatype - - value - discriminator: - propertyName: datatype - mapping: - integer: ./IntegerFixedOptionValue.yaml - float: ./FloatFixedOptionValue.yaml - string: ./StringFixedOptionValue.yaml - required: - - id - - type - - created_at - - updated_at - description: '' - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - CustomFieldsSchemaWithTimestamps: - allOf: - - $ref: '#/components/schemas/CustomFieldsIncidentSchema/allOf/0' - - type: object - properties: - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - required: - - created_at - - updated_at - CustomFieldsIncidentSchema: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - self: - type: string - nullable: true - readOnly: true - format: url - description: The API show URL at which the object is accessible - type: - type: string - readOnly: true - enum: - - schema - title: - description: The name of the schema. - type: string - maxLength: 100 - description: - description: A description of this schema. - type: string - nullable: true - maxLength: 1000 - required: - - id - - type - - summary - - self - - type: object - properties: - field_configurations: - type: array - readOnly: true - items: - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference/allOf/0' - - type: object - properties: - field: - $ref: '#/components/schemas/CustomFieldsFieldWithOptions' - maxItems: 20 - uniqueItems: true - required: - - title - - description - CustomFieldsFieldConfigurationWithFieldReference: - allOf: - - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableFieldConfiguration' - - type: object - properties: - type: - type: string - enum: - - field_configuration - required: - - id - - type - - created_at - - updated_at - - field - - required - - type: object - properties: - field: - description: The Field to be included in this schema. Each Field may only be used in one Field Configuration per schema. - allOf: - - type: object - properties: - type: - type: string - description: 'A string that determines the type of the reference. This must be the standard name for the entity, suffixed by `_reference`.' - enum: - - field_reference - id: - type: string - description: The ID of the resource. - required: - - type - - id - CustomFieldsEditableFieldConfiguration: - type: object - properties: - default_value: - type: object - description: The value to use for this field if none is provided. It must be specified if `required` is `true`. - allOf: - - oneOf: - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/0' - - type: object - properties: - datatype: - type: string - enum: - - boolean - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/2' - - type: object - properties: - datatype: - type: string - enum: - - integer - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/1' - - type: object - properties: - datatype: - type: string - enum: - - float - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/3' - - type: object - properties: - datatype: - type: string - enum: - - string - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/4' - - type: object - properties: - datatype: - type: string - enum: - - datetime - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/5' - - type: object - properties: - datatype: - type: string - enum: - - url - required: - - datatype - - value - - type: object - properties: - datatype: - type: string - enum: - - field_option - value: - oneOf: - - type: object - properties: - type: - type: string - enum: - - field_option_reference - id: - type: string - description: 'The ID of the field option. If value is not provided, an ID must be provided.' - value: - type: string - description: 'The value of the field option. If ID is not provided, an value must be provided.' - required: - - type - - id - - value - - type: array - items: - type: object - properties: - type: - type: string - enum: - - field_option_reference - id: - type: string - description: 'The ID of the field option. If value is not provided, an ID must be provided.' - value: - type: string - description: 'The value of the field option. If ID is not provided, an value must be provided.' - required: - - type - - id - - value - maxItems: 10 - uniqueItems: true - nullable: true - required: - - datatype - - value - discriminator: - propertyName: datatype - mapping: - boolean: ./BooleanFieldValue.yaml - integer: ./IntegerFieldValue.yaml - float: ./FloatFieldValue.yaml - string: ./StringFieldValue.yaml - datetime: ./DatetimeFieldValue.yaml - url: ./UrlFieldValue.yaml - field_option: ./FieldOptionFieldValue.yaml - - type: object - properties: - multi_value: - type: boolean - description: 'If `true`, allows the custom field to store a set of values. Must match the Field''s `multi_value` setting.' - required: - - multi_value - id: - type: string - readOnly: true - description: The ID of the resource. - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - required: - description: 'If `true`, this Field must always have a value set for objects using this schema.' - type: boolean - CustomFieldsEditableSchemaAssignment: - type: object - properties: - schema: - type: object - properties: - id: - type: string - description: The schema ID - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - description: 'A string that determines the type of the reference. This must be the standard name for the entity, suffixed by `_reference`.' - enum: - - schema_reference - self: - type: string - nullable: true - readOnly: true - format: url - description: The API show URL at which the object is accessible - required: - - id - - type - service: - type: object - properties: - id: - type: string - description: The service ID - type: - type: string - description: 'A string that determines the type of the reference. This must be the standard name for the entity, suffixed by `_reference`.' - enum: - - service_reference - required: - - id - - type - CustomFieldsSchemaAssignment: - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableSchemaAssignment' - - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - enum: - - schema_assignment - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - required: - - id - - type - - created_at - - updated_at - CustomFieldsCreatableSchema: - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableSchema' - required: - - title - CustomFieldsSchemaWithConfigurations: - allOf: - - $ref: '#/components/schemas/CustomFieldsSchemaWithTimestamps' - - type: object - properties: - field_configurations: - type: array - readOnly: true - items: - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference/allOf/0' - - type: object - properties: - field: - description: The Field to be included in this schema. Each Field may only be used in one Field Configuration per schema. - allOf: - - $ref: '#/components/schemas/CustomFieldsField' - maxItems: 20 - uniqueItems: true - required: - - title - - description - CustomFieldsEditableSchema: - allOf: - - $ref: '#/components/schemas/CustomFieldsSchemaWithTimestamps' - - type: object - properties: - field_configurations: - type: array - items: - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference' - maxItems: 20 - uniqueItems: true - CustomFieldsFieldConfigurationWithFieldOrFieldReference: - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference/allOf/0' - - type: object - properties: - field: - description: The Field to be included in this schema. Each Field may only be used in one Field Configuration per schema. - oneOf: - - $ref: '#/components/schemas/CustomFieldsField' - - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference/allOf/1/properties/field/allOf/0' - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: + field: + data_type: string + name: environment + display_name: Environment + description: The environment that the issue occurred in + field_type: multi_value_fixed + default_value: + - production + - staging + field_options: + - data: + data_type: string + value: production + - data: + data_type: string + value: staging + request3: + summary: 'Example: Without field_options' + value: + field: + data_type: string + name: environment + display_name: Environment + description: The environment that the issue occurred in + field_type: single_value + default_value: production + responses: + '201': + description: The field object created, along with the Field Options if provided. + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/CustomFieldsFieldWithOptions' + required: + - field + examples: + response1: + summary: 'Example: With field_options and single-value' + value: + field: + id: P5IYCNZ + type: field + summary: environment + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + name: environment + display_name: Environment + field_type: single_value_fixed + description: The environment that the issue occurred in + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + default_value: staging + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: staging + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + response2: + summary: 'Example: With field_options and multi-value' + value: + field: + id: P5IYCNZ + type: field + summary: environment + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + name: environment + display_name: Environment + field_type: multi_value_fixed + description: The environment that the issue occurred in + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + default_value: + - production + - staging + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: staging + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + response3: + summary: 'Example: Without field_options' + value: + field: + id: P5IYCNZ + type: field + summary: environment + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + field_type: single_value + name: environment + display_name: Environment + description: The environment that the issue occurred in + default_value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '500': + $ref: '#/components/responses/InternalServerError' + get: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: listCustomFieldsFields + description: | - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + List Custom Fields on the Base Incident Type. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `custom_fields.read` + summary: List Fields + deprecated: true + parameters: + - $ref: '#/components/parameters/include_customfields_field' + responses: + '200': + description: A list of fields. + content: + application/json: + schema: + type: object + properties: + fields: + type: array + items: + $ref: '#/components/schemas/CustomFieldsFieldWithOptions' + required: + - fields + examples: + response: + summary: Response Example + value: + fields: + - id: P5IYCNZ + type: field + summary: environment + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + name: environment + display_name: Environment + description: The environment that the issue occurred in + field_type: single_value_fixed + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + default_value: null + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: abc + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '500': + $ref: '#/components/responses/InternalServerError' + description: Create and list Fields on Incidents + /incidents/custom_fields/{field_id}: + get: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: getCustomFieldsField + description: | - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id} - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + Show detailed information about a Custom Field on the Base Incident Type. - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header + Scoped OAuth requires: `custom_fields.read` + summary: Get a Field + deprecated: true + parameters: + - $ref: '#/components/parameters/field_id' + - $ref: '#/components/parameters/include_customfields_field' + responses: + '200': + description: The field requested. + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/CustomFieldsFieldWithOptions' + required: + - field + examples: + response1: + summary: 'Example: No query parameters' + value: + field: + id: P5IYCNZ + type: field + summary: environment + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + name: environment + display_name: Environment + description: The environment that the issue occurred in + field_type: multi_value + default_value: null + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + response2: + summary: 'Example: Using include[]=field_options' + value: + field: + id: P5IYCNZ + type: field + summary: environment + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + name: environment + display_name: Environment + description: The environment that the issue occurred in + field_type: single_value_fixed + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + default_value: null + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: staging + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: updateCustomFieldsField description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id} + + Update a Custom Field on the Base Incident Type. + + Scoped OAuth requires: `custom_fields.write` + summary: Update a Field + deprecated: true + parameters: + - $ref: '#/components/parameters/field_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/CustomFieldsEditableField' + required: + - field + examples: + request: + summary: Request Example + value: + field: + display_name: New Display Name! + description: New description! + responses: + '200': + description: The field object updated. + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/CustomFieldsField' + required: + - field + examples: + response: + summary: Response Example + value: + field: + id: P5IYCNZ + type: field + summary: old_name + self: https://api.pagerduty.com/incidents/custom_fields/P5IYCNZ + data_type: string + name: old_name + display_name: New Display Name! + description: New description! + field_type: single_value + default_value: null + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: deleteCustomFieldsField description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id} - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header + Delete a Custom Field from the Base Incident Type. + + Scoped OAuth requires: `custom_fields.write` + summary: Delete a Field + deprecated: true + parameters: + - $ref: '#/components/parameters/field_id' + responses: + '204': + description: The field was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get, update and delete a field. + /incidents/custom_fields/{field_id}/field_options: + post: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: createCustomFieldsFieldOption description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: + + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id}/field_options + + Create a new Field Option for a Custom Field on the Base Incident Type. Field Options may only be created for Fields that have `field_options`. A Field may have no more than 10 enabled options. + + Scoped OAuth requires: `custom_fields.write` + summary: Create a Field Option + deprecated: true + parameters: + - $ref: '#/components/parameters/field_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsFieldOption' + required: + - field_option + examples: + request: + summary: Request Example + value: + field_option: + data: + data_type: string + value: production + responses: + '201': + description: The field option created. + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsFieldOption' + required: + - field_option + examples: + response: + summary: Response Example + value: + field_option: + id: PQ9K7I8 + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + get: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: listCustomFieldsFieldOptions description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: + + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id}/field_options + + List all enabled Field Options for a Custom Field on the Base Incident Type. + + Scoped OAuth requires: `custom_fields.read` + summary: List Field Options + deprecated: true + parameters: + - $ref: '#/components/parameters/field_id' + responses: + '200': + description: A list of field options. + content: + application/json: + schema: type: object properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: + field_options: type: array - readOnly: true items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - customfields_fields: - id: pagerduty.custom_fields.customfields_fields - name: customfields_fields - title: Customfields Fields - methods: - create_custom_fields_field: - operation: - $ref: '#/paths/~1customfields~1fields/post' - response: - mediaType: application/json - openAPIDocKey: '201' - list_custom_fields_fields: - operation: - $ref: '#/paths/~1customfields~1fields/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.fields - _list_custom_fields_fields: - operation: - $ref: '#/paths/~1customfields~1fields/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_custom_fields_field: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.field - _get_custom_fields_field: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_custom_fields_field: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_custom_fields_field: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/customfields_fields/methods/get_custom_fields_field' - - $ref: '#/components/x-stackQL-resources/customfields_fields/methods/list_custom_fields_fields' - insert: - - $ref: '#/components/x-stackQL-resources/customfields_fields/methods/create_custom_fields_field' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/customfields_fields/methods/delete_custom_fields_field' - customfields_fields_field_options: - id: pagerduty.custom_fields.customfields_fields_field_options - name: customfields_fields_field_options - title: Customfields Fields Field Options - methods: - create_custom_fields_field_option: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options/post' - response: - mediaType: application/json - openAPIDocKey: '201' - list_custom_fields_field_options: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.field_options - _list_custom_fields_field_options: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_custom_fields_field_option: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options~1{field_option_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.field_option - _get_custom_fields_field_option: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options~1{field_option_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_custom_fields_field_option: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options~1{field_option_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_custom_fields_field_option: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1field_options~1{field_option_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/customfields_fields_field_options/methods/get_custom_fields_field_option' - - $ref: '#/components/x-stackQL-resources/customfields_fields_field_options/methods/list_custom_fields_field_options' - insert: - - $ref: '#/components/x-stackQL-resources/customfields_fields_field_options/methods/create_custom_fields_field_option' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/customfields_fields_field_options/methods/delete_custom_fields_field_option' - fields_schemas: - id: pagerduty.custom_fields.fields_schemas - name: fields_schemas - title: Fields Schemas - methods: - list_custom_fields_schemas_using_field: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schemas - _list_custom_fields_schemas_using_field: - operation: - $ref: '#/paths/~1customfields~1fields~1{field_id}~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/fields_schemas/methods/list_custom_fields_schemas_using_field' - insert: [] - update: [] - delete: [] - schema_assignments: - id: pagerduty.custom_fields.schema_assignments - name: schema_assignments - title: Schema Assignments - methods: - create_custom_fields_schema_assignment: - operation: - $ref: '#/paths/~1customfields~1schema_assignments/post' - response: - mediaType: application/json - openAPIDocKey: '201' - list_schema_assignments: - operation: - $ref: '#/paths/~1customfields~1schema_assignments/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schema_assignments - _list_schema_assignments: - operation: - $ref: '#/paths/~1customfields~1schema_assignments/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_schema_assignment: - operation: - $ref: '#/paths/~1customfields~1schema_assignments~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/schema_assignments/methods/list_schema_assignments' - insert: - - $ref: '#/components/x-stackQL-resources/schema_assignments/methods/create_custom_fields_schema_assignment' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/schema_assignments/methods/delete_schema_assignment' - schemas: - id: pagerduty.custom_fields.schemas - name: schemas - title: Schemas - methods: - create_custom_fields_schema: - operation: - $ref: '#/paths/~1customfields~1schemas/post' - response: - mediaType: application/json - openAPIDocKey: '201' - list_custom_fields_schemas: - operation: - $ref: '#/paths/~1customfields~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schemas - _list_custom_fields_schemas: - operation: - $ref: '#/paths/~1customfields~1schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_custom_fields_schema: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schema - _get_custom_fields_schema: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_custom_fields_schema: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_custom_fields_schema: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/schemas/methods/get_custom_fields_schema' - - $ref: '#/components/x-stackQL-resources/schemas/methods/list_custom_fields_schemas' - insert: - - $ref: '#/components/x-stackQL-resources/schemas/methods/create_custom_fields_schema' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/schemas/methods/delete_custom_fields_schema' - field_configurations: - id: pagerduty.custom_fields.field_configurations - name: field_configurations - title: Field Configurations - methods: - create_custom_fields_field_configuration: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - list_custom_fields_field_configurations: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.field_configurations - _list_custom_fields_field_configurations: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_custom_fields_field_configuration: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations~1{field_configuration_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.field_configuration - _get_custom_fields_field_configuration: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations~1{field_configuration_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_custom_fields_field_configuration: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations~1{field_configuration_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_custom_fields_field_configuration: - operation: - $ref: '#/paths/~1customfields~1schemas~1{schema_id}~1field_configurations~1{field_configuration_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/field_configurations/methods/get_custom_fields_field_configuration' - - $ref: '#/components/x-stackQL-resources/field_configurations/methods/list_custom_fields_field_configurations' - insert: - - $ref: '#/components/x-stackQL-resources/field_configurations/methods/create_custom_fields_field_configuration' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/field_configurations/methods/delete_custom_fields_field_configuration' -paths: - /customfields/fields: - post: + $ref: '#/components/schemas/CustomFieldsFieldOption' + required: + - field_options + examples: + response: + summary: Response Example + value: + field_options: + - id: PQ9K7I8 + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Create new option for the given field_options (e.g., enum) field and list all options for the given field. + /incidents/custom_fields/{field_id}/field_options/{field_option_id}: + put: + tags: + - Incident Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: updateCustomFieldsFieldOption + description: | + + + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id}/field_options/{field_option_id} + + Update a Field Option for a Custom Field on the Base Incident Type. + + Scoped OAuth requires: `custom_fields.write` + summary: Update a Field Option + deprecated: true + parameters: + - $ref: '#/components/parameters/field_id' + - $ref: '#/components/parameters/field_option_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + required: + - field_option + examples: + request: + summary: Request Example + value: + field_option: + data: + data_type: string + value: prod + responses: + '200': + description: The field option object updated. + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsFieldOption' + required: + - field_option + examples: + response: + summary: Response Example + value: + field_option: + id: PQ9K7I8 + type: field_option + data: + data_type: string + value: prod + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: tags: - - Custom Fields - operationId: createCustomFieldsField + - Incident Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: deleteCustomFieldsFieldOption description: | - Create a new Field, along with the Field Options if provided. An account may have up to 1000 Fields. - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Create a Field + > ### Deprecated + > This endpoint is deprecated and only works for fields on the Base Incident Type. \ + > For more flexibility, we recommend using the Incident Types endpoint: \ + > /incidents/types/{type_id_or_name}/custom_fields/{field_id}/field_options/{field_option_id} + + Delete a Field Option for a Custom Field on the Base Incident Type. + + Scoped OAuth requires: `custom_fields.write` + summary: Delete a Field Option + deprecated: true parameters: - - $ref: '#/components/parameters/early_access_customfields' + - $ref: '#/components/parameters/field_id' + - $ref: '#/components/parameters/field_option_id' + responses: + '204': + description: The field option was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Update field option. + /services/custom_fields: + post: + tags: + - Service Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: createServiceCustomField + description: | + Creates a new Custom Field for Services, along with the Field Options if provided. + + Scoped OAuth requires: `custom_fields.write` + summary: Create a Field + parameters: [] requestBody: content: application/json: @@ -3448,87 +684,175 @@ paths: type: object properties: field: - $ref: '#/components/schemas/CustomFieldsFieldWithOptions' + $ref: '#/components/schemas/ServiceCustomFieldsFieldCreateModel' required: - field examples: request1: - summary: 'Example: With field_options' + summary: 'Example: With field_options and single-value' value: field: - datatype: string - name: environment + data_type: string + description: The environment that the service operates in display_name: Environment - fixed_options: true - multi_value: false - description: The environment that the issue occurred in + enabled: true field_options: - data: - datatype: string + data_type: string value: production + - data: + data_type: string + value: staging + - data: + data_type: string + value: development + field_type: single_value_fixed + name: environment request2: + summary: 'Example: With field_options and multi-value' + value: + field: + data_type: string + description: The regions where this service is deployed + display_name: Supported Regions + enabled: true + field_options: + - data: + data_type: string + value: us-east-1 + - data: + data_type: string + value: us-west-1 + - data: + data_type: string + value: eu-west-1 + - data: + data_type: string + value: ap-southeast-1 + field_type: multi_value_fixed + name: supported_regions + request3: summary: 'Example: Without field_options' value: field: - datatype: string - name: environment - display_name: Environment - fixed_options: true - multi_value: false - description: The environment that the issue occurred in + data_type: string + description: The team that owns this service + display_name: Team Owner + enabled: true + field_type: single_value + name: team_owner responses: '201': - description: 'The field object created, along with the Field Options if provided.' + description: The field object created, along with the Field Options if provided. content: application/json: schema: type: object properties: field: - $ref: '#/components/schemas/CustomFieldsFieldWithOptions' + $ref: '#/components/schemas/ServiceCustomFieldsFieldReadModel' required: - field examples: response1: - summary: 'Example: With field_options' + summary: 'Example: With field_options and single-value' value: field: - id: P5IYCNZ - type: field - summary: environment - self: 'https://api.pagerduty.com/customfields/fields/P5IYCNZ' - datatype: string - name: environment + created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The environment that the service operates in display_name: Environment - multi_value: false - fixed_options: true - description: The environment that the issue occurred in - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + enabled: true field_options: - - id: PT4KHEE - type: field_option + - created_at: '2023-01-01T00:00:00Z' data: - datatype: string + data_type: string value: production - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + id: OPT1 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: staging + id: OPT2 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: development + id: OPT3 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + field_type: single_value_fixed + id: ABCDEF1 + name: environment + self: https://api.pagerduty.com/services/custom_fields/ABCDEF1 + summary: Environment + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' response2: + summary: 'Example: With field_options and multi-value' + value: + field: + created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The regions where this service is deployed + display_name: Supported Regions + enabled: true + field_options: + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: us-east-1 + id: OPT4 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: us-west-1 + id: OPT5 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: eu-west-1 + id: OPT6 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: ap-southeast-1 + id: OPT7 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + field_type: multi_value_fixed + id: ABCDEF2 + name: supported_regions + self: https://api.pagerduty.com/services/custom_fields/ABCDEF2 + summary: Supported Regions + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + response3: summary: 'Example: Without field_options' value: field: - id: P5IYCNZ - type: field - summary: environment - self: 'https://api.pagerduty.com/customfields/fields/P5IYCNZ' - datatype: string - name: environment - display_name: Environment - multi_value: false - fixed_options: false - description: The environment that the issue occurred in - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The team that owns this service + display_name: Team Owner + enabled: true + field_type: single_value + id: ABCDEF3 + name: team_owner + self: https://api.pagerduty.com/services/custom_fields/ABCDEF3 + summary: Team Owner + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' '400': $ref: '#/components/responses/ArgumentError' '403': @@ -3537,85 +861,179 @@ paths: $ref: '#/components/responses/InternalServerError' get: tags: - - Custom Fields - operationId: listCustomFieldsFields + - Service Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: listServiceCustomFields description: | - List fields. + List Custom Fields available for Services. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.read` summary: List Fields parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - $ref: '#/components/parameters/include_customfields_field' - - $ref: '#/components/parameters/early_access_customfields' responses: '200': - description: A paginated list of fields. + description: A list of fields. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - fields: - type: array - items: - $ref: '#/components/schemas/CustomFieldsFieldWithOptions' - required: - - fields + type: object + properties: + fields: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldReadModel' examples: response: - summary: Response Example + summary: Response Example (Default) value: fields: - - id: P5IYCNZ - type: field - summary: environment - self: 'https://api.pagerduty.com/customfields/fields/P5IYCNZ' - datatype: string + - created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The environment that the service operates in + display_name: Environment + enabled: true + field_type: single_value_fixed + id: ABCDEF1 name: environment + self: https://api.pagerduty.com/services/custom_fields/ABCDEF1 + summary: Environment + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The regions where this service is deployed + display_name: Supported Regions + enabled: true + field_type: multi_value_fixed + id: ABCDEF2 + name: supported_regions + self: https://api.pagerduty.com/services/custom_fields/ABCDEF2 + summary: Supported Regions + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The team that owns this service + display_name: Team Owner + enabled: true + field_type: single_value + id: ABCDEF3 + name: team_owner + self: https://api.pagerduty.com/services/custom_fields/ABCDEF3 + summary: Team Owner + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + response_with_options: + summary: Response Example (With field_options included) + value: + fields: + - created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The environment that the service operates in display_name: Environment - description: The environment that the issue occurred in - multi_value: false - fixed_options: true - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + enabled: true field_options: - - id: PT4KHEE + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: production + id: OPT1 type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' data: - datatype: string - value: abc - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - limit: 1 - offset: 0 - more: true + data_type: string + value: staging + id: OPT2 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: development + id: OPT3 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + field_type: single_value_fixed + id: ABCDEF1 + name: environment + self: https://api.pagerduty.com/services/custom_fields/ABCDEF1 + summary: Environment + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The regions where this service is deployed + display_name: Supported Regions + enabled: true + field_options: + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: us-east-1 + id: OPT4 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: us-west-1 + id: OPT5 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: eu-west-1 + id: OPT6 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: ap-southeast-1 + id: OPT7 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + field_type: multi_value_fixed + id: ABCDEF2 + name: supported_regions + self: https://api.pagerduty.com/services/custom_fields/ABCDEF2 + summary: Supported Regions + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The team that owns this service + display_name: Team Owner + enabled: true + field_type: single_value + id: ABCDEF3 + name: team_owner + self: https://api.pagerduty.com/services/custom_fields/ABCDEF3 + summary: Team Owner + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' '400': $ref: '#/components/responses/ArgumentError' '500': $ref: '#/components/responses/InternalServerError' - '/customfields/fields/{field_id}': + description: Create and list Fields on Services + /services/custom_fields/{field_id}: get: tags: - - Custom Fields - operationId: getCustomFieldsField + - Service Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: getServiceCustomField description: | - Show detailed information about a field. + Show detailed information about a Custom Field for Services. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.read` summary: Get a Field parameters: - $ref: '#/components/parameters/field_id' - $ref: '#/components/parameters/include_customfields_field' - - $ref: '#/components/parameters/early_access_customfields' responses: '200': description: The field requested. @@ -3625,50 +1043,62 @@ paths: type: object properties: field: - $ref: '#/components/schemas/CustomFieldsFieldWithOptions' - required: - - field + $ref: '#/components/schemas/ServiceCustomFieldsFieldReadModel' examples: - response1: - summary: 'Example: No query parameters' + response: + summary: Response Example (Default) value: field: - id: P5IYCNZ - type: field - summary: environment - self: 'https://api.pagerduty.com/customfields/fields/P5IYCNZ' - datatype: string - name: environment + created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The environment that the service operates in display_name: Environment - description: The environment that the issue occurred in - multi_value: false - fixed_options: true - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - response2: - summary: 'Example: Using include[]=field_options' + enabled: true + field_type: single_value_fixed + id: ABCDEF1 + name: environment + self: https://api.pagerduty.com/services/custom_fields/ABCDEF1 + summary: Environment + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' + response_with_options: + summary: Response Example (With field_options included) value: field: - id: P5IYCNZ - type: field - summary: environment - self: 'https://api.pagerduty.com/customfields/fields/P5IYCNZ' - datatype: string - name: environment + created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The environment that the service operates in display_name: Environment - description: The environment that the issue occurred in - multi_value: false - fixed_options: true - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + enabled: true field_options: - - id: PT4KHEE + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: production + id: OPT1 type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' data: - datatype: string - value: abc - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + data_type: string + value: staging + id: OPT2 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: development + id: OPT3 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + field_type: single_value_fixed + id: ABCDEF1 + name: environment + self: https://api.pagerduty.com/services/custom_fields/ABCDEF1 + summary: Environment + type: custom_fields_field + updated_at: '2023-01-01T00:00:00Z' '403': $ref: '#/components/responses/Forbidden' '404': @@ -3677,19 +1107,16 @@ paths: $ref: '#/components/responses/InternalServerError' put: tags: - - Custom Fields - operationId: updateCustomFieldsField + - Service Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: updateServiceCustomField description: | - Update a field. - - + Update a Custom Field for Services. - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.write` summary: Update a Field parameters: - $ref: '#/components/parameters/field_id' - - $ref: '#/components/parameters/early_access_customfields' requestBody: content: application/json: @@ -3697,16 +1124,36 @@ paths: type: object properties: field: - $ref: '#/components/schemas/CustomFieldsEditableField' + $ref: '#/components/schemas/ServiceCustomFieldsFieldUpdateModel' required: - field examples: request: - summary: Request Example + summary: Update Field Example - Basic Properties value: field: - display_name: New Display Name! - description: New description! + description: The production environment where this service is deployed + display_name: Production Environment + enabled: true + request_with_options: + summary: Update Field Example - With Field Options + value: + field: + description: The production environment where this service is deployed + display_name: Production Environment + enabled: true + field_options: + - data: + data_type: string + value: production + id: OPT1 + - data: + data_type: string + value: staging-new + id: OPT2 + - data: + data_type: string + value: development-new responses: '200': description: The field object updated. @@ -3716,26 +1163,46 @@ paths: type: object properties: field: - $ref: '#/components/schemas/CustomFieldsField' - required: - - field + $ref: '#/components/schemas/ServiceCustomFieldsFieldReadModel' examples: response: summary: Response Example value: field: - id: P5IYCNZ - type: field - summary: old_name - self: 'https://api.pagerduty.com/customfields/fields/P5IYCNZ' - datatype: string - name: old_name - display_name: New Display Name! - description: New description! - multi_value: false - fixed_options: false - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + created_at: '2023-01-01T00:00:00Z' + data_type: string + description: The production environment where this service is deployed + display_name: Production Environment + enabled: true + field_options: + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: production + id: OPT1 + type: field_option + updated_at: '2023-01-02T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: staging-new + id: OPT2 + type: field_option + updated_at: '2023-01-02T00:00:00Z' + - created_at: '2023-01-02T00:00:00Z' + data: + data_type: string + value: development-new + id: OPT4 + type: field_option + updated_at: '2023-01-02T00:00:00Z' + field_type: single_value_fixed + id: ABCDEF1 + name: environment + self: https://api.pagerduty.com/services/custom_fields/ABCDEF1 + summary: Production Environment + type: custom_fields_field + updated_at: '2023-01-02T00:00:00Z' '400': $ref: '#/components/responses/ArgumentError' '403': @@ -3746,18 +1213,16 @@ paths: $ref: '#/components/responses/InternalServerError' delete: tags: - - Custom Fields - operationId: deleteCustomFieldsField + - Service Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: deleteServiceCustomField description: | - Delete a Field. Fields may not be deleted if they are used by a Field Schema. + Delete a Custom Field from Services. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.write` summary: Delete a Field parameters: - $ref: '#/components/parameters/field_id' - - $ref: '#/components/parameters/early_access_customfields' responses: '204': description: The field was deleted successfully. @@ -3769,21 +1234,78 @@ paths: $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' - '/customfields/fields/{field_id}/field_options': + description: Get, update and delete a field. + /services/custom_fields/{field_id}/field_options: + get: + tags: + - Service Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: listServiceCustomFieldOptions + description: | + List all options for a given field. + + Scoped OAuth requires: `custom_fields.read` + summary: List Field Options + parameters: + - $ref: '#/components/parameters/field_id' + responses: + '200': + description: List of field options. + content: + application/json: + schema: + type: object + properties: + field_options: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionReadModel' + examples: + response: + summary: Response Example + value: + field_options: + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: production + id: OPT1 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: staging + id: OPT2 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + - created_at: '2023-01-01T00:00:00Z' + data: + data_type: string + value: development + id: OPT3 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' post: tags: - - Custom Fields - operationId: createCustomFieldsFieldOption + - Service Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: createServiceCustomFieldOption description: | - Create a new Field Option. Field Options may only be created for Fields where `fixed_options` is `true`. A Field may have no more than 10 enabled options. + Create a new option for the given field. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.write` summary: Create a Field Option parameters: - $ref: '#/components/parameters/field_id' - - $ref: '#/components/parameters/early_access_customfields' requestBody: content: application/json: @@ -3791,7 +1313,7 @@ paths: type: object properties: field_option: - $ref: '#/components/schemas/CustomFieldsFieldOption' + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionUpdateModel' required: - field_option examples: @@ -3800,7 +1322,7 @@ paths: value: field_option: data: - datatype: string + data_type: string value: production responses: '201': @@ -3811,21 +1333,19 @@ paths: type: object properties: field_option: - $ref: '#/components/schemas/CustomFieldsFieldOption' - required: - - field_option + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionReadModel' examples: response: summary: Response Example value: field_option: - id: PQ9K7I8 - type: field_option + created_at: '2023-01-01T00:00:00Z' data: - datatype: string + data_type: string value: production - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + id: OPT1 + type: field_option + updated_at: '2023-01-01T00:00:00Z' '400': $ref: '#/components/responses/ArgumentError' '403': @@ -3834,90 +1354,45 @@ paths: $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' + description: Create new option for the given field_options (e.g., enum) field and list all options for the given field. + /services/custom_fields/{field_id}/field_options/{field_option_id}: get: tags: - - Custom Fields - operationId: listCustomFieldsFieldOptions - description: | - List all enabled Field Options for a Field. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: List Field Options - parameters: - - $ref: '#/components/parameters/field_id' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: A list of field options. - content: - application/json: - schema: - type: object - properties: - field_options: - type: array - items: - $ref: '#/components/schemas/CustomFieldsFieldOption' - required: - - field_options - examples: - response: - summary: Response Example - value: - field_options: - - id: PQ9K7I8 - type: field_option - data: - datatype: string - value: production - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - '/customfields/fields/{field_id}/field_options/{field_option_id}': - get: - tags: - - Custom Fields - operationId: getCustomFieldsFieldOption + - Service Custom Fields + x-pd-requires-scope: custom_fields.read + operationId: getServiceCustomFieldOption description: | - Get a Field Option. + Get a field option for a given field. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Get Field Option + Scoped OAuth requires: `custom_fields.read` + summary: Get a Field Option parameters: - $ref: '#/components/parameters/field_id' - $ref: '#/components/parameters/field_option_id' - - $ref: '#/components/parameters/early_access_customfields' responses: '200': - description: The field option requested. + description: The requested field option. content: application/json: schema: type: object properties: field_option: - $ref: '#/components/schemas/CustomFieldsFieldOption' - required: - - field_option + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionReadModel' examples: response: summary: Response Example value: field_option: - id: PQ9K7I8 - type: field_option + created_at: '2023-01-01T00:00:00Z' data: - datatype: string - value: prod - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + data_type: string + value: production + id: OPT1 + type: field_option + updated_at: '2023-01-01T00:00:00Z' + '400': + $ref: '#/components/responses/ArgumentError' '403': $ref: '#/components/responses/Forbidden' '404': @@ -3926,19 +1401,17 @@ paths: $ref: '#/components/responses/InternalServerError' put: tags: - - Custom Fields - operationId: updateCustomFieldsFieldOption + - Service Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: updateServiceCustomFieldOption description: | - Update Field Option for a Field. + Update a field option for a given field. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.write` summary: Update a Field Option parameters: - $ref: '#/components/parameters/field_id' - $ref: '#/components/parameters/field_option_id' - - $ref: '#/components/parameters/early_access_customfields' requestBody: content: application/json: @@ -3946,7 +1419,7 @@ paths: type: object properties: field_option: - $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionUpdateModel' required: - field_option examples: @@ -3955,32 +1428,30 @@ paths: value: field_option: data: - datatype: string + data_type: string value: prod responses: '200': - description: The field option object updated. + description: The field option updated. content: application/json: schema: type: object properties: field_option: - $ref: '#/components/schemas/CustomFieldsFieldOption' - required: - - field_option + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionReadModel' examples: response: summary: Response Example value: field_option: - id: PQ9K7I8 - type: field_option + created_at: '2023-01-01T00:00:00Z' data: - datatype: string + data_type: string value: prod - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' + id: OPT1 + type: field_option + updated_at: '2023-01-02T00:00:00Z' '400': $ref: '#/components/responses/ArgumentError' '403': @@ -3991,19 +1462,17 @@ paths: $ref: '#/components/responses/InternalServerError' delete: tags: - - Custom Fields - operationId: deleteCustomFieldsFieldOption + - Service Custom Fields + x-pd-requires-scope: custom_fields.write + operationId: deleteServiceCustomFieldOption description: | - Delete a Field Option. + Delete a field option. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `custom_fields.write` summary: Delete a Field Option parameters: - $ref: '#/components/parameters/field_id' - $ref: '#/components/parameters/field_option_id' - - $ref: '#/components/parameters/early_access_customfields' responses: '204': description: The field option was deleted successfully. @@ -4015,920 +1484,1160 @@ paths: $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/InternalServerError' - '/customfields/fields/{field_id}/schemas': - get: - tags: - - Custom Fields - operationId: listCustomFieldsSchemasUsingField - description: | - List all Schemas using the Field. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: List Schemas using Field - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/field_id' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: A paginated list of schemas using the field. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - schemas: - type: array - readOnly: true - items: - $ref: '#/components/schemas/CustomFieldsSchemaWithTimestamps' - required: - - schemas - examples: - response: - summary: Response Example - value: - schemas: - - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: Security Incident - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - limit: 1 - offset: 0 - more: true - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - /customfields/schema_assignments: - post: - tags: - - Custom Fields - operationId: createCustomFieldsSchemaAssignment - description: | - Assign a new Schema to a service - - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Create a Schema Assignment - parameters: - - $ref: '#/components/parameters/early_access_customfields' - requestBody: - content: - application/json: - schema: - type: object + description: Get, update or delete a field option. +components: + schemas: + CustomFieldsFieldWithOptions: + required: + - id + - summary + - self + - type + - created_at + - updated_at + - data_type + - namespace + - name + - display_name + - field_type + type: object + properties: + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + default_value: + oneOf: + - type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + - type: object + title: Integer + properties: + value: + type: integer + nullable: true + - type: object + title: Float + properties: + value: + type: number + nullable: true + - type: object + title: String + properties: + value: + oneOf: + - type: string + maxLength: 200 + nullable: true + - type: array + items: + type: string + maxLength: 200 + maxItems: 10 + uniqueItems: true + nullable: true + - type: object + title: Datetime + properties: + value: + type: string + nullable: true + format: date-time + - type: object + title: Url + properties: + value: + type: string + format: uri + maxLength: 200 + nullable: true + nullable: true + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_options: + type: array + description: The fixed list of value options that may be stored in this field. + items: + $ref: '#/components/schemas/CustomFieldsFieldOption' + nullable: true + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + id: + type: string + readOnly: true + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `display_name`. + type: + type: string + enum: + - field + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + CustomFieldsEditableField: + type: object + properties: + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + default_value: + nullable: true + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + enabled: + type: boolean + description: Whether the field is enabled. + enum: + - true + - false + CustomFieldsField: + required: + - id + - summary + - self + - type + - created_at + - updated_at + - data_type + - namespace + - name + - display_name + - field_type + type: object + properties: + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + default_value: + oneOf: + - type: object + title: Boolean properties: - schema_assignment: - $ref: '#/components/schemas/CustomFieldsEditableSchemaAssignment' - required: - - schema_assignment - examples: - request: - summary: Request Example value: - schema_assignment: - service: - id: PT4KHLX - type: service_reference - schema: - id: PT4KHEE - type: schema_reference - responses: - '201': - description: The schema assignment created. - content: - application/json: - schema: - type: object - properties: - schema_assignment: - $ref: '#/components/schemas/CustomFieldsSchemaAssignment' - required: - - schema_assignment - examples: - response: - summary: Response Example - value: - schema_assignment: - id: P9CBJS2 - type: schema_assignment - service: - id: PT4KHLX - type: service_refence - schema: - id: PT4KHEE - type: schema_reference - summary: The schema summary - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' - get: - tags: - - Custom Fields - operationId: listSchemaAssignments - description: | - List Schema Assignments by `service_id` or `schema_id` - - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: List Schema Assignments - parameters: - - $ref: '#/components/parameters/customfields_query_schema_assignments_filter' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: The list of Assignments - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - schema_assignments: - type: array - items: - $ref: '#/components/schemas/CustomFieldsSchemaAssignment' - required: - - schema_assignments - examples: - response: - summary: Response Example - value: - schema_assignments: - - id: P9CBJS2 - type: schema_assignment - service: - id: PT4KHLX - type: service_reference - schema: - id: PT4KHEE - type: schema_reference - summary: The schema summary - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - limit: 1 - offset: 0 - more: true - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - '/customfields/schema_assignments/{id}': - delete: - tags: - - Custom Fields - operationId: deleteSchemaAssignment - description: | - Remove the Schema assigned to a service - - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Remove a Schema Assignment - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '204': - description: The schema assignment was deleted successfully. - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' - /customfields/schemas: - post: - tags: - - Custom Fields - operationId: createCustomFieldsSchema - description: | - Create a new Schema, along with the Field Configurations if provided. An account may have up to 100 Schemas. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Create a Schema - parameters: - - $ref: '#/components/parameters/early_access_customfields' - requestBody: - content: - application/json: - schema: - type: object + type: boolean + nullable: true + - type: object + title: Integer properties: - schema: - $ref: '#/components/schemas/CustomFieldsCreatableSchema' - required: - - schema - examples: - request1: - summary: 'Example: With field_configurations' value: - schema: - title: Security Incident - description: Default schema to use for security incidents - field_configurations: - - field: - id: PT4KZZZ - type: field_reference - required: false - request2: - summary: 'Example: Without field_configurations' + type: integer + nullable: true + - type: object + title: Float + properties: value: - schema: - title: Security Incident - description: Default schema to use for security incidents - responses: - '201': - description: 'The schema object created, along with the Field Configurations if provided.' - content: - application/json: - schema: + type: number + nullable: true + - type: object + title: String + properties: + value: + oneOf: + - type: string + maxLength: 200 + nullable: true + - type: array + items: + type: string + maxLength: 200 + maxItems: 10 + uniqueItems: true + nullable: true + - type: object + title: Datetime + properties: + value: + type: string + nullable: true + format: date-time + - type: object + title: Url + properties: + value: + type: string + format: uri + maxLength: 200 + nullable: true + nullable: true + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + id: + type: string + readOnly: true + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `display_name`. + type: + type: string + enum: + - field + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + CustomFieldsFieldOption: + type: object + properties: + data: + discriminator: + propertyName: data_type + mapping: + string: '#/paths/~1incidents~1custom_fields/get/responses/200/content/application~1json/schema/allOf/0/properties/fields/items/allOf/0/properties/field_options/items/allOf/0/properties/data/oneOf/0' + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 100 + required: + - data_type + - value + id: + type: string + readOnly: true + description: The ID of the resource. + type: + type: string + enum: + - field_option + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + required: + - id + - type + - created_at + - updated_at + - data + description: '' + CustomFieldsEditableFieldOption: + type: object + properties: + data: + discriminator: + propertyName: data_type + mapping: + string: '#/paths/~1incidents~1custom_fields/get/responses/200/content/application~1json/schema/allOf/0/properties/fields/items/allOf/0/properties/field_options/items/allOf/0/properties/data/oneOf/0' + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 100 + required: + - data_type + - value + id: + type: string + readOnly: true + description: The ID of the resource. + type: + type: string + enum: + - field_option + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + required: + - id + - type + - created_at + - updated_at + description: '' + ServiceCustomFieldsFieldCreateModel: + type: object + description: Details of the custom field to be created. + properties: + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + enabled: + type: boolean + description: Whether the field is enabled. + enum: + - true + - false + field_options: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionUpdateModel' + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + required: + - data_type + - display_name + - field_type + - name + ServiceCustomFieldsFieldReadModel: + type: object + description: Details of the custom field. + properties: + created_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was created at. + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + enabled: + type: boolean + description: Whether the field is enabled. + enum: + - true + - false + field_options: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionReadModel' + description: The options for the custom field. Applies only to `single_value_fixed` and `multi_value_fixed` field types. These options are returned only if the `include[]` parameter specifies `field_options`. + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + id: + type: string + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `display_name`. + type: + type: string + enum: + - field + readOnly: true + updated_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was updated at. + ServiceCustomFieldsFieldUpdateModel: + type: object + description: Details of the custom field to be updated. + properties: + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + enabled: + type: boolean + description: Whether the field is enabled. + enum: + - true + - false + field_options: + type: array + items: + type: object + description: An option for a custom field. Can only be applied to fields with a `field_type` of `single_value_fixed` or `multi_value_fixed`. + properties: + data: type: object + description: The data content of the field option. properties: - schema: - $ref: '#/components/schemas/CustomFieldsSchemaWithConfigurations' - required: - - schema - examples: - response1: - summary: 'Example: With field_configurations' - value: - schema: - id: PT20YPA - type: schema - summary: Security Incident - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - title: Security Incident - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - field_configurations: - - id: PT4KHEE - type: field_configuration - required: false - default_value: null - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - field: - id: PT4KZZZ - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - display_name: Environment - description: null - datatype: string - multi_value: true - fixed_options: false - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - response2: - summary: 'Example: Without field_configurations' - value: - schema: - id: PT20YPA - type: schema - summary: Security Incident - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - title: Security Incident - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' - get: - tags: - - Custom Fields - operationId: listCustomFieldsSchemas - description: | - List all Schemas. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: List Schemas - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: A paginated list of schemas. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - schemas: - type: array - readOnly: true - items: - $ref: '#/components/schemas/CustomFieldsSchemaWithTimestamps' - required: - - schemas - examples: - response: - summary: Response Example + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string value: - schemas: - - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: Security Incident - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - limit: 1 - offset: 0 - more: true - '400': - $ref: '#/components/responses/ArgumentError' - '500': - $ref: '#/components/responses/InternalServerError' - '/customfields/schemas/{schema_id}': - get: - tags: - - Custom Fields - operationId: getCustomFieldsSchema - description: | - Get detailed information about a Schema. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Get a Schema - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/include_customfields_schema' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: The schema requested. - content: - application/json: - schema: - type: object - properties: - schema: - $ref: '#/components/schemas/CustomFieldsSchemaWithConfigurations' + type: string + description: The value of the field option. Must be unique within the field. + maxLength: 200 required: - - schema - examples: - response1: - summary: 'Example: No query parameters' - value: - schema: - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: Security Incident - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - response2: - summary: 'Example: Using include[]=field_configurations' - value: - schema: - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: Security Incident - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - field_configurations: - - id: PT4KHEE - type: field_configuration - field: - id: PT4KZZZ - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - description: null - display_name: Environment - datatype: string - multi_value: true - fixed_options: false - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - put: - tags: - - Custom Fields - operationId: updateCustomFieldsSchema - description: | - Update a Schema, along with the Field Configurations if provided. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Update a Schema - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/early_access_customfields' - requestBody: - content: - application/json: - schema: - type: object - properties: - schema: - $ref: '#/components/schemas/CustomFieldsEditableSchema' - required: - - schema - examples: - request1: - summary: 'Example: With field_configurations' - value: - schema: - title: New title! - field_configurations: - - field: - id: PT4KZZZ - type: field_reference - required: false - request2: - summary: 'Example: Without field_configurations' - value: - schema: - title: New title! - responses: - '200': - description: 'The schema object updated, along with the Field Configurations if provided.' - content: - application/json: - schema: + - data_type + - value + id: + type: string + description: | + The unique identifier of the field option. How this field is used determines the behavior: + - When included with a valid `id`: Updates the corresponding existing field option + - When omitted or null: Creates a new field option + required: + - data + description: | + List of field options to update, insert or delete. This field supports several behaviors: + - Empty array: Deletes all field options + - Omitting the `field_options` array entirely: Preserves all existing options + - Not listing an existing option: Deletes that option (unless it's the current default value) + ServiceCustomFieldsFieldOptionReadModel: + type: object + properties: + created_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was created at. + data: + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 200 + id: + type: string + description: The ID of the resource. + type: + type: string + enum: + - field_option + updated_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was updated at. + ServiceCustomFieldsFieldOptionUpdateModel: + type: object + description: An option for a custom field. Can only be applied to fields with a `field_type` of `single_value_fixed` or `multi_value_fixed`. + properties: + data: + type: object + description: The data content of the field option. + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + description: The value of the field option. Must be unique within the field. + maxLength: 200 + required: + - data_type + - value + required: + - data + CustomFieldsFieldValue: + type: object + properties: + id: + type: string + description: Id of the field. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + description: Determines the type of the reference. + enum: + - field_value + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + value: + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + required: + - id + - type + - name + - value + - display_name + - data_type + - field_type + - description + IncidentTypeCustomFields: + type: object + properties: + enabled: + type: boolean + description: Whether the custom field is enabled. + readOnly: true + id: + type: string + readOnly: true + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + enum: + - field + readOnly: true + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + updated_at: + type: string + format: date-time + description: The date/time the custom field was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the custom field was created at. + readOnly: true + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + default_value: + nullable: true + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + incident_type: + type: string + description: The id of the incident type the custom field is associated with. + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + field_options: + type: array + items: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + description: The options for the custom field. + required: + - id + - summary + - self + - type + - name + - display_name + - created_at + - updated_at + - data_type + - field_type + - enabled + - incident_type + - field_options + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - schema: - $ref: '#/components/schemas/CustomFieldsSchemaWithConfigurations' - required: - - schema - examples: - response1: - summary: 'Example: With field_configurations' - value: - schema: - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: New title! - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - field_configurations: - - id: PT4KHEE - type: field_configuration - required: false - default_value: null - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - field: - id: PT4KZZZ - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - display_name: Environment - description: null - datatype: string - multi_value: true - fixed_options: false - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - response2: - summary: 'Example: Without field_configurations' - value: - schema: - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: New title! - description: Default schema to use for security incidents - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - tags: - - Custom Fields - operationId: deleteCustomFieldsSchema - description: | - Delete a Schema. Schemas may not be deleted if they are in use by any Service. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Delete a Schema - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '204': - description: The schema was deleted successfully. - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '409': - $ref: '#/components/responses/Conflict' - '500': - $ref: '#/components/responses/InternalServerError' - '/customfields/schemas/{schema_id}/field_configurations': - post: - tags: - - Custom Fields - operationId: createCustomFieldsFieldConfiguration + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Add a new Field Configuration to an existing Schema. A Schema may use at most 20 Fields, and so may have at most 20 Field Configurations. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Create a Field Configuration - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/early_access_customfields' - requestBody: - content: - application/json: - schema: - type: object - properties: - field_configuration: - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference' - required: - - field_configuration - examples: - request: - summary: Request Example - value: - field_configuration: - field: - id: PT20YPA - type: field_reference - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - responses: - '201': - description: The field configuration object created. - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - field_configuration: - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference' - required: - - field_configuration - examples: - response: - summary: Response Example - value: - id: PT4KHEE - type: field_configuration - field: - id: PT20YPA - type: field_reference - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - get: - tags: - - Custom Fields - operationId: listCustomFieldsFieldConfigurations - description: | - List all Field Configurations for the given Schema. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: List Field Configurations - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/include_customfields_field_configuration' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: A list of field configurations in the schema. - content: - application/json: - schema: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - field_configurations: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldOrFieldReference' - required: - - field_configurations - examples: - response1: - summary: 'Example: No query parameters' - value: - field_configurations: - - id: PT4KHEE - type: field_configuration - field: - id: PT20YPA - type: field_reference - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - response2: - summary: 'Example: Using include[]=fields' - value: - field_configurations: - - id: PT4KHEE - type: field_configuration - field: - id: PT20YPA - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - display_name: Environment - description: null - datatype: string - multi_value: true - fixed_options: false - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - '/customfields/schemas/{schema_id}/field_configurations/{field_configuration_id}': - get: - tags: - - Custom Fields - operationId: getCustomFieldsFieldConfiguration - description: | - Show detailed information about a Field Configuration. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Get a Field Configuration - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/field_configuration_id' - - $ref: '#/components/parameters/include_customfields_field_configuration' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: The field configuration requested. - content: - application/json: - schema: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - field_configuration: - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldOrFieldReference' - required: - - field_configuration - examples: - response1: - summary: 'Example: No query parameters' - value: - field_configuration: - id: PT4KHEE - type: field_configuration - field: - id: PT20YPA - type: field_reference - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - response2: - summary: 'Example: Using include[]=fields' - value: - field_configuration: - id: PT4KHEE - type: field_configuration - field: - id: PT20YPA - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - display_name: Environment - description: null - datatype: string - multi_value: true - fixed_options: false - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - put: - tags: - - Custom Fields - operationId: updateCustomFieldsFieldConfiguration - description: | - Update settings for Field Configuration in Schema. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Update a Field Configuration - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/field_configuration_id' - - $ref: '#/components/parameters/early_access_customfields' - requestBody: - content: - application/json: - schema: - type: object - properties: - field_configuration: - $ref: '#/components/schemas/CustomFieldsEditableFieldConfiguration' - required: - - field_configuration - examples: - request: - summary: Request Example - value: - field_configuration: - required: false - default_value: null - responses: - '200': - description: The field configuration that was updated. - content: - application/json: - schema: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - field_configuration: - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference' - required: - - field_configuration - examples: - response: - summary: Response Example - value: - field_configuration: - id: PT4KHEE - type: field_configuration - field: - id: PT20YPA - type: field_reference - required: false - default_value: null - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - tags: - - Custom Fields - operationId: deleteCustomFieldsFieldConfiguration - description: | - Remove a Field Configuration and its associated Field from a Schema. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Delete a Field Configuration - parameters: - - $ref: '#/components/parameters/schema_id' - - $ref: '#/components/parameters/field_configuration_id' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '204': - description: The field configuration was deleted successfully from the schema. - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + include_customfields_field: + name: include[] + description: Array of additional details to include. + in: query + explode: true + schema: + type: string + enum: + - field_options + uniqueItems: true + field_id: + name: field_id + description: The ID of the field. + in: path + required: true + schema: + type: string + field_option_id: + name: field_option_id + description: The ID of the field option. + in: path + required: true + schema: + type: string + x-stackQL-resources: + incident_fields: + id: pagerduty.custom_fields.incident_fields + name: incident_fields + title: Incident Fields + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1custom_fields/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1incidents~1custom_fields/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.fields + get: + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_fields/methods/get' + - $ref: '#/components/x-stackQL-resources/incident_fields/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/incident_fields/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/incident_fields/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/incident_fields/methods/delete' + replace: [] + incident_field_options: + id: pagerduty.custom_fields.incident_field_options + name: incident_field_options + title: Incident Field Options + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}~1field_options/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}~1field_options/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field_options + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}~1field_options~1{field_option_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1incidents~1custom_fields~1{field_id}~1field_options~1{field_option_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_field_options/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/incident_field_options/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/incident_field_options/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/incident_field_options/methods/delete' + replace: [] + service_fields: + id: pagerduty.custom_fields.service_fields + name: service_fields + title: Service Fields + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1custom_fields/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1services~1custom_fields/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.fields + get: + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_fields/methods/get' + - $ref: '#/components/x-stackQL-resources/service_fields/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/service_fields/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/service_fields/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/service_fields/methods/delete' + replace: [] + service_field_options: + id: pagerduty.custom_fields.service_field_options + name: service_field_options + title: Service Field Options + methods: + list: + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}~1field_options/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field_options + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}~1field_options/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}~1field_options~1{field_option_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field_option + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}~1field_options~1{field_option_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1services~1custom_fields~1{field_id}~1field_options~1{field_option_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_field_options/methods/get' + - $ref: '#/components/x-stackQL-resources/service_field_options/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/service_field_options/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/service_field_options/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/service_field_options/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/enrichment.yaml b/providers/src/pagerduty/v00.00.00000/services/enrichment.yaml new file mode 100644 index 00000000..426991c1 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/enrichment.yaml @@ -0,0 +1,4083 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Enrichment + description: 'Contextual data enrichment: ServiceNow integrations, enrichment schemas and records, and event enrichments.' + version: 2.0.0 +paths: + /enrichment/integrations/servicenow: + get: + tags: + - Enrichment Integrations + summary: List ServiceNow integrations + x-pd-requires-scope: contextual_data.read + operationId: listServiceNowIntegrations + description: | + Lists the ServiceNow enrichment integrations for the account, including their CMDB tables, field mappings, and credentials. Because only one integration is allowed per account, this returns at most one integration. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: [] + responses: + '200': + $ref: '#/components/responses/ServiceNowIntegrationListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Enrichment Integrations + summary: Create a ServiceNow integration + x-pd-requires-scope: contextual_data.write + operationId: createServiceNowIntegration + description: | + Creates a ServiceNow enrichment integration with one or more CMDB table configurations. Only one integration is allowed per account. Each CMDB table must define between 2 and 20 field mappings, and an integration may contain at most 8 tables. Credentials are managed separately through the credentials endpoints. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: [] + requestBody: + $ref: '#/components/requestBodies/ServiceNowIntegrationPostRequest' + responses: + '201': + $ref: '#/components/responses/ServiceNowIntegrationPostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and create ServiceNow enrichment integrations. + /enrichment/integrations/servicenow/{integration_id}: + get: + tags: + - Enrichment Integrations + summary: Get a ServiceNow integration + x-pd-requires-scope: contextual_data.read + operationId: getServiceNowIntegration + description: | + Retrieves a single ServiceNow enrichment integration by ID, including its CMDB tables, field mappings, the current sync status of each table, and credentials. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + responses: + '200': + $ref: '#/components/responses/ServiceNowIntegrationGetResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Enrichment Integrations + summary: Delete a ServiceNow integration + x-pd-requires-scope: contextual_data.write + operationId: deleteServiceNowIntegration + description: | + Deletes a ServiceNow enrichment integration, including all of its CMDB table configurations and their generated enrichment schemas, and disables any associated data synchronization. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + responses: + '204': + description: The ServiceNow integration was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get and delete a specific ServiceNow enrichment integration. + /enrichment/integrations/servicenow/{integration_id}/tables: + post: + tags: + - Enrichment Integrations + summary: Add a CMDB table + x-pd-requires-scope: contextual_data.write + operationId: addServiceNowTable + description: | + Adds a new ServiceNow CMDB table configuration to an existing integration. An integration may contain at most 8 tables. New tables are created with `status: disabled`; enable synchronization separately once the configuration has been validated. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + requestBody: + $ref: '#/components/requestBodies/ServiceNowTablePostRequest' + responses: + '201': + $ref: '#/components/responses/ServiceNowTablePostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Add a CMDB table to a ServiceNow enrichment integration. + /enrichment/integrations/servicenow/{integration_id}/tables/{table_id}: + put: + tags: + - Enrichment Integrations + summary: Update a CMDB table + x-pd-requires-scope: contextual_data.write + operationId: updateServiceNowTable + description: | + Replaces a ServiceNow CMDB table configuration. This is a full replacement — all fields, including `ci_table_name` and the complete `field_mappings` list, must be provided. A table can only be updated while its synchronization is disabled and before its initial backfill has started. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + - $ref: '#/components/parameters/servicenow_table_id' + requestBody: + $ref: '#/components/requestBodies/ServiceNowTablePutRequest' + responses: + '200': + $ref: '#/components/responses/ServiceNowTablePutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Enrichment Integrations + summary: Remove a CMDB table + x-pd-requires-scope: contextual_data.write + operationId: deleteServiceNowTable + description: | + Removes a ServiceNow CMDB table configuration from an integration. The table's generated enrichment schema is removed and its data synchronization is disabled. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + - $ref: '#/components/parameters/servicenow_table_id' + responses: + '204': + description: The CMDB table was removed successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Update and delete a CMDB table configuration. + /enrichment/integrations/servicenow/{integration_id}/tables/{table_id}/enable: + post: + tags: + - Enrichment Integrations + summary: Enable CMDB table sync + x-pd-requires-scope: contextual_data.write + operationId: enableServiceNowTableSync + description: | + Enables data synchronization for a ServiceNow CMDB table configuration. Once enabled, the table's enrichment schema is populated with CI data from ServiceNow and kept up to date with periodic syncs. This operation is idempotent — enabling an already-enabled table succeeds. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + - $ref: '#/components/parameters/servicenow_table_id' + responses: + '200': + $ref: '#/components/responses/ServiceNowTableEnableResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Enable data synchronization for a CMDB table. + /enrichment/integrations/servicenow/{integration_id}/tables/{table_id}/test: + get: + tags: + - Enrichment Integrations + summary: Test a CMDB table + x-pd-requires-scope: contextual_data.read + operationId: testServiceNowTable + description: | + Validates a ServiceNow CMDB table configuration by running a live query against ServiceNow and returning up to 10 sample records. Use this before enabling synchronization to confirm that the credentials, table name, query filter, and mapped fields are correct. Records are returned keyed by ServiceNow field name. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: + - $ref: '#/components/parameters/servicenow_integration_id' + - $ref: '#/components/parameters/servicenow_table_id' + responses: + '200': + $ref: '#/components/responses/ServiceNowTableTestResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Test a CMDB table configuration against live ServiceNow data. + /enrichment/integrations/servicenow/credentials: + post: + tags: + - Enrichment Integrations + summary: Create ServiceNow credentials + x-pd-requires-scope: contextual_data.write + operationId: createServiceNowCredentials + description: | + Creates the ServiceNow API credentials used to authenticate synchronization and test requests. Only one credential set is allowed per account, and it is shared across the account's ServiceNow integration. The password is never returned in responses. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: [] + requestBody: + $ref: '#/components/requestBodies/ServiceNowCredentialsPostRequest' + responses: + '201': + $ref: '#/components/responses/ServiceNowCredentialsPostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Create ServiceNow credentials for the account. + /enrichment/integrations/servicenow/credentials/{credentials_id}: + get: + tags: + - Enrichment Integrations + summary: Get ServiceNow credentials + x-pd-requires-scope: contextual_data.read + operationId: getServiceNowCredentials + description: | + Retrieves the ServiceNow credentials by ID. The password is never returned. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: + - $ref: '#/components/parameters/servicenow_credentials_id' + responses: + '200': + $ref: '#/components/responses/ServiceNowCredentialsGetResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Enrichment Integrations + summary: Update ServiceNow credentials + x-pd-requires-scope: contextual_data.write + operationId: updateServiceNowCredentials + description: | + Updates the ServiceNow credentials. Supports partial updates — only the fields provided in the request are changed. If a password is provided, it replaces the stored password. The password is never returned. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_credentials_id' + requestBody: + $ref: '#/components/requestBodies/ServiceNowCredentialsPutRequest' + responses: + '200': + $ref: '#/components/responses/ServiceNowCredentialsPutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Enrichment Integrations + summary: Delete ServiceNow credentials + x-pd-requires-scope: contextual_data.write + operationId: deleteServiceNowCredentials + description: | + Deletes the ServiceNow credentials. Credentials cannot be deleted while they are associated with an existing ServiceNow integration; delete the integration first. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/servicenow_credentials_id' + responses: + '204': + description: The ServiceNow credentials were deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get, update, and delete ServiceNow credentials. + /enrichment/query: + post: + tags: + - Enrichment Schemas + summary: Query enrichment data + x-pd-requires-scope: contextual_data.read + operationId: queryEnrichmentData + description: | + Query an enrichment schema for records matching a set of field values. Supply up to 3 query fields; all must match. Returns at most one record for standard schemas, or multiple records for schemas that use a discriminator field. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: [] + requestBody: + $ref: '#/components/requestBodies/EnrichmentQueryPostRequest' + responses: + '200': + $ref: '#/components/responses/EnrichmentQueryPostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Query enrichment records by field values. + /enrichment/schemas: + get: + tags: + - Enrichment Schemas + summary: List enrichment schemas + x-pd-requires-scope: contextual_data.read + operationId: listEnrichmentSchemas + description: | + Lists all enrichment schemas for the account. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: [] + responses: + '200': + $ref: '#/components/responses/EnrichmentSchemaListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Enrichment Schemas + summary: Create an enrichment schema + x-pd-requires-scope: contextual_data.write + operationId: createEnrichmentSchema + description: | + Creates an enrichment schema. Provide a JSON body to define the schema explicitly (returns `201`), or upload a CSV file as `multipart/form-data` or `text/csv` to auto-generate a schema from the file's columns — the first column becomes a query field and the rest become enriched fields (returns `202` once the file is accepted for processing). A schema must include 1-3 query fields and at least one enriched field, up to 25 fields total, with unique (case-insensitive) field names. Schemas created through the API are always `CSV`, and an account may have at most 25 CSV schemas. CSV uploads are limited to 10 MB. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/enrichment_csv_filename' + requestBody: + $ref: '#/components/requestBodies/EnrichmentSchemaPostRequest' + responses: + '201': + $ref: '#/components/responses/EnrichmentSchemaPostResponse' + '202': + $ref: '#/components/responses/EnrichmentSchemaCsvCreateResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and create enrichment schemas. + /enrichment/schemas/{schema_id}: + get: + tags: + - Enrichment Schemas + summary: Get an enrichment schema + x-pd-requires-scope: contextual_data.read + operationId: getEnrichmentSchema + description: | + Retrieves a specific enrichment schema by ID. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: + - $ref: '#/components/parameters/enrichment_schema_id' + responses: + '200': + $ref: '#/components/responses/EnrichmentSchemaGetResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Enrichment Schemas + summary: Update an enrichment schema + x-pd-requires-scope: contextual_data.write + operationId: updateEnrichmentSchema + description: | + Updates the name and/or description of an enrichment schema. At least one of `name` or `description` must be provided. Schema fields cannot be changed after creation. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/enrichment_schema_id' + requestBody: + $ref: '#/components/requestBodies/EnrichmentSchemaPutRequest' + responses: + '200': + $ref: '#/components/responses/EnrichmentSchemaPutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Enrichment Schemas + summary: Delete an enrichment schema + x-pd-requires-scope: contextual_data.write + operationId: deleteEnrichmentSchema + description: | + Soft-deletes an enrichment schema and returns the deleted schema. Only `CSV` schemas can be deleted; `SERVICENOW` schemas are managed by the ServiceNow CMDB integration. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/enrichment_schema_id' + responses: + '200': + $ref: '#/components/responses/EnrichmentSchemaDeleteResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get, update, and delete a specific enrichment schema. + /enrichment/schemas/{schema_id}/records: + get: + tags: + - Enrichment Schemas + summary: List enrichment records + x-pd-requires-scope: contextual_data.read + operationId: listEnrichmentRecords + description: | + Retrieves a page of enrichment records for a schema. Results are cursor-paginated. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.read` + parameters: + - $ref: '#/components/parameters/enrichment_schema_id' + - $ref: '#/components/parameters/enrichment_records_limit' + - $ref: '#/components/parameters/enrichment_records_cursor' + responses: + '200': + $ref: '#/components/responses/EnrichmentRecordsListResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Enrichment Schemas + summary: Upload CSV records + x-pd-requires-scope: contextual_data.write + operationId: uploadEnrichmentCsv + description: | + Uploads a CSV file of enrichment records into an existing schema, as `multipart/form-data` or `text/csv`. The file is accepted for asynchronous processing (returns `202`) and is limited to 10 MB. The CSV columns must align with the schema's fields: missing columns result in empty values and extra columns are ignored. Records are keyed by their query-field values, so uploading a row whose query values match an existing record updates that record. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/enrichment_schema_id' + - $ref: '#/components/parameters/enrichment_csv_filename' + requestBody: + $ref: '#/components/requestBodies/EnrichmentRecordsCsvUploadRequest' + responses: + '202': + $ref: '#/components/responses/EnrichmentRecordsCsvUploadResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and upload enrichment records for a schema. + /enrichment/schemas/{schema_id}/records/{record_id}: + delete: + tags: + - Enrichment Schemas + summary: Delete an enrichment record + x-pd-requires-scope: contextual_data.write + operationId: deleteEnrichmentRecord + description: | + Deletes a single enrichment record by ID and returns the deleted record. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Scoped OAuth requires: `contextual_data.write` + parameters: + - $ref: '#/components/parameters/enrichment_schema_id' + - $ref: '#/components/parameters/enrichment_record_id' + responses: + '200': + $ref: '#/components/responses/EnrichmentRecordDeleteResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Delete a specific enrichment record. + /enrichment/event_enrichments: + get: + tags: + - Event Enrichments + summary: List Event Enrichments + operationId: listEventEnrichments + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Retrieve a list of all Event Enrichments in the account. + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/enrichment_include' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Event Enrichments + summary: Create an Event Enrichment + operationId: createEventEnrichment + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Create a new Event Enrichment. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/EventEnrichmentPostRequest' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentPostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and create Event Enrichments. + /enrichment/event_enrichments/default: + get: + tags: + - Event Enrichments + summary: Get the account default Event Enrichment + operationId: getAccountDefaultEventEnrichment + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + The default Event Enrichment gets applied to every Event Orchestration or Service that is not already associated to any other Event Enrichment + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Retrieve the account default Event Enrichment. + parameters: [] + responses: + '200': + $ref: '#/components/responses/EventEnrichmentDefaultGetResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Event Enrichments + summary: Mark an Event Enrichment as the account default + operationId: markEventEnrichmentAsDefault + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + The default Event Enrichment gets applied to every Event Orchestration or Service that is not already associated to any other Event Enrichment + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Mark a specific Event Enrichment as the account default. Set the request body to `default: null` to clear the current default. + parameters: [] + requestBody: + $ref: '#/components/requestBodies/EventEnrichmentDefaultPutRequest' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentDefaultPutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get and set the account default Event Enrichment. + /enrichment/event_enrichments/{id}: + get: + tags: + - Event Enrichments + summary: Get an Event Enrichment + operationId: getEventEnrichment + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Retrieve details of a specific Event Enrichment. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + - $ref: '#/components/parameters/enrichment_include' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentGetResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Event Enrichments + summary: Update an Event Enrichment + operationId: updateEventEnrichment + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Update an existing Event Enrichment. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + requestBody: + $ref: '#/components/requestBodies/EventEnrichmentPutRequest' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentPutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Event Enrichments + summary: Delete an Event Enrichment + operationId: deleteEventEnrichment + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Delete a specific Event Enrichment. The user must have "Delete" privileges for both the Event Enrichment and all of its associated items. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + responses: + '204': + description: The Event Enrichment was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get, update, and delete a specific Event Enrichment. + /enrichment/event_enrichments/{id}/associations: + get: + tags: + - Event Enrichments + summary: List Event Enrichment associations + operationId: listEventEnrichmentAssociations + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + Associating an Event Orchestration or Service with an Event Enrichment allows for the enrichment to be evaluated when events are ingested for that Event Orchestration or Service + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Retrieve all items (Services or Event Orchestrations) associated with an Event Enrichment. If the API key lacks view access to an associated target, that item will not be returned in the results. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + - $ref: '#/components/parameters/enrichment_association_type' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentAssociationListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Event Enrichments + summary: Add Event Enrichment associations + operationId: addEventEnrichmentAssociations + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + Associating an Event Orchestration or Service with an Event Enrichment allows for the enrichment to be evaluated when events are ingested for that Event Orchestration or Service + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Add new associations between an Event Enrichment and Services or Event Orchestrations. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + requestBody: + $ref: '#/components/requestBodies/EventEnrichmentAssociationPostRequest' + responses: + '201': + $ref: '#/components/responses/EventEnrichmentAssociationPostResponse' + '207': + $ref: '#/components/responses/EventEnrichmentAssociationMultiStatusResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Event Enrichments + summary: Delete Event Enrichment associations + operationId: deleteEventEnrichmentAssociations + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + Associating an Event Orchestration or Service with an Event Enrichment allows for the enrichment to be evaluated when events are ingested for that Event Orchestration or Service + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Remove associations between an Event Enrichment and Services or Event Orchestrations. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + requestBody: + $ref: '#/components/requestBodies/EventEnrichmentAssociationDeleteRequest' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentAssociationDeleteResponse' + '207': + $ref: '#/components/responses/EventEnrichmentAssociationMultiStatusResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage associations between an Event Enrichment and Services or Event Orchestrations. + /enrichment/event_enrichments/{id}/rules: + get: + tags: + - Event Enrichments + summary: Get Event Enrichment rules + operationId: getEventEnrichmentRules + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Get the rules associated with an Event Enrichment. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentRulesGetResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Event Enrichments + summary: Update Event Enrichment rules + operationId: updateEventEnrichmentRules + description: | + Event Enrichments allow you to automatically add contextual data to events as they're ingested, so that relevant information is available throughout the event, alert, and incident lifecycle. By leveraging the Contextual Data Platform (CDP), you can define rules that extract values from events or query enrichment schemas to populate event fields. + + + + > ### Early Access + > This API is in Early Access and may change at any time. Contact your PagerDuty account team to request access. + + Update the enrichment rules for a specific Event Enrichment. Performs a full replacement of the rules set. + parameters: + - $ref: '#/components/parameters/event_enrichment_id' + requestBody: + $ref: '#/components/requestBodies/EventEnrichmentRulesPutRequest' + responses: + '200': + $ref: '#/components/responses/EventEnrichmentRulesPutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get and update the enrichment rules for an Event Enrichment. +components: + schemas: + ServiceNowIntegration: + type: object + properties: + id: + type: string + readOnly: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the integration. + name: + type: string + description: The name of the integration. + description: + type: string + nullable: true + description: An optional description of the integration. + cmdb_tables: + type: array + description: The ServiceNow CMDB table configurations belonging to this integration. An integration must have at least 1 and at most 8 tables. + items: + $ref: '#/components/schemas/ServiceNowTable' + credentials: + readOnly: true + nullable: true + description: The ServiceNow credentials associated with the account, or `null` if no credentials have been configured. Credentials are managed through the credentials endpoints, not through this object. + type: object + properties: + id: + type: string + readOnly: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the credentials. + instance_endpoint: + type: string + description: The ServiceNow instance URL (for example, `https://your-instance.service-now.com`). + user: + type: string + description: The ServiceNow username used to authenticate API requests. The user must have read access to the configured CMDB tables. + password: + type: string + writeOnly: true + description: The ServiceNow password. Only accepted in requests and never returned in responses. + created_at: + type: string + format: date-time + readOnly: true + description: The date/time the credentials were created. + updated_at: + type: string + format: date-time + readOnly: true + description: The date/time the credentials were last updated. + deleted_at: + type: string + format: date-time + nullable: true + readOnly: true + description: The date/time the credentials were deleted, or `null` if they have not been deleted. + created_at: + type: string + format: date-time + readOnly: true + description: The date/time the integration was created. + updated_at: + type: string + format: date-time + readOnly: true + description: The date/time the integration was last updated. + ServiceNowTableInput: + type: object + required: + - display_name + - ci_table_name + - field_mappings + properties: + display_name: + type: string + description: A human-readable name for the CMDB table configuration. This name is used to identify the generated enrichment schema in the Event Enrichment rule editor. + ci_table_name: + type: string + description: The name of the ServiceNow CMDB table to synchronize (for example, `cmdb_ci_server` or `cmdb_ci_ip_switch`). Table names are case-sensitive. + query_filter: + type: string + nullable: true + description: An optional ServiceNow encoded query used to limit which records are synchronized from the table (for example, `operational_status=1^u_environment=production`). Set to `null` to synchronize all records. + field_mappings: + type: array + minItems: 2 + maxItems: 20 + description: The mappings between ServiceNow fields and event fields. Must contain between 2 and 20 mappings, including at least one enrichment field. At most 3 mappings may be marked as query fields. + items: + $ref: '#/components/schemas/ServiceNowFieldMappingInput' + ServiceNowTable: + type: object + properties: + id: + type: string + readOnly: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the CMDB table configuration. + display_name: + type: string + description: A human-readable name for the CMDB table configuration. This name is used to identify the generated enrichment schema in the Event Enrichment rule editor. + ci_table_name: + type: string + description: The name of the ServiceNow CMDB table to synchronize (for example, `cmdb_ci_server` or `cmdb_ci_ip_switch`). Table names are case-sensitive. + query_filter: + type: string + nullable: true + description: An optional ServiceNow encoded query used to limit which records are synchronized from the table (for example, `operational_status=1^u_environment=production`). Set to `null` to synchronize all records. + field_mappings: + type: array + description: The mappings between ServiceNow fields and event fields. Must contain between 2 and 20 mappings, including at least one enrichment field. At most 3 mappings may be designated as query fields. + items: + $ref: '#/components/schemas/ServiceNowFieldMapping' + status: + type: string + readOnly: true + description: 'The current data synchronization status of the table. `disabled`: sync is not enabled (the default for newly created tables). `syncing`: an initial sync is in progress. `active`: sync is healthy and incremental updates are running. `error`: sync failed (check the credentials or table configuration).' + enum: + - disabled + - syncing + - active + - error + created_at: + type: string + format: date-time + readOnly: true + description: The date/time the table configuration was created. + updated_at: + type: string + format: date-time + readOnly: true + description: The date/time the table configuration was last updated. + deleted_at: + type: string + format: date-time + nullable: true + readOnly: true + description: The date/time the table configuration was deleted, or `null` if it has not been deleted. + ServiceNowCredentialsInput: + type: object + required: + - instance_endpoint + - user + - password + properties: + instance_endpoint: + type: string + description: The ServiceNow instance URL (for example, `https://your-instance.service-now.com`). + user: + type: string + description: The ServiceNow username used to authenticate API requests. The user must have read access to the configured CMDB tables. + password: + type: string + writeOnly: true + description: The ServiceNow password. Only accepted in requests and never returned in responses. + ServiceNowCredentials: + type: object + properties: + id: + type: string + readOnly: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the credentials. + instance_endpoint: + type: string + description: The ServiceNow instance URL (for example, `https://your-instance.service-now.com`). + user: + type: string + description: The ServiceNow username used to authenticate API requests. The user must have read access to the configured CMDB tables. + password: + type: string + writeOnly: true + description: The ServiceNow password. Only accepted in requests and never returned in responses. + created_at: + type: string + format: date-time + readOnly: true + description: The date/time the credentials were created. + updated_at: + type: string + format: date-time + readOnly: true + description: The date/time the credentials were last updated. + deleted_at: + type: string + format: date-time + nullable: true + readOnly: true + description: The date/time the credentials were deleted, or `null` if they have not been deleted. + EnrichmentRecord: + type: object + properties: + record_id: + type: string + readOnly: true + description: Unique identifier for this enrichment record. + type: + type: string + readOnly: true + description: The type of the resource. + example: enrichment_record + created_at: + type: string + format: date-time + readOnly: true + description: Timestamp when the record was created. + enrichment_data: + type: object + additionalProperties: + type: string + description: The enrichment data for this record, as key-value pairs keyed by field name. + EnrichmentSchema: + type: object + properties: + id: + type: string + format: uuid + readOnly: true + description: Unique identifier for the enrichment schema. + type: + type: string + readOnly: true + description: The type of the resource. + example: enrichment_schema + integration_type: + type: string + readOnly: true + description: The source of the enrichment schema. `CSV` schemas are created and populated through the schema and CSV-upload endpoints; `SERVICENOW` schemas are managed by the ServiceNow CMDB integration. Schemas created through the API are always `CSV`, and only `CSV` schemas can be deleted. + enum: + - CSV + - SERVICENOW + name: + type: string + maxLength: 50 + description: Display name of the enrichment schema. + description: + type: string + nullable: true + maxLength: 2048 + description: Description of this set of enrichment data. + fields: + type: array + minItems: 2 + maxItems: 25 + description: The fields that make up the schema, including both query and enriched fields. A schema must contain 1-3 `query` fields and at least one `enriched` field, up to a maximum of 25 fields. Field names are unique within the schema (case-insensitive). + items: + $ref: '#/components/schemas/EnrichmentField' + created_at: + type: string + format: date-time + readOnly: true + description: Timestamp when the schema was created. + updated_at: + type: string + format: date-time + readOnly: true + description: Timestamp when the schema was last updated. + deleted_at: + type: string + format: date-time + nullable: true + readOnly: true + description: Timestamp when the schema was deleted, or `null` if it has not been deleted. + EventEnrichments: + type: object + properties: + event_enrichments: + type: array + description: The list of Event Enrichments. + items: + $ref: '#/components/schemas/EventEnrichment' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + offset: + type: integer + description: Echoes offset pagination property. + more: + type: boolean + description: Indicates if there are additional records to return. + total: + type: integer + nullable: true + description: The total number of records matching the given query. + EventEnrichment: + type: object + properties: + id: + type: string + description: ID of the Event Enrichment. + readOnly: true + name: + type: string + description: The name of the Event Enrichment. + description: + type: string + nullable: true + description: A description of this Event Enrichment's purpose. + is_default: + type: boolean + description: Indicates whether this Event Enrichment is the account default. + readOnly: true + associated_services: + type: integer + description: The number of Services associated with this Event Enrichment. + readOnly: true + associated_event_orchestrations: + type: integer + description: The number of Event Orchestrations associated with this Event Enrichment. + readOnly: true + team: + type: object + nullable: true + description: Reference to the team that owns this Event Enrichment. + properties: + id: + type: string + description: The ID of the team. + type: + type: string + description: A string that determines the schema of the object. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + privileges: + type: object + nullable: true + description: Details about the read/update permissions of the current user for this Event Enrichment. Only present when `include[]=privileges` is requested. + readOnly: true + properties: + permissions: + type: array + description: The list of permissions the current user has for this Event Enrichment. + items: + type: string + enum: + - read + - update + - delete + created_at: + type: string + format: date-time + description: The date/time the Event Enrichment was created. + readOnly: true + created_by: + type: object + nullable: true + description: Reference to the user that created the Event Enrichment. + readOnly: true + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the Event Enrichment was last updated. + readOnly: true + updated_by: + type: object + nullable: true + description: Reference to the user that last updated the Event Enrichment. + readOnly: true + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + EventEnrichmentDefault: + type: object + description: The account default Event Enrichment, along with the previous default if one was replaced. + properties: + default: + nullable: true + description: The current account default Event Enrichment. Null if no default is set. + type: object + properties: + id: + type: string + description: The ID of the Event Enrichment. + type: + type: string + description: A string that determines the schema of the object. + enum: + - event_enrichment_reference + summary: + type: string + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + previous_default: + nullable: true + description: The previous account default Event Enrichment, if one was replaced. Only present after a PUT request. + type: object + properties: + id: + type: string + description: The ID of the Event Enrichment. + type: + type: string + description: A string that determines the schema of the object. + enum: + - event_enrichment_reference + summary: + type: string + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + EventEnrichmentReference: + type: object + description: A reference to an Event Enrichment object. + properties: + id: + type: string + description: The ID of the Event Enrichment. + type: + type: string + description: A string that determines the schema of the object. + enum: + - event_enrichment_reference + summary: + type: string + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + EventEnrichmentAssociation: + type: object + description: An association between an Event Enrichment and a Service or Event Orchestration. + properties: + type: + type: string + description: The type of the associated resource. + enum: + - service_reference + - event_orchestration_reference + id: + type: string + description: The ID of the associated Service or Event Orchestration. + summary: + type: string + description: The name of the associated Service or Event Orchestration. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the associated resource is accessible. + readOnly: true + EventEnrichmentOrchestrationPath: + type: object + description: The rules configuration for an Event Enrichment, represented as an orchestration path. + properties: + type: + type: string + description: The type of this orchestration path. + enum: + - event_enrichment + readOnly: true + parent: + description: Reference to the parent Event Enrichment. + readOnly: true + type: object + properties: + id: + type: string + description: The ID of the Event Enrichment. + type: + type: string + description: A string that determines the schema of the object. + enum: + - event_enrichment_reference + summary: + type: string + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + sets: + type: array + description: An array of sets of rules. Must contain a set with id `start`. + items: + type: object + properties: + id: + type: string + description: The ID of this set. The first set must have id `start`. + rules: + type: array + description: The rules in this set. + items: + $ref: '#/components/schemas/EventEnrichmentRule' + created_at: + type: string + format: date-time + description: The date/time the rules were created. + readOnly: true + created_by: + type: object + nullable: true + description: Reference to the user that created the rules. + readOnly: true + properties: + id: + type: string + readOnly: true + type: + type: string + readOnly: true + self: + type: string + format: url + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the rules were last updated. + readOnly: true + updated_by: + type: object + nullable: true + description: Reference to the user that last updated the rules. + readOnly: true + properties: + id: + type: string + readOnly: true + type: + type: string + readOnly: true + self: + type: string + format: url + readOnly: true + version: + type: string + description: Version of the rules configuration. + readOnly: true + ServiceNowFieldMappingInput: + type: object + required: + - servicenow_field + - event_field + properties: + servicenow_field: + type: string + description: The ServiceNow field (column) to read the value from. Dot-walked fields are supported to traverse relationships (for example, `support_group.manager.email`). + event_field: + type: string + description: The event field that the ServiceNow value is mapped to. + type: + type: string + description: Set to `query` to use this mapping as a lookup key for matching incoming events to Configuration Items. Omit it for enrichment fields (the default). At most 3 mappings may be marked `query`, and at least one mapping must be left as an enrichment field. When no mapping is marked `query`, the `name` field is used as the query field automatically. Only `query` is accepted here — any other value is rejected. + enum: + - query + ServiceNowFieldMapping: + type: object + required: + - servicenow_field + - event_field + properties: + servicenow_field: + type: string + description: The ServiceNow field (column) to read the value from. Dot-walked fields are supported to traverse relationships (for example, `support_group.manager.email`). + event_field: + type: string + description: The event field that the ServiceNow value is mapped to. + type: + type: string + description: 'Determines how the field is used during enrichment. `enriched` fields add contextual data to a matched event, while `query` fields are used to match incoming events to Configuration Items. When no mapping specifies a `type`, the field defaults to `enriched` and the `name` field is automatically used as the single query field. To match on a different field — or on more than one field — set `type: query` on those mappings; in that mode `name` is no longer used as a query field unless it is itself marked `query`. Up to 3 query fields may be configured, and when more than one is set an event must contain a matching value for every query field to be enriched (logical AND). At least one mapping must be an enriched field. In responses, a mapping''s `type` is `query`, `enriched`, or `discriminator`. `discriminator` is assigned automatically to the `sys_id` field of `cmdb_rel_ci` relationship tables to distinguish relationship types; it appears in responses but cannot be set on requests.' + enum: + - query + - enriched + - discriminator + EnrichmentField: + type: object + required: + - name + - type + properties: + name: + type: string + maxLength: 256 + description: The name of the field. Unique within the schema (case-insensitive). + type: + type: string + description: How the field is used during enrichment. `query` fields are used to match incoming events to enrichment records (matching is case-insensitive), and `enriched` fields carry the contextual data added to a matched event. A schema has 1-3 query fields and at least one enriched field. `discriminator` is reserved for internal use (for example, by the ServiceNow CMDB integration). + enum: + - query + - enriched + - discriminator + EventEnrichmentRule: + type: object + properties: + id: + type: string + description: The ID of this rule. + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Conditions that must be satisfied for this rule's actions to execute. + items: + type: object + properties: + expression: + type: string + description: A PCL condition expression. + example: event.summary matches part 'my service error' + actions: + description: Actions to perform when the rule conditions are met. Must be one of `extractions` or `enrichments`. + type: object + title: Extractions + required: + - extractions + - enrichments + properties: + extractions: + type: array + description: Modify the event payload using regex-based extraction or template-based composition. Maximum 25 extractions per rule. + items: + type: object + properties: + target: + type: string + description: The PD-CEF field to set with the extracted value. + template: + type: string + nullable: true + description: A string template used to populate the target field. Supports event field interpolation. Used for template-based extraction. + source: + type: string + description: The path to the event field where the regex will be applied. Used for regex-based extraction. + regex: + type: string + description: A RE2 regular expression. If it contains capture groups, their values are extracted and appended. If no capture groups, the whole match is used. Used for regex-based extraction. + enrichments: + type: array + description: Query a CDP enrichment schema using event values and write results back into the event payload. Maximum 1 enrichment action per rule; maximum 5 enrichment actions applied per event per Event Enrichment. + items: + type: object + properties: + schema_to_search: + type: string + description: The ID of the Enrichment Schema to query. + search_values: + type: array + description: Configurations that specify how to read values from the event to query the Enrichment Schema. + items: + type: object + properties: + path: + type: string + description: The PD-CEF field whose value is used to search the Enrichment Schema. Used for path-based configuration. + template: + type: string + description: A string template used to build the search value. Supports event field interpolation. Used for template-based configuration. + query_field_name: + type: string + description: The name of the Enrichment Schema field to search against. Must be a field of type `query`. + target: + type: string + description: The PD-CEF field to set with the data retrieved from the Enrichment Schema. + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + responses: + ServiceNowIntegrationListResponse: + description: The list of ServiceNow enrichment integrations for the account. Returns at most one integration due to product limits. + content: + application/json: + schema: + type: object + properties: + integrations: + type: array + description: The list of ServiceNow enrichment integrations. + items: + $ref: '#/components/schemas/ServiceNowIntegration' + examples: + response: + summary: Example Response + value: + integrations: + - id: 01HQXYZ9ABCDEFGHIJKLMNOPQR + name: Production CMDB Integration + description: Enrichment data from production ServiceNow instance + cmdb_tables: + - id: 01HTABC8DEFGHIJKLMNOPQRSTU + display_name: Network Switches + ci_table_name: cmdb_ci_ip_switch + query_filter: operational_status=1 + field_mappings: + - servicenow_field: name + event_field: source + type: query + - servicenow_field: support_group + event_field: Support Group + type: enriched + status: active + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T19:05:00Z' + deleted_at: null + credentials: + id: 01HV2C3D4E5F6G7H8J9K0LMNPQ + instance_endpoint: https://your-instance.service-now.com + user: integration_user + created_at: '2026-06-30T18:20:00Z' + updated_at: '2026-06-30T18:20:00Z' + deleted_at: null + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T19:05:00Z' + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ServiceNowIntegrationPostResponse: + description: The ServiceNow enrichment integration was created successfully. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/ServiceNowIntegration' + examples: + response: + summary: Example Response + value: + integration: + id: 01HQXYZ9ABCDEFGHIJKLMNOPQR + name: Production CMDB Integration + description: Enrichment data from production ServiceNow instance + cmdb_tables: + - id: 01HTABC8DEFGHIJKLMNOPQRSTU + display_name: Network Switches + ci_table_name: cmdb_ci_ip_switch + query_filter: operational_status=1 + field_mappings: + - servicenow_field: name + event_field: source + type: query + - servicenow_field: operational_status + event_field: Operational Status + type: enriched + - servicenow_field: support_group + event_field: Support Group + type: enriched + - servicenow_field: sys_class_name + event_field: CI Class + type: enriched + status: disabled + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T18:24:00Z' + deleted_at: null + credentials: + id: 01HV2C3D4E5F6G7H8J9K0LMNPQ + instance_endpoint: https://your-instance.service-now.com + user: integration_user + created_at: '2026-06-30T18:20:00Z' + updated_at: '2026-06-30T18:20:00Z' + deleted_at: null + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T18:24:00Z' + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ServiceNowIntegrationGetResponse: + description: The requested ServiceNow enrichment integration, including its CMDB tables, field mappings, and credentials. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/ServiceNowIntegration' + examples: + response: + summary: Example Response + value: + integration: + id: 01HQXYZ9ABCDEFGHIJKLMNOPQR + name: Production CMDB Integration + description: Enrichment data from production ServiceNow instance + cmdb_tables: + - id: 01HTABC8DEFGHIJKLMNOPQRSTU + display_name: Network Switches + ci_table_name: cmdb_ci_ip_switch + query_filter: operational_status=1 + field_mappings: + - servicenow_field: name + event_field: source + type: query + - servicenow_field: operational_status + event_field: Operational Status + type: enriched + - servicenow_field: support_group + event_field: Support Group + type: enriched + - servicenow_field: sys_class_name + event_field: CI Class + type: enriched + status: active + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T19:05:00Z' + deleted_at: null + credentials: + id: 01HV2C3D4E5F6G7H8J9K0LMNPQ + instance_endpoint: https://your-instance.service-now.com + user: integration_user + created_at: '2026-06-30T18:20:00Z' + updated_at: '2026-06-30T18:20:00Z' + deleted_at: null + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T19:05:00Z' + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ServiceNowTablePostResponse: + description: The CMDB table was added to the integration successfully. + content: + application/json: + schema: + type: object + properties: + cmdb_table: + $ref: '#/components/schemas/ServiceNowTable' + examples: + response: + summary: Example Response + value: + cmdb_table: + id: 01HV9TBLE2DEFGHIJKLMNOPQRS + display_name: Windows Servers + ci_table_name: cmdb_ci_win_server + query_filter: null + field_mappings: + - servicenow_field: name + event_field: source + type: query + - servicenow_field: category + event_field: category + type: enriched + - servicenow_field: fault_count + event_field: fault count + type: enriched + - servicenow_field: cost_cc + event_field: cost cc + type: enriched + status: disabled + created_at: '2026-06-30T20:00:00Z' + updated_at: '2026-06-30T20:00:00Z' + deleted_at: null + ServiceNowTablePutResponse: + description: The CMDB table configuration was updated successfully. + content: + application/json: + schema: + type: object + properties: + cmdb_table: + $ref: '#/components/schemas/ServiceNowTable' + examples: + response: + summary: Example Response + value: + cmdb_table: + id: 01HTABC8DEFGHIJKLMNOPQRSTU + display_name: Production Network Switches + ci_table_name: cmdb_ci_ip_switch + query_filter: operational_status=1^u_environment=production + field_mappings: + - servicenow_field: name + event_field: source + type: query + - servicenow_field: operational_status + event_field: Operational Status + type: enriched + - servicenow_field: sys_class_name + event_field: CI Class + type: enriched + - servicenow_field: support_group.name + event_field: Support Team + type: enriched + status: disabled + created_at: '2026-06-30T18:24:00Z' + updated_at: '2026-06-30T20:30:00Z' + deleted_at: null + ServiceNowTableEnableResponse: + description: Data synchronization was enabled for the CMDB table. This operation is idempotent — enabling an already-enabled table succeeds. + content: + application/json: + schema: + type: object + properties: + status: + type: string + description: The outcome of the enable operation. + message: + type: string + description: A human-readable message describing the result. + examples: + response: + summary: Example Response + value: + status: enabled + message: Data synchronization enabled for table + ServiceNowTableTestResponse: + description: Up to 10 sample records returned from a live query against ServiceNow. The records are keyed by ServiceNow field name (not the mapped `event_field` names), so you can verify that the correct ServiceNow fields are configured. + content: + application/json: + schema: + type: object + properties: + enrichment_data: + type: array + description: Sample records retrieved from ServiceNow, each keyed by ServiceNow field name. + items: + type: object + additionalProperties: + type: string + examples: + response: + summary: Example Response + value: + enrichment_data: + - name: core-switch-01 + operational_status: '1' + support_group: Network Operations + sys_class_name: cmdb_ci_ip_switch + - name: core-switch-02 + operational_status: '1' + support_group: Network Operations + sys_class_name: cmdb_ci_ip_switch + ServiceNowCredentialsPostResponse: + description: The ServiceNow credentials were created successfully. The password is never returned. + content: + application/json: + schema: + type: object + properties: + credentials: + $ref: '#/components/schemas/ServiceNowCredentials' + examples: + response: + summary: Example Response + value: + credentials: + id: 01HV2C3D4E5F6G7H8J9K0LMNPQ + instance_endpoint: https://your-instance.service-now.com + user: integration_user + created_at: '2026-06-30T18:20:00Z' + updated_at: '2026-06-30T18:20:00Z' + deleted_at: null + ServiceNowCredentialsGetResponse: + description: The requested ServiceNow credentials. The password is never returned. + content: + application/json: + schema: + type: object + properties: + credentials: + $ref: '#/components/schemas/ServiceNowCredentials' + examples: + response: + summary: Example Response + value: + credentials: + id: 01HV2C3D4E5F6G7H8J9K0LMNPQ + instance_endpoint: https://your-instance.service-now.com + user: integration_user + created_at: '2026-06-30T18:20:00Z' + updated_at: '2026-06-30T18:20:00Z' + deleted_at: null + ServiceNowCredentialsPutResponse: + description: The ServiceNow credentials were updated successfully. The password is never returned. + content: + application/json: + schema: + type: object + properties: + credentials: + $ref: '#/components/schemas/ServiceNowCredentials' + examples: + response: + summary: Example Response + value: + credentials: + id: 01HV2C3D4E5F6G7H8J9K0LMNPQ + instance_endpoint: https://your-instance.service-now.com + user: integration_user + created_at: '2026-06-30T18:20:00Z' + updated_at: '2026-06-30T21:00:00Z' + deleted_at: null + EnrichmentQueryPostResponse: + description: The enrichment records matching the query. Returns 0-1 records for standard schemas, or 0-N records for schemas that use a discriminator field. + content: + application/json: + schema: + type: object + properties: + records: + type: array + description: The enrichment records matching the query. + items: + $ref: '#/components/schemas/EnrichmentRecord' + examples: + response: + summary: Example Response + value: + records: + - record_id: a3b2c1d4e5f6 + type: enrichment_record + created_at: '2026-06-30T15:17:30Z' + enrichment_data: + Application: Authorization + Environment: production + Manager: alice@example.com + EnrichmentSchemaListResponse: + description: The list of enrichment schemas for the account. + content: + application/json: + schema: + type: object + properties: + schemas: + type: array + description: The list of enrichment schemas. + items: + $ref: '#/components/schemas/EnrichmentSchema' + examples: + response: + summary: Example Response + value: + schemas: + - id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + type: enrichment_schema + integration_type: CSV + name: Team Lead and Runbooks + description: Attaches SME and Runbook URLs to Incident + fields: + - name: Application + type: query + - name: Manager + type: enriched + - name: Runbook URL + type: enriched + created_at: '2026-06-30T15:17:30Z' + updated_at: '2026-06-30T15:17:30Z' + deleted_at: null + EnrichmentSchemaPostResponse: + description: The enrichment schema was created successfully. + content: + application/json: + schema: + type: object + properties: + schema: + $ref: '#/components/schemas/EnrichmentSchema' + examples: + response: + summary: Example Response + value: + schema: + id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + type: enrichment_schema + integration_type: CSV + name: Team Lead and Runbooks + description: Attaches SME and Runbook URLs to Incident + fields: + - name: Application + type: query + - name: Manager + type: enriched + - name: Runbook URL + type: enriched + created_at: '2026-06-30T15:17:30Z' + updated_at: '2026-06-30T15:17:30Z' + deleted_at: null + EnrichmentSchemaCsvCreateResponse: + description: The schema was created from the uploaded CSV and the file was accepted for asynchronous processing. The records become queryable once processing completes. + content: + application/json: + schema: + type: object + properties: + schema: + $ref: '#/components/schemas/EnrichmentSchema' + examples: + response: + summary: Example Response + value: + schema: + id: b620bbb5-2571-4b7a-b0c6-47c55bd491d0 + type: enrichment_schema + integration_type: CSV + name: users + description: Auto generated schema from CSV upload + fields: + - name: email + type: query + - name: team + type: enriched + - name: manager + type: enriched + created_at: '2026-06-30T15:20:00Z' + updated_at: '2026-06-30T15:20:00Z' + deleted_at: null + EnrichmentSchemaGetResponse: + description: The requested enrichment schema. + content: + application/json: + schema: + type: object + properties: + schema: + $ref: '#/components/schemas/EnrichmentSchema' + examples: + response: + summary: Example Response + value: + schema: + id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + type: enrichment_schema + integration_type: CSV + name: Team Lead and Runbooks + description: Attaches SME and Runbook URLs to Incident + fields: + - name: Application + type: query + - name: Manager + type: enriched + - name: Runbook URL + type: enriched + created_at: '2026-06-30T15:17:30Z' + updated_at: '2026-06-30T15:17:30Z' + deleted_at: null + EnrichmentSchemaPutResponse: + description: The enrichment schema was updated successfully. + content: + application/json: + schema: + type: object + properties: + schema: + $ref: '#/components/schemas/EnrichmentSchema' + examples: + response: + summary: Example Response + value: + schema: + id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + type: enrichment_schema + integration_type: CSV + name: Team Leads and Runbooks + description: Attaches SME and Runbook URLs to incidents + fields: + - name: Application + type: query + - name: Manager + type: enriched + - name: Runbook URL + type: enriched + created_at: '2026-06-30T15:17:30Z' + updated_at: '2026-06-30T16:02:00Z' + deleted_at: null + EnrichmentSchemaDeleteResponse: + description: The enrichment schema was deleted successfully. Only `CSV` schemas can be deleted. + content: + application/json: + schema: + type: object + properties: + schema: + $ref: '#/components/schemas/EnrichmentSchema' + examples: + response: + summary: Example Response + value: + schema: + id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + type: enrichment_schema + integration_type: CSV + name: Team Lead and Runbooks + description: Attaches SME and Runbook URLs to Incident + fields: + - name: Application + type: query + - name: Manager + type: enriched + - name: Runbook URL + type: enriched + created_at: '2026-06-30T15:17:30Z' + updated_at: '2026-06-30T15:17:30Z' + deleted_at: '2026-06-30T16:45:00Z' + EnrichmentRecordsListResponse: + description: A page of enrichment records for the schema. + content: + application/json: + schema: + type: object + properties: + schema_id: + type: string + format: uuid + description: The schema the records belong to. + records: + type: array + description: The page of enrichment records. + items: + $ref: '#/components/schemas/EnrichmentRecord' + next_cursor: + type: string + nullable: true + description: Cursor for fetching the next page, or `null` if there are no more pages. + examples: + response: + summary: Example Response + value: + schema_id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + records: + - record_id: a3b2c1d4e5f6 + type: enrichment_record + created_at: '2026-06-30T15:17:30Z' + enrichment_data: + Application: Auth Service + Manager: alice@example.com + Runbook URL: https://runbooks.example.com/auth + next_cursor: eyJuZXh0IjoiYTNiMmMxZDRlNWY2In0= + EnrichmentRecordsCsvUploadResponse: + description: The CSV file was accepted for asynchronous processing. + content: + application/json: + schema: + type: object + properties: + upload_id: + type: string + format: uuid + description: Unique identifier for the CSV upload operation. + schema_id: + type: string + format: uuid + description: The schema the CSV data is being uploaded to. + filename: + type: string + nullable: true + description: Original filename of the uploaded CSV file. + size_bytes: + type: integer + format: int64 + description: Size of the uploaded file in bytes. + status: + type: string + description: Status of the upload operation. + accepted_at: + type: string + format: date-time + description: Timestamp when the upload was accepted. + examples: + response: + summary: Example Response + value: + upload_id: 605d87a2-c67c-441e-a4cb-dbbbd94a340c + schema_id: b620bbb5-2571-4b7a-b0c6-47c55bd491d0 + filename: users.csv + size_bytes: 1024 + status: accepted + accepted_at: '2026-06-30T10:30:00Z' + EnrichmentRecordDeleteResponse: + description: The enrichment record was deleted successfully. + content: + application/json: + schema: + type: object + properties: + record: + $ref: '#/components/schemas/EnrichmentRecord' + examples: + response: + summary: Example Response + value: + record: + record_id: a3b2c1d4e5f6 + type: enrichment_record + created_at: '2026-06-30T15:17:30Z' + enrichment_data: + Application: Auth Service + Manager: alice@example.com + Runbook URL: https://runbooks.example.com/auth + EventEnrichmentListResponse: + description: A list of Event Enrichments for the account. + content: + application/json: + schema: + $ref: '#/components/schemas/EventEnrichments' + examples: + response: + summary: Example Response + value: + event_enrichments: + - id: AGN4PVDO2F5AZIVWETZ42I6IP4 + name: 1st Event Enrichment + description: null + is_default: false + associated_services: 32 + associated_event_orchestrations: 23 + team: + id: PA5JAKW + type: team_reference + self: https://api.pagerduty.com/teams/PA5JAKW + created_at: '2023-10-25T22:04:24Z' + created_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + updated_at: '2025-06-16T14:39:11Z' + updated_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + limit: 25 + offset: 0 + more: false + total: 1 + EventEnrichmentPostResponse: + description: The Event Enrichment was created successfully. + content: + application/json: + schema: + type: object + properties: + event_enrichment: + $ref: '#/components/schemas/EventEnrichment' + examples: + response: + summary: Example Response + value: + event_enrichment: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + name: 1st Event Enrichment + description: My very first EE! + is_default: false + associated_services: 0 + associated_event_orchestrations: 0 + team: + id: PA5JAKW + type: team_reference + self: https://api.pagerduty.com/teams/PA5JAKW + created_at: '2023-10-25T22:04:24Z' + created_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + updated_at: '2023-10-25T22:04:24Z' + updated_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + EventEnrichmentDefaultGetResponse: + description: The account default Event Enrichment. + content: + application/json: + schema: + $ref: '#/components/schemas/EventEnrichmentDefault' + examples: + with_default: + summary: Account has a default set + value: + default: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + type: event_enrichment_reference + summary: My enrichment name + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + no_default: + summary: No default set for the account + value: + default: null + EventEnrichmentDefaultPutResponse: + description: The updated account default Event Enrichment. + content: + application/json: + schema: + $ref: '#/components/schemas/EventEnrichmentDefault' + examples: + new_default_no_previous: + summary: New default set, no previous default existed + value: + default: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + type: event_enrichment_reference + summary: My enrichment name + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + previous_default: null + new_default_with_previous: + summary: New default set, replacing a previous default + value: + default: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + type: event_enrichment_reference + summary: My enrichment name + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + previous_default: + id: AGN6ZO345532XBOFCBX6OVTQ6Y + type: event_enrichment_reference + summary: The old enrichment + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN6ZO345532XBOFCBX6OVTQ6Y + cleared_default: + summary: Default cleared + value: + default: null + previous_default: + id: AGN6ZO345532XBOFCBX6OVTQ6Y + type: event_enrichment_reference + summary: The old enrichment + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN6ZO345532XBOFCBX6OVTQ6Y + EventEnrichmentGetResponse: + description: The Event Enrichment object. + content: + application/json: + schema: + type: object + properties: + event_enrichment: + $ref: '#/components/schemas/EventEnrichment' + examples: + response: + summary: Example Response + value: + event_enrichment: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + name: 1st Event Enrichment + description: null + is_default: false + associated_services: 32 + associated_event_orchestrations: 23 + team: + id: PA5JAKW + type: team_reference + self: https://api.pagerduty.com/teams/PA5JAKW + created_at: '2023-10-25T22:04:24Z' + created_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + updated_at: '2025-06-16T14:39:11Z' + updated_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + EventEnrichmentPutResponse: + description: The updated Event Enrichment object. + content: + application/json: + schema: + type: object + properties: + event_enrichment: + $ref: '#/components/schemas/EventEnrichment' + examples: + response: + summary: Example Response + value: + event_enrichment: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + name: Event Enrichment - Updated Name + description: New Description + is_default: false + associated_services: 32 + associated_event_orchestrations: 23 + team: + id: PUBG4NJ + type: team_reference + self: https://api.pagerduty.com/teams/PUBG4NJ + created_at: '2023-10-25T22:04:24Z' + created_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + updated_at: '2025-06-16T14:39:11Z' + updated_by: + id: P1TYZRY + type: user_reference + self: https://api.pagerduty.com/users/P1TYZRY + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + EventEnrichmentAssociationListResponse: + description: A list of associations for the Event Enrichment. + content: + application/json: + schema: + type: object + properties: + associations: + type: array + items: + $ref: '#/components/schemas/EventEnrichmentAssociation' + limit: + type: integer + offset: + type: integer + more: + type: boolean + total: + type: integer + nullable: true + examples: + response: + summary: Example Response + value: + associations: + - type: service_reference + id: P6NZENL + summary: Web Database + self: https://api.pagerduty.com/services/P6NZENL + - type: event_orchestration_reference + id: 962dcc99-d338-4fd7-8454-653b2480841d + summary: NOC Central Ingestion + self: https://api.pagerduty.com/event_orchestrations/962dcc99-d338-4fd7-8454-653b2480841d + limit: 50 + offset: 0 + more: false + total: 2 + EventEnrichmentAssociationPostResponse: + description: Associations created successfully, or a multi-status response if some failed. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - created + examples: + created: + summary: All associations created successfully (201) + value: + status: created + multi_status: + summary: Partial success — some associations failed (207) + value: + associations: + - status: 201 + errors: [] + association: + type: service_reference + id: PVBHKC1 + - status: 500 + errors: + - Internal Server Error + association: + type: event_orchestration_reference + id: af3d4d66-4a34-46c6-9a3c-7d5d8bd8eeeb + EventEnrichmentAssociationMultiStatusResponse: + description: Multi-status response indicating partial success when adding or deleting associations. + content: + application/json: + schema: + type: object + properties: + associations: + type: array + items: + type: object + properties: + status: + type: integer + description: The HTTP status code for this individual association attempt. + errors: + type: array + items: + type: string + description: Error messages for this association attempt, if any. + association: + type: object + properties: + type: + type: string + enum: + - service_reference + - event_orchestration_reference + id: + type: string + examples: + multi_status: + summary: Partial success — some associations failed (207) + value: + associations: + - status: 201 + errors: [] + association: + type: service_reference + id: PVBHKC1 + - status: 500 + errors: + - Internal Server Error + association: + type: event_orchestration_reference + id: af3d4d66-4a34-46c6-9a3c-7d5d8bd8eeeb + EventEnrichmentAssociationDeleteResponse: + description: Associations deleted successfully. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - ok + examples: + response: + summary: Example Response + value: + status: ok + EventEnrichmentRulesGetResponse: + description: The Event Enrichment rules (orchestration path). + content: + application/json: + schema: + type: object + properties: + orchestration_path: + $ref: '#/components/schemas/EventEnrichmentOrchestrationPath' + examples: + response: + summary: Example Response + value: + orchestration_path: + type: event_enrichment + parent: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + type: event_enrichment_reference + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4/rules + sets: + - id: start + rules: + - id: ef760c4b + label: Enrich events that have an `Application:` in their summary + conditions: + - expression: event.summary matches part 'Application:' + actions: + enrichments: + - schema_to_search: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + search_values: + - path: event.custom_details.app + query_field_name: app_name + target: event.custom_details.app_metadata + created_at: '2026-02-04T20:02:23Z' + created_by: + id: P3HAR9Y + type: user_reference + self: https://api.pagerduty.com/users/P3HAR9Y + updated_at: '2026-02-10T23:53:48Z' + updated_by: null + version: 1TpoWwY9xTKVAM2qYmiDl0kN.o9PBQDV + EventEnrichmentRulesPutResponse: + description: The updated Event Enrichment rules (orchestration path). + content: + application/json: + schema: + type: object + properties: + orchestration_path: + $ref: '#/components/schemas/EventEnrichmentOrchestrationPath' + examples: + response: + summary: Example Response + value: + orchestration_path: + type: event_enrichment + parent: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + type: event_enrichment_reference + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4 + self: https://api.pagerduty.com/enrichment/event_enrichments/AGN4PVDO2F5AZIVWETZ42I6IP4/rules + sets: + - id: start + rules: + - id: ef760c4b + label: Extract server name from event source + conditions: + - expression: event.summary matches part 'Application:' + actions: + extractions: + - target: event.custom_details.server_name + template: '[production] {{event.source}}' + source: null + regex: null + created_at: '2026-02-04T20:02:23Z' + created_by: + id: P3HAR9Y + type: user_reference + self: https://api.pagerduty.com/users/P3HAR9Y + updated_at: '2026-02-10T23:53:48Z' + updated_by: + id: P3HAR9Y + type: user_reference + self: https://api.pagerduty.com/users/P3HAR9Y + version: 2UqpXzY0aULBen3DisjGm1lQ.p0QDVE + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + servicenow_integration_id: + name: integration_id + in: path + required: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the ServiceNow enrichment integration. + schema: + type: string + servicenow_table_id: + name: table_id + in: path + required: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the CMDB table configuration. + schema: + type: string + servicenow_credentials_id: + name: credentials_id + in: path + required: true + description: Base32-encoded UUID v7 (26 uppercase alphanumeric characters) identifying the ServiceNow credentials. + schema: + type: string + enrichment_csv_filename: + name: filename + in: query + required: false + description: The filename for the CSV content. Required when creating a schema from a `text/csv` body; optional for `text/csv` record uploads. Ignored for `multipart/form-data` and JSON requests. + schema: + type: string + enrichment_schema_id: + name: schema_id + in: path + required: true + description: The ID of the enrichment schema. + schema: + type: string + format: uuid + enrichment_records_limit: + name: limit + in: query + required: false + description: The maximum number of records to return per page (1-100). + schema: + type: integer + minimum: 1 + maximum: 100 + default: 100 + enrichment_records_cursor: + name: cursor + in: query + required: false + description: Pagination cursor returned by a previous list request. + schema: + type: string + enrichment_record_id: + name: record_id + in: path + required: true + description: The ID of the enrichment record. + schema: + type: string + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + enrichment_include: + name: include[] + in: query + required: false + description: Include additional details. Supported value is "privileges". + explode: true + schema: + type: array + items: + type: string + enum: + - privileges + event_enrichment_id: + name: id + in: path + required: true + description: The ID of the Event Enrichment. + schema: + type: string + enrichment_association_type: + name: association_type + in: query + required: false + description: Filter associations by type. Either "service" or "event_orchestration". + schema: + type: string + enum: + - service + - event_orchestration + requestBodies: + ServiceNowIntegrationPostRequest: + description: The ServiceNow enrichment integration to create. Credentials are added separately through the credentials endpoint. + required: true + content: + application/json: + schema: + type: object + required: + - name + - cmdb_tables + properties: + name: + type: string + maxLength: 100 + description: The name of the integration. + description: + type: string + maxLength: 500 + description: An optional description of the integration. + cmdb_tables: + type: array + minItems: 1 + maxItems: 8 + description: The ServiceNow CMDB table configurations. An integration must have between 1 and 8 tables. + items: + $ref: '#/components/schemas/ServiceNowTableInput' + examples: + basic: + summary: Create a ServiceNow enrichment integration + value: + name: Production CMDB Integration + description: Enrichment data from production ServiceNow instance + cmdb_tables: + - display_name: Network Switches + ci_table_name: cmdb_ci_ip_switch + query_filter: operational_status=1 + field_mappings: + - servicenow_field: name + event_field: source + - servicenow_field: operational_status + event_field: Operational Status + - servicenow_field: support_group + event_field: Support Group + - servicenow_field: sys_class_name + event_field: CI Class + multipleQueryFields: + summary: Match on multiple query fields + description: 'Designate more than one mapping as a query field with `type: query`. A CI is matched only when the event contains a value for every query field (here, both `host` and `ci_class`). The remaining mappings provide enrichment data.' + value: + name: Production CMDB Integration + description: Match CIs on both host name and CI class + cmdb_tables: + - display_name: Servers + ci_table_name: cmdb_ci_server + query_filter: operational_status=1 + field_mappings: + - servicenow_field: name + event_field: host + type: query + - servicenow_field: sys_class_name + event_field: ci_class + type: query + - servicenow_field: support_group + event_field: Support Group + - servicenow_field: location + event_field: Location + ServiceNowTablePostRequest: + description: The CMDB table configuration to add to the integration. + required: true + content: + application/json: + schema: + type: object + required: + - cmdb_table + properties: + cmdb_table: + $ref: '#/components/schemas/ServiceNowTableInput' + examples: + basic: + summary: Add a CMDB table + value: + cmdb_table: + display_name: Windows Servers + ci_table_name: cmdb_ci_win_server + query_filter: null + field_mappings: + - servicenow_field: name + event_field: source + - servicenow_field: category + event_field: category + - servicenow_field: fault_count + event_field: fault count + - servicenow_field: cost_cc + event_field: cost cc + ServiceNowTablePutRequest: + description: The replacement CMDB table configuration. This is a full replacement — all fields, including `ci_table_name` and the complete `field_mappings` list, must be provided. A table can only be updated while its sync is disabled and before its initial backfill has started. + required: true + content: + application/json: + schema: + type: object + required: + - cmdb_table + properties: + cmdb_table: + $ref: '#/components/schemas/ServiceNowTableInput' + examples: + basic: + summary: Update a CMDB table configuration + value: + cmdb_table: + display_name: Production Network Switches + ci_table_name: cmdb_ci_ip_switch + query_filter: operational_status=1^u_environment=production + field_mappings: + - servicenow_field: name + event_field: source + - servicenow_field: operational_status + event_field: Operational Status + - servicenow_field: sys_class_name + event_field: CI Class + - servicenow_field: support_group.name + event_field: Support Team + ServiceNowCredentialsPostRequest: + description: The ServiceNow credentials to create. Only one credential set is allowed per account. + required: true + content: + application/json: + schema: + type: object + required: + - credentials + properties: + credentials: + $ref: '#/components/schemas/ServiceNowCredentialsInput' + examples: + basic: + summary: Create ServiceNow credentials + value: + credentials: + instance_endpoint: https://your-instance.service-now.com + user: integration_user + password: YOUR_SERVICENOW_PASSWORD + ServiceNowCredentialsPutRequest: + description: The credential fields to update. Supports partial updates — only the fields provided are changed. + required: true + content: + application/json: + schema: + type: object + required: + - credentials + properties: + credentials: + $ref: '#/components/schemas/ServiceNowCredentials' + examples: + basic: + summary: Update ServiceNow credentials + value: + credentials: + instance_endpoint: https://your-instance.service-now.com + password: YOUR_NEW_SERVICENOW_PASSWORD + EnrichmentQueryPostRequest: + description: The schema and query field values to match enrichment records against. + required: true + content: + application/json: + schema: + type: object + required: + - schema_id + - query + properties: + schema_id: + type: string + format: uuid + description: The ID of the enrichment schema to query. + query: + type: array + minItems: 1 + maxItems: 3 + description: The query field values to match against. Up to 3 query fields may be supplied; all must match. + items: + type: object + required: + - field + - value + properties: + field: + type: string + description: The query field name. + value: + type: string + description: The value to match for this field. + examples: + basic: + summary: Query enrichment data + value: + schema_id: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + query: + - field: Application + value: Authorization + - field: Environment + value: production + EnrichmentSchemaPostRequest: + description: The enrichment schema to create. Provide a JSON body to define the schema explicitly, or upload a CSV file (as `multipart/form-data` or `text/csv`) to auto-generate a schema in which the first column becomes the query field and the remaining columns become enriched fields. CSV uploads are limited to 10 MB. + required: true + content: + application/json: + schema: + type: object + required: + - name + - fields + properties: + integration_type: + type: string + description: The schema source. Only `CSV` is supported through the API; the schema is always recorded as `CSV` regardless of the value sent. + enum: + - CSV + name: + type: string + maxLength: 50 + description: Display name of the enrichment schema. + description: + type: string + maxLength: 2048 + description: Description of this set of enrichment data. + fields: + type: array + minItems: 2 + maxItems: 25 + description: The schema fields. Must include 1-3 query fields and at least one enriched field, up to 25 fields total. Field names must be unique (case-insensitive). + items: + type: object + required: + - name + - type + properties: + name: + type: string + maxLength: 256 + description: The name of the field. Must be unique within the schema (case-insensitive). + type: + type: string + description: How the field is used. `query` fields match incoming events to records (case-insensitive); `enriched` fields carry the data added to a matched event. + enum: + - query + - enriched + examples: + basic: + summary: Create a schema with multiple query fields + value: + integration_type: CSV + name: Application Environment Enrichment + description: Maps applications to team and runbook info by environment + fields: + - name: Application + type: query + - name: Environment + type: query + - name: Manager + type: enriched + - name: Team + type: enriched + - name: Runbook URL + type: enriched + multipart/form-data: + schema: + type: object + required: + - file + properties: + file: + type: string + format: binary + description: The CSV file to upload (max 10 MB). The schema name is derived from the filename. + text/csv: + schema: + type: string + description: The raw CSV content (max 10 MB). Provide the filename via the `filename` query parameter. + EnrichmentSchemaPutRequest: + description: The schema fields to update. At least one of `name` or `description` must be provided. + required: true + content: + application/json: + schema: + type: object + required: + - schema + properties: + schema: + type: object + properties: + name: + type: string + maxLength: 50 + description: Display name of the enrichment schema. + description: + type: string + maxLength: 2048 + description: Description of this set of enrichment data. + examples: + basic: + summary: Rename a schema + value: + schema: + name: Team Leads and Runbooks + description: Attaches SME and Runbook URLs to incidents + EnrichmentRecordsCsvUploadRequest: + description: 'The CSV file to upload into the schema, as `multipart/form-data` or `text/csv`. The file is streamed for asynchronous processing and is limited to 10 MB. The CSV columns must align with the schema''s fields: missing columns result in empty values and extra columns are ignored. Records are keyed by their query-field values, so uploading a row whose query values match an existing record updates that record.' + required: true + content: + multipart/form-data: + schema: + type: object + required: + - file + properties: + file: + type: string + format: binary + description: The CSV file to upload (max 10 MB). + text/csv: + schema: + type: string + description: The raw CSV content (max 10 MB). Optionally provide the filename via the `filename` query parameter. + EventEnrichmentPostRequest: + description: The Event Enrichment to create. + required: true + content: + application/json: + schema: + type: object + required: + - event_enrichment + properties: + event_enrichment: + $ref: '#/components/schemas/EventEnrichment' + examples: + basic: + summary: Create a new Event Enrichment + value: + event_enrichment: + name: 1st Event Enrichment + description: My very first EE! + team: + id: PA5JAKW + EventEnrichmentDefaultPutRequest: + description: 'The Event Enrichment to set as the account default. Set to `default: null` to clear the current default.' + required: true + content: + application/json: + schema: + type: object + properties: + default: + nullable: true + type: object + description: A reference to an Event Enrichment object. + properties: + id: + type: string + description: The ID of the Event Enrichment. + type: + type: string + description: A string that determines the schema of the object. + enum: + - event_enrichment_reference + summary: + type: string + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible. + readOnly: true + examples: + set_default: + summary: Set a new account default + value: + default: + id: AGN4PVDO2F5AZIVWETZ42I6IP4 + type: event_enrichment_reference + clear_default: + summary: Clear the current account default + value: + default: null + EventEnrichmentPutRequest: + description: The Event Enrichment fields to update. + required: true + content: + application/json: + schema: + type: object + required: + - event_enrichment + properties: + event_enrichment: + $ref: '#/components/schemas/EventEnrichment' + examples: + basic: + summary: Update an Event Enrichment + value: + event_enrichment: + name: Event Enrichment - Updated Name + description: New Description + team: + id: PUBG4NJ + EventEnrichmentAssociationPostRequest: + description: The associations to add to the Event Enrichment. + required: true + content: + application/json: + schema: + type: object + required: + - associations + properties: + associations: + type: array + items: + $ref: '#/components/schemas/EventEnrichmentAssociation' + examples: + basic: + summary: Associate a Service and an Event Orchestration + value: + associations: + - type: service_reference + id: PVBHKC1 + - type: event_orchestration_reference + id: af3d4d66-4a34-46c6-9a3c-7d5d8bd8eeeb + EventEnrichmentAssociationDeleteRequest: + description: The associations to remove from the Event Enrichment. + required: true + content: + application/json: + schema: + type: object + required: + - associations + properties: + associations: + type: array + items: + $ref: '#/components/schemas/EventEnrichmentAssociation' + examples: + basic: + summary: Remove a Service and an Event Orchestration association + value: + associations: + - type: service_reference + id: PVBHKC1 + - type: event_orchestration_reference + id: af3d4d66-4a34-46c6-9a3c-7d5d8bd8eeeb + EventEnrichmentRulesPutRequest: + description: The updated Event Enrichment rules configuration. + required: true + content: + application/json: + schema: + type: object + required: + - orchestration_path + properties: + orchestration_path: + $ref: '#/components/schemas/EventEnrichmentOrchestrationPath' + examples: + with_extractions: + summary: Update rules with an extraction action + value: + orchestration_path: + sets: + - id: start + rules: + - label: Extract server name from event source + conditions: + - expression: event.summary matches part 'Application:' + actions: + extractions: + - target: event.custom_details.server_name + template: '[production] {{event.source}}' + with_enrichments: + summary: Update rules with an enrichment action + value: + orchestration_path: + sets: + - id: start + rules: + - label: Enrich events that have an `Application:` in their summary + conditions: + - expression: event.summary matches part 'Application:' + actions: + enrichments: + - schema_to_search: 9f194d8d-0f58-4c5c-b1d2-a5adf7171821 + search_values: + - path: event.custom_details.app + query_field_name: app_name + target: event.custom_details.app_metadata + x-stackQL-resources: + servicenow_integrations: + id: pagerduty.enrichment.servicenow_integrations + name: servicenow_integrations + title: Servicenow Integrations + methods: + list: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integrations + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integration + delete: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/servicenow_integrations/methods/get' + - $ref: '#/components/x-stackQL-resources/servicenow_integrations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/servicenow_integrations/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/servicenow_integrations/methods/delete' + replace: [] + servicenow_tables: + id: pagerduty.enrichment.servicenow_tables + name: servicenow_tables + title: Servicenow Tables + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}~1tables/post' + response: + mediaType: application/json + openAPIDocKey: '201' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}~1tables~1{table_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}~1tables~1{table_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + enable: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}~1tables~1{table_id}~1enable/post' + response: + mediaType: application/json + openAPIDocKey: '200' + test: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1{integration_id}~1tables~1{table_id}~1test/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/servicenow_tables/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/servicenow_tables/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/servicenow_tables/methods/delete' + replace: [] + servicenow_credentials: + id: pagerduty.enrichment.servicenow_credentials + name: servicenow_credentials + title: Servicenow Credentials + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1credentials/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1credentials~1{credentials_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.credentials + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1credentials~1{credentials_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1enrichment~1integrations~1servicenow~1credentials~1{credentials_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/servicenow_credentials/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/servicenow_credentials/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/servicenow_credentials/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/servicenow_credentials/methods/delete' + replace: [] + query_results: + id: pagerduty.enrichment.query_results + name: query_results + title: Query Results + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1query/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/query_results/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + schemas: + id: pagerduty.enrichment.schemas + name: schemas + title: Schemas + methods: + list: + operation: + $ref: '#/paths/~1enrichment~1schemas/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schemas + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1schemas/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1enrichment~1schemas~1{schema_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schema + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1schemas~1{schema_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1enrichment~1schemas~1{schema_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schemas/methods/get' + - $ref: '#/components/x-stackQL-resources/schemas/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/schemas/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/schemas/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/schemas/methods/delete' + replace: [] + records: + id: pagerduty.enrichment.records + name: records + title: Records + methods: + list: + operation: + $ref: '#/paths/~1enrichment~1schemas~1{schema_id}~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + delete: + operation: + $ref: '#/paths/~1enrichment~1schemas~1{schema_id}~1records~1{record_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/records/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/records/methods/delete' + replace: [] + event_enrichments: + id: pagerduty.enrichment.event_enrichments + name: event_enrichments + title: Event Enrichments + methods: + list: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.event_enrichments + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1event_enrichments/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.event_enrichment + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_enrichments/methods/get' + - $ref: '#/components/x-stackQL-resources/event_enrichments/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/event_enrichments/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/event_enrichments/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/event_enrichments/methods/delete' + replace: [] + event_enrichment_defaults: + id: pagerduty.enrichment.event_enrichment_defaults + name: event_enrichment_defaults + title: Event Enrichment Defaults + methods: + get: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1default/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1default/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_enrichment_defaults/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/event_enrichment_defaults/methods/update' + delete: [] + replace: [] + event_enrichment_associations: + id: pagerduty.enrichment.event_enrichment_associations + name: event_enrichment_associations + title: Event Enrichment Associations + methods: + list: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}~1associations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.associations + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}~1associations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + delete: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}~1associations/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_enrichment_associations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/event_enrichment_associations/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/event_enrichment_associations/methods/delete' + replace: [] + event_enrichment_rules: + id: pagerduty.enrichment.event_enrichment_rules + name: event_enrichment_rules + title: Event Enrichment Rules + methods: + get: + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}~1rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestration_path + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1enrichment~1event_enrichments~1{id}~1rules/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_enrichment_rules/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/event_enrichment_rules/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/escalation_policies.yaml b/providers/src/pagerduty/v00.00.00000/services/escalation_policies.yaml index 894f7d98..ea5225db 100644 --- a/providers/src/pagerduty/v00.00.00000/services/escalation_policies.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/escalation_policies.yaml @@ -1,3424 +1,1546 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Escalation Policies + description: Escalation policies determine who is notified and when for incidents on a service. version: 2.0.0 - title: PagerDuty API - escalation_policies - description: Escalation_Policies -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - EscalationPolicy: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of object being created. - default: escalation_policy - enum: - - escalation_policy - name: - type: string - description: The name of the escalation policy. - description: - type: string - description: Escalation policy description. - num_loops: - type: integer - description: The number of times the escalation policy will repeat after reaching the end of its escalation. - default: 0 - minimum: 0 - on_call_handoff_notifications: - type: string - description: Determines how on call handoff notifications will be sent for users on the escalation policy. Defaults to "if_has_services". - enum: - - if_has_services - - always - escalation_rules: - type: array - items: - $ref: '#/components/schemas/EscalationRule' - services: - type: array - items: - $ref: '#/components/schemas/ServiceReference' - minLength: 0 - readOnly: true - teams: - type: array - description: Team associated with the policy. Account must have the `teams` ability to use this parameter. Only one team may be associated with the policy. - items: - $ref: '#/components/schemas/TeamReference' - minLength: 0 - required: - - type - - name - - escalation_rules - example: - id: PQIL2IX - type: escalation_policy - name: Engineering Escalation Policy - escalation_rules: - - escalation_delay_in_minutes: 30 - targets: - - id: PEYSGVF - type: user_reference - services: - - id: PIJ90N7 - type: service_reference - num_loops: 2 - on_call_handoff_notifications: if_has_services - teams: - - id: PQ9K7I8 - type: team_reference - description: Here is the ep for the engineering team. - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - EscalationRule: - type: object - properties: - id: - type: string - readOnly: true - escalation_delay_in_minutes: - type: integer - description: The number of minutes before an unacknowledged incident escalates away from this rule. - targets: - type: array - minItems: 1 - maxItems: 10 - description: The targets an incident should be assigned to upon reaching this rule. - items: - $ref: '#/components/schemas/EscalationTargetReference' - required: - - escalation_delay_in_minutes - - targets - example: - escalation_delay_in_minutes: 30 - targets: - - id: PAM4FGS - type: user_reference - - id: PI7DH85 - type: schedule_reference - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - EscalationTargetReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - description: The escalation target is the entity that will be assigned an incident upon escalation. - properties: - type: - enum: - - user - - schedule - - user_reference - - schedule_reference - type: string - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - AuditRecordResponseSchema: - allOf: - - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/AuditRecord' - response_metadata: - nullable: true - anyOf: - - $ref: '#/components/schemas/AuditMetadata' - required: - - records - - $ref: '#/components/schemas/CursorPagination' - AuditRecord: - type: object - readOnly: true - description: An Audit Trail record - properties: - id: - type: string - self: - type: string - nullable: true - description: Record URL. - execution_time: - type: string - format: date-time - description: 'The date/time the action executed, in ISO8601 format and millisecond precision.' - execution_context: - type: object - description: Action execution context - properties: - request_id: - type: string - nullable: true - description: Request Id - remote_address: - type: string - nullable: true - description: remote address - nullable: true - actors: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - method: - type: object - description: The method information - properties: - description: - type: string - nullable: true - truncated_token: - description: Truncated token containing the last 4 chars of the token's actual value. - type: string - nullable: true - example: 3xyz - type: - $ref: '#/components/parameters/audit_method_type/schema' - required: - - type - root_resource: - $ref: '#/components/schemas/Reference' - action: - type: string - example: create - details: - type: object - nullable: true - description: | - Additional details to provide further information about the action or - the resource that has been audited. - properties: - resource: - $ref: '#/components/schemas/Reference' - fields: - description: | - A set of fields that have been affected. - The fields that have not been affected MAY be returned. - type: array - nullable: true - items: - type: object - description: | - Information about the affected field. - When available, field's before and after values are returned: - - #### Resource creation - - `value` MAY be returned +paths: + /escalation_policies: + get: + tags: + - Escalation Policies + x-pd-requires-scope: escalation_policies.read + operationId: listEscalationPolicies + description: | + List all of the existing escalation policies. - #### Resource update - - `value` MAY be returned - - `before_value` MAY be returned + Escalation policies define which user should be alerted at which time. - #### Resource deletion - - `before_value` MAY be returned + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#escalation-policies) + + Scoped OAuth requires: `escalation_policies.read` + summary: List escalation policies + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/user_ids_escalation_policies' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/include_escalation_policy' + - $ref: '#/components/parameters/sort_by_escalation_policy' + responses: + '200': + description: A paginated array of escalation policy objects. + content: + application/json: + schema: + type: object properties: - name: - type: string - description: Name of the resource field - example: name - description: - type: string - nullable: true - description: Human readable description of the resource field - example: First and Last name - value: - type: string - nullable: true - description: new or updated value of the field - example: Jonathan - before_value: - type: string + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. nullable: true - description: previous or deleted value of the field - example: John + readOnly: true + escalation_policies: + type: array + items: + $ref: '#/components/schemas/EscalationPolicy' required: - - name - references: - description: A set of references that have been affected. - type: array - nullable: true - items: - type: object - properties: - name: - type: string - description: Name of the reference field - example: team_members - description: - type: string - nullable: true - description: Human readable description of the references field - example: First and Last name - added: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - removed: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - required: - - name - required: - - resource - required: - - id - - execution_time - - method - - root_resource - - action - AuditMetadata: - type: object - properties: - messages: - type: array - nullable: true - items: - type: string - example: Message about the result - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: + - escalation_policies + examples: + response: + summary: Response Example + value: + escalation_policies: + - id: PANZZEQ + type: escalation_policy + summary: Engineering Escalation Policy + on_call_handoff_notifications: if_has_services + self: https://api.pagerduty.com/escalation_policies/PANZZEQ + html_url: https://subdomain.pagerduty.com/escalation_policies/PANZZEQ + name: Engineering Escalation Policy + escalation_rules: + - id: PANZZEQ + escalation_delay_in_minutes: 30 + targets: + - id: PEYSGVF + summary: PagerDuty Admin + type: user_reference + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + - id: PI7DH85 + summary: Daily Engineering Rotation + type: schedule_reference + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + num_loops: 0 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + tags: + - Escalation Policies + x-pd-requires-scope: escalation_policies.write + operationId: createEscalationPolicy + description: | + Creates a new escalation policy. At least one escalation rule must be provided. - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + Escalation policies define which user should be alerted at which time. - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#escalation-policies) - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `escalation_policies.write` + summary: Create an escalation policy + parameters: + - $ref: '#/components/parameters/optional_from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + escalation_policy: + $ref: '#/components/schemas/EscalationPolicy' + required: + - escalation_policy + examples: + request: + summary: Request Example + value: + escalation_policy: + type: escalation_policy + name: Engineering Escalation Policy + escalation_rules: + - escalation_delay_in_minutes: 30 + targets: + - id: PEYSGVF + type: user_reference + escalation_rule_assignment_strategy: + type: round_robin + services: + - id: PIJ90N7 + type: service_reference + num_loops: 2 + on_call_handoff_notifications: if_has_services + teams: + - id: PQ9K7I8 + type: team_reference + description: Here is the ep for the engineering team. + description: The escalation policy to be created. + responses: + '201': + description: The escalation policy that was created. + content: + application/json: + schema: + type: object + properties: + escalation_policy: + $ref: '#/components/schemas/EscalationPolicy' + required: + - escalation_policy + examples: + response: + summary: Response Example + value: + escalation_policy: + id: PT20YPA + type: escalation_policy + summary: Engineering Escalation Policy + on_call_handoff_notifications: if_has_services + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + name: Engineering Escalation Policy + escalation_rules: + - id: PT20YPA + escalation_delay_in_minutes: 22 + targets: + - id: PXPGF42 + summary: Earline Greenholt + type: user_reference + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + - id: PI7DH85 + summary: Daily Engineering Rotation + type: schedule_reference + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + num_loops: 2 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and create escalation policies. + /escalation_policies/{id}: + get: + tags: + - Escalation Policies + x-pd-requires-scope: escalation_policies.read + operationId: getEscalationPolicy + description: | + Get information about an existing escalation policy and its rules. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + Escalation policies define which user should be alerted at which time. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#escalation-policies) - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header + Scoped OAuth requires: `escalation_policies.read` + summary: Get an escalation policy + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_escalation_policy' + responses: + '200': + description: The escalation policy object. + content: + application/json: + schema: + type: object + properties: + escalation_policy: + $ref: '#/components/schemas/EscalationPolicy' + required: + - escalation_policy + examples: + response: + summary: Response Example + value: + escalation_policy: + id: PT20YPA + type: escalation_policy + summary: Another Escalation Policy + on_call_handoff_notifications: if_has_services + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + name: Another Escalation Policy + escalation_rules: + - id: PGHDV41 + escalation_delay_in_minutes: 30 + targets: + - id: PAM4FGS + summary: Kyler Kuhn + type: user_reference + self: https://api.pagerduty.com/users/PAM4FGS + html_url: https://subdomain.pagerduty.com/users/PAM4FGS + - id: PI7DH85 + summary: Daily Engineering Rotation + type: schedule_reference + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + num_loops: 2 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + description: This is yet another escalation policy + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + delete: + tags: + - Escalation Policies + x-pd-requires-scope: escalation_policies.write + operationId: deleteEscalationPolicy description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header + Deletes an existing escalation policy and rules. The escalation policy must not be in use by any services. + + Escalation policies define which user should be alerted at which time. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#escalation-policies) + + Scoped OAuth requires: `escalation_policies.write` + summary: Delete an escalation policy + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The escalation policy was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + tags: + - Escalation Policies + x-pd-requires-scope: escalation_policies.write + operationId: updateEscalationPolicy description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Updates an existing escalation policy and rules. + Escalation policies define which user should be alerted at which time. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - escalation_policies: - id: pagerduty.escalation_policies.escalation_policies - name: escalation_policies - title: Escalation Policies - methods: - list_escalation_policies: - operation: - $ref: '#/paths/~1escalation_policies/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.escalation_policies - _list_escalation_policies: - operation: - $ref: '#/paths/~1escalation_policies/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_escalation_policy: - operation: - $ref: '#/paths/~1escalation_policies/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_escalation_policy: - operation: - $ref: '#/paths/~1escalation_policies~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.escalation_policy - _get_escalation_policy: - operation: - $ref: '#/paths/~1escalation_policies~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_escalation_policy: - operation: - $ref: '#/paths/~1escalation_policies~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_escalation_policy: - operation: - $ref: '#/paths/~1escalation_policies~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/get_escalation_policy' - - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/list_escalation_policies' - insert: - - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/create_escalation_policy' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/delete_escalation_policy' - audit_records: - id: pagerduty.escalation_policies.audit_records - name: audit_records - title: Audit Records - methods: - list_escalation_policy_audit_records: - operation: - $ref: '#/paths/~1escalation_policies~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.records - _list_escalation_policy_audit_records: - operation: - $ref: '#/paths/~1escalation_policies~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/audit_records/methods/list_escalation_policy_audit_records' - insert: [] - update: [] - delete: [] -paths: - /escalation_policies: + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#escalation-policies) + + Scoped OAuth requires: `escalation_policies.write` + summary: Update an escalation policy + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + escalation_policy: + $ref: '#/components/schemas/EscalationPolicy' + required: + - escalation_policy + examples: + request: + summary: Request Example + value: + escalation_policy: + type: escalation_policy + name: Engineering Escalation Policy + escalation_rules: + - escalation_delay_in_minutes: 30 + targets: + - id: PEYSGVF + type: user_reference + escalation_rule_assignment_strategy: + type: round_robin + services: + - id: PIJ90N7 + type: service_reference + num_loops: 2 + on_call_handoff_notifications: if_has_services + teams: + - id: PQ9K7I8 + type: team_reference + description: Here is the ep for the engineering team. + description: The escalation policy to be updated. + responses: + '200': + description: The escalation policy that was updated. + content: + application/json: + schema: + type: object + properties: + escalation_policy: + $ref: '#/components/schemas/EscalationPolicy' + required: + - escalation_policy + examples: + response: + summary: Response Example + value: + escalation_policy: + id: PT20YPA + type: escalation_policy + summary: Another Escalation Policy + on_call_handoff_notifications: if_has_services + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + name: Another Escalation Policy + escalation_rules: + - id: PGHDV41 + escalation_delay_in_minutes: 30 + targets: + - id: PAM4FGS + summary: Kyler Kuhn + type: user_reference + self: https://api.pagerduty.com/users/PAM4FGS + html_url: https://subdomain.pagerduty.com/users/PAM4FGS + - id: PI7DH85 + summary: Daily Engineering Rotation + type: schedule_reference + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + num_loops: 2 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + description: This is yet another escalation policy + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage an escalation policy. + /escalation_policies/{id}/audit/records: get: + x-pd-requires-scope: audit_records.read tags: - Escalation Policies - x-pd-requires-scope: escalation_policies.read - operationId: listEscalationPolicies + operationId: listEscalationPolicyAuditRecords + summary: List audit records for an escalation policy description: | - List all of the existing escalation policies. + The returned records are sorted by the `execution_time` from newest to oldest. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordEscalationPolicyResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records of changes made to the escalation policy. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + EscalationPolicy: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the escalation policy. + description: + type: string + description: Escalation policy description. + num_loops: + type: integer + description: The number of times the escalation policy will repeat after reaching the end of its escalation. + default: 0 + minimum: 0 + on_call_handoff_notifications: + type: string + description: Determines how on call handoff notifications will be sent for users on the escalation policy. Defaults to "if_has_services". + enum: + - if_has_services + - always + escalation_rules: + type: array + items: + $ref: '#/components/schemas/EscalationRule' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + minLength: 0 + readOnly: true + teams: + type: array + description: Team associated with the policy. Account must have the `teams` ability to use this parameter. Only one team may be associated with the policy. + items: + $ref: '#/components/schemas/TeamReference' + minLength: 0 + required: + - type + - name + - escalation_rules + example: + id: PQIL2IX + type: escalation_policy + name: Engineering Escalation Policy + escalation_rules: + - escalation_delay_in_minutes: 30 + targets: + - id: PEYSGVF + type: user_reference + escalation_rule_assignment_strategy: + - type: round_robin + services: + - id: PIJ90N7 + type: service_reference + num_loops: 2 + on_call_handoff_notifications: if_has_services + teams: + - id: PQ9K7I8 + type: team_reference + description: Here is the ep for the engineering team. + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + EscalationRule: + type: object + properties: + id: + type: string + readOnly: true + escalation_delay_in_minutes: + type: integer + description: The number of minutes before an unacknowledged incident escalates away from this rule. + targets: + type: array + minItems: 1 + maxItems: 10 + description: The targets an incident should be assigned to upon reaching this rule. + items: + $ref: '#/components/schemas/EscalationTargetReference' + escalation_rule_assignment_strategy: + type: string + description: The strategy used to assign the escalation rule to an incident. + enum: + - round_robin + - assign_to_everyone + required: + - escalation_delay_in_minutes + - targets + example: + escalation_delay_in_minutes: 30 + targets: + - id: PAM4FGS + type: user_reference + - id: PI7DH85 + type: schedule_reference + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: - Escalation policies define which user should be alerted at which time. + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#escalation-policies) + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - Scoped OAuth requires: `escalation_policies.read` - summary: List escalation policies - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/user_ids_escalation_policies' - - $ref: '#/components/parameters/team_ids' - - $ref: '#/components/parameters/include_escalation_policy' - - $ref: '#/components/parameters/sort_by_escalation_policy' - responses: - '200': - description: A paginated array of escalation policy objects. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - escalation_policies: - type: array - items: - $ref: '#/components/schemas/EscalationPolicy' - required: - - escalation_policies - examples: - response: - summary: Response Example + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: + type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned + + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned + + #### Resource deletion + - `before_value` MAY be returned + properties: + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name value: - escalation_policies: - - id: PANZZEQ - type: escalation_policy - summary: Engineering Escalation Policy - on_call_handoff_notifications: if_has_services - self: 'https://api.pagerduty.com/escalation_policies/PANZZEQ' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PANZZEQ' - name: Engineering Escalation Policy - escalation_rules: - - id: PANZZEQ - escalation_delay_in_minutes: 30 - targets: - - id: PEYSGVF - summary: PagerDuty Admin - type: user_reference - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' - - id: PI7DH85 - summary: Daily Engineering Rotation - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - num_loops: 0 - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - tags: - - Escalation Policies - x-pd-requires-scope: escalation_policies.write - operationId: createEscalationPolicy + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: + type: object + properties: + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + required: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + EscalationTargetReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Creates a new escalation policy. At least one escalation rule must be provided. - - Escalation policies define which user should be alerted at which time. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#escalation-policies) - - Scoped OAuth requires: `escalation_policies.write` - summary: Create an escalation policy - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/optional_from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - escalation_policy: - $ref: '#/components/schemas/EscalationPolicy' - required: - - escalation_policy - examples: - request: - summary: Request Example - value: - escalation_policy: - type: escalation_policy - name: Engineering Escalation Policy - escalation_rules: - - escalation_delay_in_minutes: 30 - targets: - - id: PEYSGVF - type: user_reference - services: - - id: PIJ90N7 - type: service_reference - num_loops: 2 - on_call_handoff_notifications: if_has_services - teams: - - id: PQ9K7I8 - type: team_reference - description: Here is the ep for the engineering team. - description: The escalation policy to be created. - responses: - '201': - description: The escalation policy that was created. - content: - application/json: - schema: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - escalation_policy: - $ref: '#/components/schemas/EscalationPolicy' - required: - - escalation_policy - examples: - response: - summary: Response Example - value: - escalation_policy: - id: PT20YPA - type: escalation_policy - summary: Engineering Escalation Policy - on_call_handoff_notifications: if_has_services - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - name: Engineering Escalation Policy - escalation_rules: - - id: PT20YPA - escalation_delay_in_minutes: 22 - targets: - - id: PXPGF42 - summary: Earline Greenholt - type: user_reference - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - - id: PI7DH85 - summary: Daily Engineering Rotation - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - num_loops: 2 - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/escalation_policies/{id}': - get: - tags: - - Escalation Policies - x-pd-requires-scope: escalation_policies.read - operationId: getEscalationPolicy + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Get information about an existing escalation policy and its rules. - - Escalation policies define which user should be alerted at which time. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#escalation-policies) - - Scoped OAuth requires: `escalation_policies.read` - summary: Get an escalation policy - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_escalation_policy' - responses: - '200': - description: The escalation policy object. - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: + description: | + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - escalation_policy: - $ref: '#/components/schemas/EscalationPolicy' - required: - - escalation_policy - examples: - response: - summary: Response Example - value: - escalation_policy: - id: PT20YPA - type: escalation_policy - summary: Another Escalation Policy - on_call_handoff_notifications: if_has_services - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - name: Another Escalation Policy - escalation_rules: - - id: PGHDV41 - escalation_delay_in_minutes: 30 - targets: - - id: PAM4FGS - summary: Kyler Kuhn - type: user_reference - self: 'https://api.pagerduty.com/users/PAM4FGS' - html_url: 'https://subdomain.pagerduty.com/users/PAM4FGS' - - id: PI7DH85 - summary: Daily Engineering Rotation - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - num_loops: 2 - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - description: This is yet another escalation policy - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - delete: - tags: - - Escalation Policies - x-pd-requires-scope: escalation_policies.write - operationId: deleteEscalationPolicy + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Deletes an existing escalation policy and rules. The escalation policy must not be in use by any services. - - Escalation policies define which user should be alerted at which time. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#escalation-policies) + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `escalation_policies.write` - summary: Delete an escalation policy - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The escalation policy was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - tags: - - Escalation Policies - x-pd-requires-scope: escalation_policies.write - operationId: updateEscalationPolicy + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + user_ids_escalation_policies: + name: user_ids[] + in: query + description: Filters the results, showing only escalation policies on which any of the users is a target. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + include_escalation_policy: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - services + - teams + - targets + - escalation_rule_assignment_strategies + uniqueItems: true + sort_by_escalation_policy: + name: sort_by + in: query + description: Used to specify the field you wish to sort the results on. + schema: + type: string + enum: + - name + - name:asc + - name:desc + default: name + optional_from_header: + name: From + in: header + description: The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking. + required: false + schema: + type: string + format: email + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false description: | - Updates an existing escalation policy and rules. - - Escalation policies define which user should be alerted at which time. + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#escalation-policies) + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - Scoped OAuth requires: `escalation_policies.write` - summary: Update an escalation policy - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - escalation_policy: - $ref: '#/components/schemas/EscalationPolicy' - required: - - escalation_policy - examples: - request: - summary: Request Example - value: - escalation_policy: - type: escalation_policy - name: Engineering Escalation Policy - escalation_rules: - - escalation_delay_in_minutes: 30 - targets: - - id: PEYSGVF - type: user_reference - services: - - id: PIJ90N7 - type: service_reference - num_loops: 2 - on_call_handoff_notifications: if_has_services - teams: - - id: PQ9K7I8 - type: team_reference - description: Here is the ep for the engineering team. - description: The escalation policy to be updated. - responses: - '200': - description: The escalation policy that was updated. - content: - application/json: - schema: - type: object - properties: - escalation_policy: - $ref: '#/components/schemas/EscalationPolicy' - required: - - escalation_policy - examples: - response: - summary: Response Example - value: - escalation_policy: - id: PT20YPA - type: escalation_policy - summary: Another Escalation Policy - on_call_handoff_notifications: if_has_services - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - name: Another Escalation Policy - escalation_rules: - - id: PGHDV41 - escalation_delay_in_minutes: 30 - targets: - - id: PAM4FGS - summary: Kyler Kuhn - type: user_reference - self: 'https://api.pagerduty.com/users/PAM4FGS' - html_url: 'https://subdomain.pagerduty.com/users/PAM4FGS' - - id: PI7DH85 - summary: Daily Engineering Rotation - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - num_loops: 2 - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - description: This is yet another escalation policy - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/escalation_policies/{id}/audit/records': - get: - x-pd-requires-scope: audit_records.read - tags: - - Escalation Policies - operationId: listEscalationPolicyAuditRecords - summary: List audit records for an escalation policy - description: | - The returned records are sorted by the `execution_time` from newest to oldest. + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - Scoped OAuth requires: `audit_records.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/audit_since' - - $ref: '#/components/parameters/audit_until' - responses: - '200': - description: Records matching the query criteria. - content: - application/json: - schema: - $ref: '#/components/schemas/AuditRecordResponseSchema' - examples: - response: - $ref: '#/components/examples/AuditRecordEscalationPolicyResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + AuditRecordEscalationPolicyResponse: + summary: Response Example + value: + records: + - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + references: + - added: + - id: PD_TEAM123 + summary: Devops + type: team_reference + self: https://api.pagerduty.com/teams/PD_TEAM123 + html_url: https://mydomain.pagerduty.com/teams/PD_TEAM123 + name: teams + resource: + id: PD_ESCALATION_ID + summary: DevOps Escalation + type: escalation_policy_reference + self: https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID + html_url: https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID + execution_context: + request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 + execution_time: '2021-01-05T16:33:52.026Z' + method: + type: browser + root_resource: + id: PD_ESCALATION_ID + summary: DevOps Escalation + type: escalation_policy_reference + self: https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID + html_url: https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID + - id: PD_CREATE_ESCALATION_POLICY + action: create + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: name + value: DevOps Escalation + - name: description + value: Escalation Policy for devops + - name: num_loops + value: '1' + resource: + id: PD_ESCALATION_ID + summary: DevOps Escalation + type: escalation_policy_reference + self: https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID + html_url: https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID + execution_context: + request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 + execution_time: '2021-01-05T16:33:51.951Z' + method: + type: browser + root_resource: + id: PD_ESCALATION_ID + summary: DevOps Escalation + type: escalation_policy_reference + self: https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID + html_url: https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID + limit: 10 + next_cursor: null + x-stackQL-resources: + escalation_policies: + id: pagerduty.escalation_policies.escalation_policies + name: escalation_policies + title: Escalation Policies + methods: + list: + operation: + $ref: '#/paths/~1escalation_policies/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.escalation_policies + config: + queryParamPushdown: + orderBy: + paramName: sort_by + syntax: suffix + supportedColumns: + - name + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1escalation_policies/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1escalation_policies~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.escalation_policy + delete: + operation: + $ref: '#/paths/~1escalation_policies~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1escalation_policies~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/get' + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/delete' + replace: [] + audit_records: + id: pagerduty.escalation_policies.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1escalation_policies~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/event_orchestrations.yaml b/providers/src/pagerduty/v00.00.00000/services/event_orchestrations.yaml index 16f236ae..cb9be6e9 100644 --- a/providers/src/pagerduty/v00.00.00000/services/event_orchestrations.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/event_orchestrations.yaml @@ -1,3928 +1,2961 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Event Orchestrations + description: Event Orchestrations route, enrich and act on events (global, router, unrouted and service paths, integrations, cache variables, enablements). version: 2.0.0 - title: PagerDuty API - event_orchestrations - description: Event_Orchestrations -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Orchestration: - type: object - properties: - id: - type: string - description: ID of the Orchestration. - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - name: - type: string - description: Name of the Orchestration. - description: - type: string - description: A description of this Orchestration's purpose. - team: - type: object - description: 'Reference to the team that owns the Orchestration. If none is specified, only admins have access.' - properties: - id: - type: string - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - integrations: - type: array - items: - $ref: '#/components/schemas/OrchestrationIntegration' - readOnly: true - routes: - type: integer - description: Number of different Service Orchestration being routed to - readOnly: true - created_at: - type: string - format: date-time - description: The date the Orchestration was created at. - readOnly: true - created_by: - type: object - description: Reference to the user that has created the Orchestration. - properties: - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - readOnly: true - updated_at: - type: string - format: date-time - description: The date the Orchestration was last updated. - readOnly: true - updated_by: - type: object - description: Reference to the user that has updated the Orchestration last. - properties: - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - readOnly: true - version: - type: string - description: Version of the Orchestration. - readOnly: true - OrchestrationIntegration: - type: object - properties: - id: - type: string - description: ID of the Integration. - readOnly: true - label: - type: string - description: Name of the Integration. - parameters: - type: object - readOnly: true - properties: - routing_key: - type: string - description: Routing Key used to send Events to this Orchestration - readOnly: true - type: - type: string - default: global - readOnly: true - OrchestrationGlobal: - allOf: - - type: object - properties: - orchestration_path: - type: object - properties: - type: - type: string - default: service - readOnly: true - parent: - type: object - properties: - id: - type: string - description: ID of the object these Orchestration Rules belongs to. - readOnly: true - type: - type: string - description: A string that determines the schema of the parent object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the parent object is accessible - readOnly: true - readOnly: true - sets: - type: array - description: 'Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules.' - items: - type: object - description: A set of rules - properties: - id: - type: string - description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. - default: start - rules: - type: array - items: +paths: + /event_orchestrations: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: listEventOrchestrations + description: | + List all Global Event Orchestrations on an Account. + + Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + summary: List Event Orchestrations + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/sort_by_event_orchestration' + responses: + '200': + description: A paginated array of Event Orchestration objects. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + orchestrations: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the Orchestration. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + name: + type: string + description: Name of the Orchestration. + description: + type: string + description: A description of this Orchestration's purpose. + team: type: object + description: Reference to the team that owns the Orchestration. If none is specified, only admins have access. properties: id: type: string - description: ID of the rule + type: + type: string + description: A string that determines the schema of the object readOnly: true - label: + self: type: string - description: A description of this rule's purpose. - conditions: - type: array - description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. - items: - type: object - properties: - expression: - type: string - description: A PCL condition string - example: event.summary matches part 'my service error' - actions: - type: object - description: 'When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident.' - disabled: - type: boolean - description: Indicates whether the rule is disabled and would therefore not be evaluated. - catch_all: - type: object - description: 'When none of the Rules in a set match an event, we apply the catch_all actions to the event.' - properties: - actions: - type: object - description: These are the actions that will be taken to change the resulting alert and incident. - created_at: - type: string - format: date-time - description: The date/time the object was created. - readOnly: true - created_by: - type: object - description: Reference to the user that created the object. - properties: - id: - type: string - readOnly: true - type: - type: string - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - updated_by: - type: object - description: Reference to the user that last updated the object. - properties: - id: - type: string - readOnly: true - type: - type: string - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - readOnly: true - version: - type: string - description: Version of these Orchestration Rules - readOnly: true - required: - - orchestration_path - - type: object - properties: - orchestration_path: - properties: - type: - description: Indicates that these are a set of "global" rules. - default: global - parent: - properties: - id: - description: ID of the Global Event Orchestration these Global Rules belongs to. - type: - enum: - - event_orchestration_reference - sets: - description: 'You must define at least a "start" set, but you can also define any number of additional sets that are routed to by other rules to form a directional graph.' - items: - properties: - rules: - items: - properties: - actions: - allOf: - - properties: - route_to: - type: string - description: The ID of a Set from this Global Orchestration whose rules you also want to use with event that match this rule. - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/0' - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/1' - - $ref: '#/components/schemas/OrchestrationUnrouted/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions' - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/3' - catch_all: - description: 'When none of the rules match an event, the event will be routed according to the catch_all settings.' - properties: - actions: - allOf: - - type: object - properties: - suppress: - type: boolean - description: 'If true, the resulting alert is suppressed. Suppressed alerts will not trigger an incident.' - suspend: - type: integer - description: The number of seconds to suspend the resulting alert before triggering. This effectively pauses incident notifications. If a resolve event arrives before the alert triggers then PagerDuty won't create an incident for this the resulting alert. - drop_event: - type: boolean - description: 'If true, this event will be dropped. Dropped events will not trigger or resolve an alert or an incident. Dropped events will not be evaluated against router rules.' - - type: object + format: url + description: The API show URL at which the object is accessible + readOnly: true + routes: + type: integer + description: Number of different Service Orchestration being routed to + readOnly: true + created_at: + type: string + format: date-time + description: The date the Orchestration was created at. + readOnly: true + created_by: + type: object + description: Reference to the user that has created the Orchestration. properties: - priority: + id: type: string - description: The ID of the priority you want to set on resulting incident. You can find the list of priority IDs for your account by calling the priorities endpoint. - example: P53ZZH5 - annotate: + readOnly: true + type: type: string - description: Add this text as a note on the resulting incident. - - $ref: '#/components/schemas/OrchestrationUnrouted/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions' - - type: object - properties: - automation_actions: - type: array - description: Create a Webhoook associated with the resulting incident. - items: - type: object - properties: - name: - type: string - description: The name of the Webhook. - url: - type: string - description: The API endpoint where PagerDuty's servers will send the webhook request. - auto_send: - type: boolean - description: 'When true, PagerDuty''s servers will automatically send this webhook request as soon as the resulting incident is created. When false, your incident responder will be able to manually trigger the Webhook via the PagerDuty website & mobile app.' - default: false - headers: - type: array - description: Specify custom key/value pairs that'll be sent with the webhook request as request headers. - items: - type: object - properties: - key: - type: string - value: - type: string - parameters: - type: array - description: Specify custom key/value pairs that'll be included in the webhook request's JSON payload. - items: - type: object - properties: - key: - type: string - value: - type: string - example: - $ref: '#/components/examples/OrchestrationPathGlobalTypeResponse/value' - OrchestrationUnrouted: - allOf: - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/0' - - type: object - properties: - orchestration_path: - properties: - type: - description: Indicates that these are a "unrouted" type set of rules. - default: unrouted - parent: - properties: - id: - description: ID of the Global Event Orchestration this Unrouted Orchestration belongs to. - type: - enum: - - event_orchestration_reference - sets: - description: 'An Unrouted Orchestration must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph.' - items: - properties: - rules: - items: - properties: - actions: - allOf: - - properties: - route_to: - type: string - description: The ID of a Set from this Unrouted Orchestration whose rules you also want to use with event that match this rule. - - $ref: '#/components/schemas/OrchestrationUnrouted/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions' - catch_all: - properties: - actions: - type: object - properties: - severity: - type: string - description: Set the severity of the resulting alert. - enum: - - info - - error - - warning - - critical - event_action: + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: type: string - description: Set whether the resulting alert status is trigger or resolve. - enum: - - trigger - - resolve - variables: - type: array - description: Populate variables from event payloads and use those variables in other event actions. - items: - type: object - properties: - name: - type: string - description: The name of the variable - example: server_name - path: - type: string - description: 'Path to a field in an event, in dot-notation.' - example: event.summary - type: - type: string - description: The type of operation to populate the variable. Currently only Regex-based variable extraction is supported. - enum: - - regex - value: - type: string - description: 'A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used.' - example: High CPU on (.*) server - extractions: - type: array - description: Dynamically extract values to set and modify new and existing PD-CEF fields. - items: - anyOf: - - type: object - description: Use a template string & variables - properties: - target: - type: string - description: The PD-CEF field that will be set with the value from the template. - example: event.summary - template: - type: string - description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. - example: 'High CPU on {{hostname}} server' - - type: object - description: Use a regex to extract a value - properties: - target: - type: string - description: The PD-CEF field that will be set with the value from the regex. - example: event.custom_details.server - regex: - type: string - description: 'A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used.' - example: High CPU on (.*) server - source: - type: string - description: The path to the event field where the regex will be applied to extract a value. - example: event.summary - example: - orchestration_path: - type: unrouted - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router' - sets: - - id: start - rules: - - label: Update the summary of un-matched Critical alerts so they're easier to spot - id: 38880ffb - conditions: - - expression: event.severity matches 'critical' - actions: - extractions: - - target: event.summary - template: '[Critical Unrouted] {{event.summary}}' - - label: Reduce the severity of all other unrouted events - id: 3896801e - conditions: [] - actions: - severity: info - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod - OrchestrationWarningIneligible: - type: object - description: This rule is using a feature that is currently unavailable on the current account plan. - properties: - message: - type: string - description: A description of the warning and any potential side effects. - rule_id: - type: string - description: The ID of the rule using the feature. - feature: - type: string - description: The feature that the current account plan does not have access to. - enum: - - threshold_condition - - recurring_condition - - scheduled_condition - - nested_rules - - suspend - - automation_actions - - pagerduty_automation_actions - - extractions - - variables - - suppress - feature_type: - type: string - description: 'Specifies whether the feature is a part of the rule''s conditions, or its actions.' - enum: - - conditions - - actions - - nested_rules - warning_type: - type: string - description: The type of warning that is being returned for the rule. - enum: - - forbidden_feature - OrchestrationRouter: - allOf: - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/0' - - type: object - properties: - orchestration_path: - properties: - type: - description: Indicates that these are a "router" type set of rules. - default: router - parent: - properties: - id: - description: ID of the Global Event Orchestration this Router belongs to. - type: - enum: - - event_orchestration_reference - sets: - description: 'The Router contains a single set of rules (the "start" set). The Router evaluates Events against these Rules, one at a time, and routes each Event to a specific Service based on the first rule that matches.' - maxItems: 1 - minItems: 1 - items: - properties: - rules: - items: + format: date-time + description: The date the Orchestration was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that has updated the Orchestration last. properties: - actions: - properties: - route_to: - type: string - description: The ID of the target Service for the resulting alert. You can find the service you want to route to by calling the services endpoint. - example: PSI2I2O - catch_all: - description: 'When none of the rules match an event, the event will be routed according to the catch_all settings.' - properties: - actions: - properties: - route_to: - description: 'With a value of ''unrouted'', all events are sent to the Unrouted Orchestration.' + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: type: string - default: unrouted - example: - orchestration_path: - type: router - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router' - sets: - - id: start - rules: - - label: Events relating to our relational database - id: 1c26698b - conditions: - - expression: event.summary matches part 'database' - - expression: 'event.source matches regex ''db[0-9]+-server''' - actions: - route_to: PB31XBA - - label: Events relating to our www app server - id: d9801904 - conditions: - - expression: event.summary matches part 'www' - actions: - route_to: PC2D9ML - catch_all: - actions: - route_to: unrouted - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: 9co0z4b152oICsoV91_PW2.ww8ip_xap - ServiceOrchestration: - allOf: - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/0' - - type: object - properties: - orchestration_path: - properties: - type: - description: Indicates that these are sets of rules belonging to a service. - default: service - parent: - properties: - id: - description: The ID of the Service this Orchestration belongs to. - type: - enum: - - service_reference - sets: - description: 'A Service Orchestration must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph.' - items: - properties: - rules: - items: - properties: - actions: - allOf: - - properties: - route_to: - type: string - description: The ID of a Set from this Service Orchestration whose rules you also want to use with event that match this rule. - - $ref: '#/components/schemas/ServiceOrchestration/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/0' - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/1' - - $ref: '#/components/schemas/OrchestrationUnrouted/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions' - - $ref: '#/components/schemas/ServiceOrchestration/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/3' - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/3' - catch_all: - properties: - actions: - allOf: - - type: object - properties: - suppress: - type: boolean - description: 'If true, the resulting alert is suppressed. Suppressed alerts will not trigger an incident.' - suspend: - type: integer - description: The number of seconds to suspend the resulting alert before triggering. This effectively pauses incident notifications. If a resolve event arrives before the alert triggers then PagerDuty won't create an incident for this the resulting alert. - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/1' - - $ref: '#/components/schemas/OrchestrationUnrouted/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions' - - type: object - properties: - pagerduty_automation_actions: - type: array - description: Configure an Automation Action associated with the resulting incident. - items: - type: object - properties: - action_id: - type: string - description: Automation Action ID - - $ref: '#/components/schemas/OrchestrationGlobal/allOf/1/properties/orchestration_path/properties/catch_all/properties/actions/allOf/3' - example: - orchestration_path: - type: service - parent: - id: PC2D9ML - self: 'https://api.pagerduty.com/service/PC2D9ML' - type: service_reference - self: 'https://api.pagerduty.com/event_orchestrations/service/PC2D9ML' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - event.severity matches 'critical' - actions: - annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' - priority: P0IN2KQ - suppress: false - - label: If the API endpoints return HTTP 502 run an Automation Action that restarts the service - id: 8a874630 - conditions: - - event.custom_details.http_status_code equals '502' - actions: - pagerduty_automation_actions: - - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB - - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel - id: 1f6d9a33 - conditions: - - event.custom_details.hostname matches part 'canary' - actions: - automation_actions: - - name: Canary Slack Notification - url: 'https://our-slack-listerner.test/send-notification' - auto_send: true - headers: - - key: X-Notification-Source - value: PagerDuty Incident Webhook - parameters: - - key: channel - value: '#my-team-channel' - - key: message - value: Something is wrong with the canary deployment - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + description: Version of the Orchestration. + readOnly: true + examples: + response: + summary: Response Example + value: + orchestrations: + - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + name: Shopping Cart Orchestration + description: Send shopping cart alerts to the right services + team: + id: PQYP5MN + type: team_reference + self: https://api.pagerduty.com/teams/PQYP5MN + routes: 0 + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + limit: 25 + offset: 0 + more: false + total: 1 + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + post: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + description: | + Create a Global Event Orchestration. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Scoped OAuth requires: `event_orchestrations.write` + summary: Create an Orchestration + operationId: postOrchestration + requestBody: + content: + application/json: + schema: + type: object + properties: + orchestration: + $ref: '#/components/schemas/Orchestration' + required: + - orchestration + examples: + create_orchestration: + summary: 'Example: Create Orchestration' + value: + orchestration: + name: New Orchestration + description: This is a newly created orchestration + team: + id: PXD0WR8 + parameters: [] + responses: + '201': + description: The Orchestration that was created. + content: + application/json: + schema: + type: object + properties: + orchestration: + $ref: '#/components/schemas/Orchestration' + examples: + response: + summary: Response Example + value: + orchestration: + id: 3aae9a17-8585-4d8c-93d3-99742801cd95 + self: https://api.pagerduty.com/event_orchestrations/3aae9a17-8585-4d8c-93d3-99742801cd95 + name: New Orchestration + description: This is a newly created orchestration + team: + id: PXD0WR8 + self: https://api.pagerduty.com/teams/PXD0WR8 + type: team_reference + integrations: + - id: 461cd942-d7cc-43ef-ac7d-86ba2d58fc45 + label: New Orchestration Default Integration + parameters: + routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D + type: global + routes: 0 + created_at: '2021-12-02T14:21:42Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-12-02T14:21:42Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: oBgzJsGDOz99G.FKZ0c1C6hw35twk_Ib + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Manage Global Event Orchestrations. + /event_orchestrations/{id}: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: getOrchestration description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Get a Global Event Orchestration. + Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotAllowed: - description: 'The request was received and recognized by the server, but its HTTP method was rejected for the requested resource.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - OrchestrationPathRouterTypeResponse: - description: The Orchestration Router object. - content: - application/json: - schema: - $ref: '#/components/schemas/OrchestrationRouter' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: router - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router' - sets: - - id: start - rules: - - label: Events relating to our relational database - id: 1c26698b - conditions: - - expression: event.summary matches part 'database' - - expression: 'event.source matches regex ''db[0-9]+-server''' - actions: - route_to: PB31XBA - - label: Events relating to our www app server - id: d9801904 - conditions: - - expression: event.summary matches part 'www' - actions: - route_to: PC2D9ML - catch_all: - actions: - route_to: unrouted - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: 9co0z4b152oICsoV91_PW2.ww8ip_xap - OrchestrationPathUnroutedTypeResponse: - description: The Unrouted Orchestration object. - content: - application/json: - schema: - $ref: '#/components/schemas/OrchestrationUnrouted' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: unrouted - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router' - sets: - - id: start - rules: - - label: Update the summary of un-matched Critical alerts so they're easier to spot - id: 38880ffb - conditions: - - expression: event.severity matches 'critical' - actions: - extractions: - - target: event.summary - template: '[Critical Unrouted] {{event.summary}}' - - label: Reduce the severity of all other unrouted events - id: 3896801e - conditions: [] - actions: - severity: info - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod - OrchestrationPathServiceTypeResponse: - description: The Service Orchestration object. - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceOrchestration' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: service - parent: - id: PC2D9ML - self: 'https://api.pagerduty.com/service/PC2D9ML' - type: service_reference - self: 'https://api.pagerduty.com/event_orchestrations/service/PC2D9ML' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to every event sent to this Service - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - pagerduty_automation_actions: - - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' - priority: P0IN2KQ - suppress: false - - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel - id: 1f6d9a33 - conditions: - - expression: event.custom_details.hostname matches part 'canary' - actions: - automation_actions: - - name: Canary Slack Notification - url: 'https://our-slack-listerner.test/send-notification' - auto_send: true - headers: - - key: X-Notification-Source - value: PagerDuty Incident Webhook - parameters: - - key: channel - value: '#my-team-channel' - - key: message - value: Something is wrong with the canary deployment - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - OrchestrationPathServiceActiveResponse: - description: An object with the active status. - content: - application/json: - schema: - type: object - properties: - active: - type: boolean - description: The status of the service orchestration. - examples: - response: - summary: Example Response - value: - active: false - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - event_orchestrations: - id: pagerduty.event_orchestrations.event_orchestrations - name: event_orchestrations - title: Event Orchestrations - methods: - list_event_orchestrations: - operation: - $ref: '#/paths/~1event_orchestrations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orchestrations - _list_event_orchestrations: - operation: - $ref: '#/paths/~1event_orchestrations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - post_orchestration: - operation: - $ref: '#/paths/~1event_orchestrations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_orchestration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orchestration - _get_orchestration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orchestration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_orchestration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/get_orchestration' - - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/list_event_orchestrations' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/delete_orchestration' - integrations: - id: pagerduty.event_orchestrations.integrations - name: integrations - title: Integrations - methods: - list_orchestration_integrations: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.integrations - _list_orchestration_integrations: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - post_orchestration_integration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_orchestration_integration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.integration - _get_orchestration_integration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orchestration_integration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_orchestration_integration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - migrate_orchestration_integration: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1migration/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/integrations/methods/get_orchestration_integration' - - $ref: '#/components/x-stackQL-resources/integrations/methods/list_orchestration_integrations' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/integrations/methods/delete_orchestration_integration' - global: - id: pagerduty.event_orchestrations.global - name: global - title: Global - methods: - get_orch_path_global: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1global/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orchestration_path - _get_orch_path_global: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1global/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orch_path_global: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1global/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/global/methods/get_orch_path_global' - insert: [] - update: [] - delete: [] - router: - id: pagerduty.event_orchestrations.router - name: router - title: Router - methods: - get_orch_path_router: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1router/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orchestration_path - _get_orch_path_router: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1router/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orch_path_router: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1router/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/router/methods/get_orch_path_router' - insert: [] - update: [] - delete: [] - unrouted: - id: pagerduty.event_orchestrations.unrouted - name: unrouted - title: Unrouted - methods: - get_orch_path_unrouted: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1unrouted/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orchestration_path - _get_orch_path_unrouted: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1unrouted/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orch_path_unrouted: - operation: - $ref: '#/paths/~1event_orchestrations~1{id}~1unrouted/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/unrouted/methods/get_orch_path_unrouted' - insert: [] - update: [] - delete: [] - services: - id: pagerduty.event_orchestrations.services - name: services - title: Services - methods: - get_orch_path_service: - operation: - $ref: '#/paths/~1event_orchestrations~1services~1{service_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.orchestration_path - _get_orch_path_service: - operation: - $ref: '#/paths/~1event_orchestrations~1services~1{service_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orch_path_service: - operation: - $ref: '#/paths/~1event_orchestrations~1services~1{service_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/services/methods/get_orch_path_service' - insert: [] - update: [] - delete: [] - services_active: - id: pagerduty.event_orchestrations.services_active - name: services_active - title: Services Active - methods: - get_orch_active_status: - operation: - $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1active/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $ - _get_orch_active_status: - operation: - $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1active/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_orch_active_status: - operation: - $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1active/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/services_active/methods/get_orch_active_status' - insert: [] - update: [] - delete: [] -paths: - /event_orchestrations: + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + summary: Get an Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + description: The Orchestration object. + content: + application/json: + schema: + type: object + properties: + orchestration: + $ref: '#/components/schemas/Orchestration' + examples: + response: + summary: Response Example + value: + orchestration: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + name: Shopping Cart Orchestration + description: Send shopping cart alerts to the right services + team: + id: PQYP5MN + type: team_reference + self: https://api.pagerduty.com/teams/PQYP5MN + integrations: + - id: 9c5ff030-12da-4204-a067-25ee61a8df6c + label: Shopping Cart Orchestration Default Integration + parameters: + routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T + type: global + routes: 0 + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: updateOrchestration + description: | + Update a Global Event Orchestration. + + Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Update an Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + orchestration: + $ref: '#/components/schemas/Orchestration' + required: + - orchestration + examples: + change_name: + summary: 'Example: Change name' + value: + orchestration: + name: Go-Kart Orchestration + change_team: + summary: 'Example: Change team' + value: + orchestration: + team: + id: PWL7QXS + change_description: + summary: 'Example: Change description' + value: + orchestration: + description: Orchestration that does some stuff + description: '' + responses: + '200': + description: The Orchestration that was updated. + content: + application/json: + schema: + type: object + properties: + orchestration: + $ref: '#/components/schemas/Orchestration' + examples: + response: + summary: Response Example + value: + orchestration: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + name: Go-Kart Orchestration + description: Orchestration that does some stuff + team: + id: PWL7QXS + type: team_reference + self: https://api.pagerduty.com/teams/PWL7QXS + integrations: + - id: 9c5ff030-12da-4204-a067-25ee61a8df6c + label: Go-Kart Orchestration Default Integration + parameters: + routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T + type: global + routes: 0 + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-19T11:42:32Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: BrWLKQBLm8QO2ZYQ0GosHLxdbgWZ0ZR3 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + delete: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: deleteOrchestration + description: | + Delete a Global Event Orchestration. + + Once deleted, you will no longer be able to ingest events into PagerDuty using this Orchestration's Routing Key. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Delete an Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '204': + description: The Orchestration was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Manage a Global Event Orchestration. + /event_orchestrations/{id}/integrations: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + description: | + List the Integrations associated with this Event Orchestrations. + + You can use a Routing Key from these Integrations to send events to PagerDuty! + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + summary: List Integrations for an Event Orchestration + operationId: listOrchestrationIntegrations + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + description: The Integrations for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + integrations: + type: array + items: + $ref: '#/components/schemas/OrchestrationIntegration' + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + examples: + response: + summary: Response Example + value: + integrations: + - id: 9c5ff030-12da-4204-a067-25ee61a8df6c + label: Go-Kart Orchestration Default Integration + parameters: + routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D + type: global + - id: 11832872-88b6-4661-8972-db5712b69496 + label: Integration for Monitoring Tool X + parameters: + routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T + type: global + total: 2 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '405': + $ref: '#/components/responses/NotAllowed' + post: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + description: | + Create an Integration associated with this Event Orchestration. + + You can then use the Routing Key from this new Integration to send events to PagerDuty! + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Create an Integration for an Event Orchestration + operationId: postOrchestrationIntegration + requestBody: + content: + application/json: + schema: + type: object + properties: + integration: + type: object + properties: + label: + type: string + description: Name of the Integration. + required: + - label + required: + - integration + examples: + create_orchestration: + summary: 'Example: Create an Integration' + value: + integration: + label: Integration for Monitoring Tool X + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '201': + description: The Integration that was created. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/OrchestrationIntegration' + examples: + response: + summary: Response Example + value: + integration: + id: 11832872-88b6-4661-8972-db5712b69496 + label: Integration for Monitoring Tool X + parameters: + routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T + type: global + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Manage Integrations for a Global Event Orchestration. + /event_orchestrations/{id}/integrations/{integration_id}: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + description: | + Get an Integration associated with this Event Orchestrations. + + You can use the Routing Key from this Integration to send events to PagerDuty! + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + summary: Get an Integration for an Event Orchestration + operationId: getOrchestrationIntegration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_integration_id' + responses: + '200': + description: An Integration for this Event Orchestration. + content: + application/json: + schema: + properties: + integration: + $ref: '#/components/schemas/OrchestrationIntegration' + type: object + examples: + response: + summary: Response Example + value: + integration: + id: 9c5ff030-12da-4204-a067-25ee61a8df6c + label: Go-Kart Orchestration Default Integration + parameters: + routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D + type: global + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '405': + $ref: '#/components/responses/NotAllowed' + put: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + description: | + Update an Integration associated with this Event Orchestrations. + + You can use the Routing Key from this Integration to send events to PagerDuty! + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Update an Integration for an Event Orchestration + operationId: updateOrchestrationIntegration + requestBody: + content: + application/json: + schema: + type: object + properties: + integration: + type: object + properties: + label: + type: string + description: Name of the Integration. + required: + - label + required: + - integration + examples: + create_orchestration: + summary: 'Example: Update an Integration' + value: + integration: + label: New Name for my Integration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_integration_id' + responses: + '200': + description: The Integration that was updated. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/OrchestrationIntegration' + examples: + response: + summary: Response Example + value: + integration: + id: 11832872-88b6-4661-8972-db5712b69496 + label: New Name for my Integration + parameters: + routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T + type: global + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + delete: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + description: | + Delete an Integration and its associated Routing Key. + + Once deleted, PagerDuty will drop all future events sent to PagerDuty using the Routing Key. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Delete an Integration for an Event Orchestration + operationId: deleteOrchestrationIntegration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_integration_id' + responses: + '204': + description: The Integration was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Manage an Integration for a Global Event Orchestration. + /event_orchestrations/{id}/integrations/migration: + post: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + description: | + Move an Integration and its Routing Key from the Event Orchestration specified in the request payload, to the Event Orchestration specified in the request URL. + + Any future events sent to this Integration's Routing Key will be processed by this Event Orchestration's Rules. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Migrate an Integration from one Event Orchestration to another + operationId: migrateOrchestrationIntegration + requestBody: + content: + application/json: + schema: + type: object + properties: + source_id: + type: string + description: The ID of the Event Orchestration you'll be moving the Integration away from + source_type: + type: string + description: The type of of the `source_id` object + enum: + - orchestration + integration_id: + type: string + description: The ID of the Integration you'll be moving + required: + - source_id + - source_type + - integration_id + examples: + migrate_integration: + summary: 'Example: Migrate an Integration' + value: + source_type: orchestration + source_id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + integration_id: 11832872-88b6-4661-8972-db5712b69496 + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + description: The Integration that was migrated + content: + application/json: + schema: + type: object + properties: + integrations: + type: array + items: + $ref: '#/components/schemas/OrchestrationIntegration' + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + examples: + response: + summary: Response Example + value: + integrations: + - id: 9c5ff030-12da-4204-a067-25ee61a8df6c + label: Go-Kart Orchestration Default Integration + parameters: + routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D + type: global + - id: 11832872-88b6-4661-8972-db5712b69496 + label: Integration for Monitoring Tool X + parameters: + routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T + type: global + total: 2 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Migrate an Integration to this Global Event Orchestration. + /event_orchestrations/{id}/global: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: getOrchPathGlobal + summary: Get the Global Orchestration for an Event Orchestration + description: | + Get the Global Orchestration for an Event Orchestration. + + Global Orchestration Rules allows you to create a set of Event Rules. These rules evaluate against all Events sent to an Event Orchestration. When a matching rule is found, it can modify and enhance the event and can route the event to another set of Global Rules within this Orchestration for further processing. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + description: The Global Orchestration Rules object. + content: + application/json: + schema: + $ref: '#/components/schemas/OrchestrationGlobal' + examples: + response: + $ref: '#/components/examples/OrchestrationPathGlobalTypeResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: updateOrchPathGlobal + summary: Update the Global Orchestration for an Event Orchestration + description: | + Update the Global Orchestration for an Event Orchestration. + + Global Orchestration Rules allows you to create a set of Event Rules. These rules evaluate against all Events sent to an Event Orchestration. When a matching rule is found, it can modify and enhance the event and can route the event to another set of Global Rules within this Orchestration for further processing. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + requestBody: + description: Update Global Orchestration rules. Omitted rules and rule details are deleted. + content: + application/json: + schema: + $ref: '#/components/schemas/OrchestrationGlobal' + examples: + request: + summary: Example Request + value: + orchestration_path: + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: Drop all events from the very-noisy monitoring tool + id: 1f6d9a33 + conditions: + - expression: event.source matches part 'very-noisy' + actions: + drop_event: true + - label: Assign all database related incidents to the Database Team's escalation policy + id: 4314d9ce + conditions: + - expression: event.source matches 'prod-db' + actions: + escalation_policy: PEYSGVF + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + responses: + '200': + description: The Global Orchestration Rules object. + content: + application/json: + schema: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: + type: object + properties: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: + type: object + description: A set of rules + properties: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + warnings: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OrchestrationWarningIneligible' + - $ref: '#/components/schemas/OrchestrationWarningInvalidData' + required: + - orchestration_path + example: + orchestration_path: + type: global + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: Drop all events from the very-noisy monitoring tool + id: 1f6d9a33 + conditions: + - expression: event.source matches part 'very-noisy' + actions: + drop_event: true + - label: Assign all database related incidents to the Database Team's escalation policy + id: 4314d9ce + conditions: + - expression: event.source matches 'prod-db' + actions: + escalation_policy: PEYSGVF + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + examples: + response: + summary: Example Response + value: + orchestration_path: + type: global + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: Drop all events from the very-noisy monitoring tool + id: 1f6d9a33 + conditions: + - expression: event.source matches part 'very-noisy' + actions: + drop_event: true + - label: Assign all database related incidents to the Database Team's escalation policy + id: 4314d9ce + conditions: + - expression: event.source matches 'prod-db' + actions: + escalation_policy: PEYSGVF + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + warnings: + - feature: nested_rules + feature_type: nested_rules + message: This orchestration contains Nested Rules, which is not available on your account plan. The orchestration will be updated, however, only rules in the 'start' set will be evaluated + rule_id: null + warning_type: forbidden_feature + - feature: variables + feature_type: actions + message: This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: c91f72f3 + warning_type: forbidden_feature + - feature: extractions + feature_type: actions + message: This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: c91f72f3 + warning_type: forbidden_feature + - feature: recurring_condition + feature_type: conditions + message: This rule uses Recurring Condition, which is a condition not available on your account plan. The rule will be updated, but it will not be evaluated by events + rule_id: cd770384 + warning_type: forbidden_feature + - feature: incident_custom_field_updates + feature_type: actions + message: This rule uses Incident Custom Field update, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: c91f72f3 + warning_type: forbidden_feature + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: View and update Global Orchestration Rules. + /event_orchestrations/{id}/router: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: getOrchPathRouter + summary: Get the Router for an Event Orchestration + description: | + Get a Global Orchestration's Routing Rules. + + An Orchestration Router allows you to create a set of Event Rules. The Router evaluates Events you send to this Global Orchestration against each of its rules, one at a time, and routes the event to a specific Service based on the first rule that matches. If an event doesn't match any rules, it'll be sent to service specified in as the `catch_all` or the "Unrouted" Orchestration if no service is specified. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationPathRouterTypeResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: updateOrchPathRouter + summary: Update the Router for an Event Orchestration + description: | + Update a Global Orchestration's Routing Rules. + + An Orchestration Router allows you to create a set of Event Rules. The Router evaluates Events you send to this Global Orchestration against each of its rules, one at a time, and routes the event to a specific Service based on the first rule that matches. If an event doesn't match any rules, it'll be sent to service specified in as the `catch_all` or the "Unrouted" Orchestration if no service is specified. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + requestBody: + description: Updates to Orchestration Router details. Omitted rules and rule details are deleted. + content: + application/json: + schema: + $ref: '#/components/schemas/OrchestrationRouter' + examples: + request: + summary: Example Request + value: + orchestration_path: + sets: + - id: start + rules: + - label: Dynamically route events + id: 763110d0 + actions: + dynamic_route_to: + source: event.custom_details.pd_service + regex: .* + lookup_by: service_name + - label: Events relating to our relational database + id: 1c26698b + conditions: + - expression: event.summary matches part 'database' + - expression: event.source matches regex 'db[0-9]+-server' + actions: + route_to: PB31XBA + - label: Events relating to our www app server + id: d9801904 + conditions: + - expression: event.summary matches part 'www' + actions: + route_to: PC2D9ML + - label: Events relating to our delivery pipeline + id: ed624931 + conditions: + - expression: trigger_count over 1 minute > 3 + actions: + route_to: PQSJBMA + responses: + '200': + description: The Orchestration Router object. + content: + application/json: + schema: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: + type: object + properties: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: + type: object + description: A set of rules + properties: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + warnings: + type: array + description: List of applicable warnings messages for each rule using a feature not available on your account plan. + items: + anyOf: + - $ref: '#/components/schemas/OrchestrationWarningIneligible' + required: + - orchestration_path + example: + orchestration_path: + type: router + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Events relating to our relational database + id: 1c26698b + conditions: + - expression: event.summary matches part 'database' + - expression: event.source matches regex 'db[0-9]+-server' + actions: + route_to: PB31XBA + - label: Events relating to our www app server + id: d9801904 + conditions: + - expression: event.summary matches part 'www' + actions: + route_to: PC2D9ML + catch_all: + actions: + route_to: unrouted + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + examples: + response: + summary: Example Response + value: + orchestration_path: + type: router + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Dynamically route events + id: 763110d0 + actions: + dynamic_route_to: + source: event.custom_details.pd_service + regex: .* + lookup_by: service_name + - label: Events relating to our relational database + id: 1c26698b + conditions: + - expression: event.summary matches part 'database' + - expression: event.source matches regex 'db[0-9]+-server' + actions: + route_to: PB31XBA + - label: Events relating to our www app server + id: d9801904 + conditions: + - expression: event.summary matches part 'www' + actions: + route_to: PC2D9ML + - label: Events relating to our delivery pipeline + id: ed624931 + conditions: + - expression: trigger_count over 1 minute > 3 + actions: + route_to: PQSJBMA + catch_all: + actions: + route_to: unrouted + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + warnings: + - feature: dynamic_route_to, + feature_type: actions, + message: This rule uses Dynamic Routing, which is an action not available on your account plan. The rule will be updated, but it will not be evaluated by events, + rule_id: 763110d0, + warning_type: forbidden_feature + - feature: threshold_condition + feature_type: conditions + message: This rule uses Threshold Condition, which is a condition not available on your account plan. The rule will be updated, but it will not be evaluated by events + rule_id: ed624931 + warning_type: forbidden_feature + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: View and update an Orchestration Router. + /event_orchestrations/{id}/unrouted: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: getOrchPathUnrouted + summary: Get the Unrouted Orchestration for an Event Orchestration + description: | + Get a Global Event Orchestration's Rules for Unrouted events. + + An Unrouted Orchestration allows you to create a set of Event Rules that will be evaluated against all events that don't match any rules in the Global Orchestration's Router. Events that reach the Unrouted Orchestration will never be routed to a specific Service. + + The Unrouted Orchestration evaluates Events sent to it against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Unrouted Orchestration for further processing. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationPathUnroutedTypeResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: updateOrchPathUnrouted + summary: Update the Unrouted Orchestration for an Event Orchestration + description: | + Update a Global Event Orchestration's Rules for Unrouted events. + + An Unrouted Orchestration allows you to create a set of Event Rules that will be evaluated against all events that don't match any rules in the Global Orchestration's Router. Events that reach the Unrouted Orchestration will never be routed to a specific Service. + + The Unrouted Orchestration evaluates Events sent to it against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Unrouted Orchestration for further processing. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + requestBody: + description: Updates to Unrouted Orchestration rules. Omitted rules and rule details are deleted. + content: + application/json: + schema: + $ref: '#/components/schemas/OrchestrationUnrouted' + examples: + request: + summary: Example Request + value: + orchestration_path: + sets: + - id: start + rules: + - label: Update the summary of un-matched Critical alerts so they're easier to spot + id: 38880ffb + conditions: + - expression: event.severity matches 'critical' + actions: + extractions: + - target: event.summary + template: '[Critical Unrouted] {{event.summary}}' + - label: Reduce the severity of all other unrouted events + id: 3896801e + conditions: [] + actions: + severity: info + catch_all: + actions: + suppress: true + responses: + '200': + description: The Unrouted Orchestration object. + content: + application/json: + schema: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: + type: object + properties: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: + type: object + description: A set of rules + properties: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + warnings: + type: array + description: List of applicable warnings messages for each rule using a feature not available on your account plan. + items: + anyOf: + - $ref: '#/components/schemas/OrchestrationWarningIneligible' + required: + - orchestration_path + example: + orchestration_path: + type: unrouted + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Update the summary of un-matched Critical alerts so they're easier to spot + id: 38880ffb + conditions: + - expression: event.severity matches 'critical' + actions: + extractions: + - target: event.summary + template: '[Critical Unrouted] {{event.summary}}' + - label: Reduce the severity of all other unrouted events + id: 3896801e + conditions: [] + actions: + severity: info + catch_all: + actions: + suppress: true + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod + examples: + response: + summary: Example Response + value: + orchestration_path: + type: unrouted + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Update the summary of un-matched Critical alerts so they're easier to spot + id: 38880ffb + conditions: + - expression: event.severity matches 'critical' + actions: + extractions: + - target: event.summary + template: '[Critical Unrouted] {{event.summary}}' + - label: Reduce the severity of all other unrouted events + id: 3896801e + conditions: [] + actions: + severity: info + catch_all: + actions: + suppress: true + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod + warnings: + - feature: extractions + feature_type: actions + message: This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: 3896801e + warning_type: forbidden_feature + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: View and update an Unrouted Orchestration. + /event_orchestrations/services/{service_id}: + get: + x-pd-requires-scope: services.read + tags: + - Event Orchestrations + operationId: getOrchPathService + summary: Get the Service Orchestration for a Service + description: | + Get a Service Orchestration. + + A Service Orchestration allows you to create a set of Event Rules. The Service Orchestration evaluates Events sent to this Service against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Service Orchestration for further processing. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.read` + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/include_ruleset_migrated_metadata' + responses: + '200': + $ref: '#/components/responses/OrchestrationPathServiceTypeResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: services.write + tags: + - Event Orchestrations + operationId: updateOrchPathService + summary: Update the Service Orchestration for a Service + description: | + Update a Service Orchestration. + + A Service Orchestration allows you to create a set of Event Rules. The Service Orchestration evaluates Events sent to this Service against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Service Orchestration for further processing. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.write` + parameters: + - $ref: '#/components/parameters/service_id' + requestBody: + description: Update Service Orchestration rules. Omitted rules and rule details are deleted. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceOrchestration' + examples: + request: + summary: Example Request + value: + orchestration_path: + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + pagerduty_automation_actions: + - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB + trigger_types: + - alert_triggered + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel + id: 1f6d9a33 + conditions: + - expression: event.custom_details.hostname matches part 'canary' + actions: + automation_actions: + - name: Canary Slack Notification + url: https://our-slack-listerner.test/send-notification + auto_send: true + headers: + - key: X-Notification-Source + value: PagerDuty Incident Webhook + parameters: + - key: channel + value: '#my-team-channel' + - key: message + value: Something is wrong with the canary deployment + trigger_types: + - alert_triggered + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - label: Pause the alert and trigger a reboot action if flaky server receives an error + id: c0163dbe + conditions: + - expression: event.custom_details.hostname matches part 'staging' + actions: + suspend: 300 + pagerduty_automation_actions: + - action_id: 01CSBCGJXMG7ABIJZKPD8P9RCL + trigger_types: + - alert_suspended + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + responses: + '200': + description: The Service Orchestration object. + content: + application/json: + schema: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: + type: object + properties: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: + type: object + description: A set of rules + properties: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + warnings: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OrchestrationWarningIneligible' + - $ref: '#/components/schemas/OrchestrationWarningInvalidData' + required: + - orchestration_path + example: + orchestration_path: + type: service + parent: + id: PC2D9ML + self: https://api.pagerduty.com/service/PC2D9ML + type: service_reference + self: https://api.pagerduty.com/event_orchestrations/service/PC2D9ML + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - event.severity matches 'critical' + actions: + annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: If the API endpoints return HTTP 502 run an Automation Action that restarts the service + id: 8a874630 + conditions: + - event.custom_details.http_status_code equals '502' + actions: + pagerduty_automation_actions: + - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB + trigger_types: + - alert_triggered + - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel + id: 1f6d9a33 + conditions: + - event.custom_details.hostname matches part 'canary' + actions: + automation_actions: + - name: Canary Slack Notification + url: https://our-slack-listerner.test/send-notification + auto_send: true + headers: + - key: X-Notification-Source + value: PagerDuty Incident Webhook + parameters: + - key: channel + value: '#my-team-channel' + - key: message + value: Something is wrong with the canary deployment + trigger_types: + - alert_triggered + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - label: Pause the alert and trigger a reboot action if flaky server receives an error + id: c0163dbe + conditions: + - expression: event.custom_details.hostname matches part 'staging' + actions: + suspend: 300 + pagerduty_automation_actions: + - action_id: 01CSBCGJXMG7ABIJZKPD8P9RCL + trigger_types: + - alert_suspended + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_at: '2023-06-14T13:51:31Z' + migrated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_from: + id: PC2D9ML + self: https://api.pagerduty.com/services/PC2D9ML/rules + type: service_event_rules_reference + migrated_status: completed + migrated_via: UI + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + examples: + response: + summary: Example Response + value: + orchestration_path: + type: service + parent: + id: PC2D9ML + self: https://api.pagerduty.com/service/PC2D9ML + type: service_reference + self: https://api.pagerduty.com/event_orchestrations/service/PC2D9ML + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + pagerduty_automation_actions: + - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB + trigger_types: + - alert_triggered + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel + id: 1f6d9a33 + conditions: + - expression: event.custom_details.hostname matches part 'canary' + actions: + automation_actions: + - name: Canary Slack Notification + url: https://our-slack-listerner.test/send-notification + auto_send: true + headers: + - key: X-Notification-Source + value: PagerDuty Incident Webhook + parameters: + - key: channel + value: '#my-team-channel' + - key: message + value: Something is wrong with the canary deployment + trigger_types: + - alert_triggered + - label: Pause the alert and trigger a reboot action if flaky server receives an error + id: c0163dbe + conditions: + - expression: event.custom_details.hostname matches part 'staging' + actions: + suspend: 300 + pagerduty_automation_actions: + - action_id: 01CSBCGJXMG7ABIJZKPD8P9RCL + trigger_types: + - alert_suspended + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + warnings: + - feature: nested_rules + feature_type: nested_rules + message: This orchestration contains Nested Rules, which is not available on your account plan. The orchestration will be updated, however, only rules in the 'start' set will be evaluated + rule_id: null + warning_type: forbidden_feature + - feature: variables + feature_type: actions + message: This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: c91f72f3 + warning_type: forbidden_feature + - feature: extractions + feature_type: actions + message: This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: c91f72f3 + warning_type: forbidden_feature + - feature: pagerduty_automation_actions + feature_type: actions + message: This rule uses PagerDuty Automation Actions, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: c91f72f3 + warning_type: forbidden_feature + - feature: automation_actions + feature_type: actions + message: This rule uses Automation Actions, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: 1f6d9a33 + warning_type: forbidden_feature + - feature: recurring_condition + feature_type: conditions + message: This rule uses Recurring Condition, which is a condition not available on your account plan. The rule will be updated, but it will not be evaluated by events + rule_id: c91f72f3 + warning_type: forbidden_feature + - feature: incident_custom_field_updates + feature_type: actions + message: This rule uses Incident Custom Field update, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated + rule_id: 4g6d2a901 + warning_type: forbidden_feature + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: View and update a Service Orchestration. + /event_orchestrations/services/{service_id}/active: + get: + x-pd-requires-scope: services.read + tags: + - Event Orchestrations + operationId: getOrchActiveStatus + summary: Get the Service Orchestration active status for a Service + description: | + Get a Service Orchestration's active status. + + A Service Orchestration allows you to set an active status based on whether an event will be evaluated against a service orchestration path (true) or service ruleset (false). + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.read` + parameters: + - $ref: '#/components/parameters/service_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationPathServiceActiveResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: services.write + tags: + - Event Orchestrations + operationId: updateOrchActiveStatus + summary: Update the Service Orchestration active status for a Service + description: | + Update a Service Orchestration's active status. + + A Service Orchestration allows you to set an active status based on whether an event will be evaluated against a service orchestration path (true) or service ruleset (false). + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.write` + parameters: + - $ref: '#/components/parameters/service_id' + requestBody: + description: Update Service Orchestration's active status. + content: + application/json: + schema: + type: object + properties: + active: + type: boolean + description: The status of the service orchestration. + examples: + request: + summary: Example Request + value: + active: false + responses: + '200': + $ref: '#/components/responses/OrchestrationPathServiceActiveResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: View and update a Service Orchestration's active status. + /event_orchestrations/{id}/cache_variables: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: listCacheVarOnGlobalOrch + description: | + List Cache Variables for a Global Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + summary: List Cache Variables for a Global Event Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariableListResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + post: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: createCacheVarOnGlobalOrch + description: | + Create a Cache Variable for a Global Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Create a Cache Variable for a Global Event Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + requestBody: + $ref: '#/components/requestBodies/OrchestrationCacheVariablePostRequest' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariablePostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + description: Manage Cache Variables for a Global Event Orchestration. + /event_orchestrations/{id}/cache_variables/{cache_variable_id}: + get: + x-pd-requires-scope: event_orchestrations.read + tags: + - Event Orchestrations + operationId: getCacheVarOnGlobalOrch + description: | + Get a Cache Variable for a Global Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.read` + summary: Get a Cache Variable for a Global Event Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariableGetResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: updateCacheVarOnGlobalOrch + description: | + Update a Cache Variable for a Global Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Update a Cache Variable for a Global Event Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + requestBody: + $ref: '#/components/requestBodies/OrchestrationCacheVariablePutRequest' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariablePutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + delete: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: deleteCacheVarOnGlobalOrch + description: | + Delete a Cache Variable for a Global Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Delete a Cache Variable for a Global Event Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + responses: + '204': + description: The Cache Variable was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: Manage a Cache Variable for a Global Event Orchestration. + /event_orchestrations/{id}/cache_variables/{cache_variable_id}/data: get: x-pd-requires-scope: event_orchestrations.read tags: - Event Orchestrations - operationId: listEventOrchestrations + operationId: getExternalDataCacheVarDataOnGlobalOrch description: | - List all Global Event Orchestrations on an Account. + Get the data for an `external_data` type Cache Variable on a Global Orchestration. - Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. + Use External Data type Cache Variables to store string, number, or boolean values via a dedicated API endpoint. These stored values can then be used in conditions or actions in Event Orchestration rules. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + For more information see the [Knowledge Base](https://support.pagerduty.com/main/docs/event-orchestration-cache-variables) Scoped OAuth requires: `event_orchestrations.read` - summary: List Event Orchestrations + summary: Get Data for an External Data Cache Variable on a Global Event Orchestration parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/sort_by_event_orchestration' + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' responses: '200': - description: A paginated array of Event Orchestration objects. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - orchestrations: - type: array - items: - type: object - properties: - id: - type: string - description: ID of the Orchestration. - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - name: - type: string - description: Name of the Orchestration. - description: - type: string - description: A description of this Orchestration's purpose. - team: - type: object - description: 'Reference to the team that owns the Orchestration. If none is specified, only admins have access.' - properties: - id: - type: string - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - routes: - type: integer - description: Number of different Service Orchestration being routed to - readOnly: true - created_at: - type: string - format: date-time - description: The date the Orchestration was created at. - readOnly: true - created_by: - type: object - description: Reference to the user that has created the Orchestration. - properties: - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - readOnly: true - updated_at: - type: string - format: date-time - description: The date the Orchestration was last updated. - readOnly: true - updated_by: - type: object - description: Reference to the user that has updated the Orchestration last. - properties: - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - readOnly: true - version: - type: string - description: Version of the Orchestration. - readOnly: true - examples: - response: - summary: Response Example - value: - orchestrations: - - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - name: Shopping Cart Orchestration - description: Send shopping cart alerts to the right services - team: - id: PQYP5MN - type: team_reference - self: 'https://api.pagerduty.com/teams/PQYP5MN' - routes: 0 - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: 9co0z4b152oICsoV91_PW2.ww8ip_xap - limit: 25 - offset: 0 - more: false - total: 1 + $ref: '#/components/responses/OrchestrationCacheVariableGetDataResponse' + '400': + $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - post: + put: x-pd-requires-scope: event_orchestrations.write tags: - Event Orchestrations + operationId: updateExternalDataCacheVarDataOnGlobalOrch description: | - Create a Global Event Orchestration. + Update data for an `external_data` type Cache Variable on a Global Event Orchestration - Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. + Use External Data type Cache Variables to store string, number, or boolean values via a dedicated API endpoint. These stored values can then be used in conditions or actions in Event Orchestration rules. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + For more information see the [Knowledge Base](https://support.pagerduty.com/main/docs/event-orchestration-cache-variables) Scoped OAuth requires: `event_orchestrations.write` - summary: Create an Orchestration - operationId: postOrchestration - requestBody: - content: - application/json: - schema: - type: object - properties: - orchestration: - $ref: '#/components/schemas/Orchestration' - required: - - orchestration - examples: - create_orchestration: - summary: 'Example: Create Orchestration' - value: - orchestration: - name: New Orchestration - description: This is a newly created orchestration - team: - id: PXD0WR8 + summary: Update Data for an External Data Cache Variable on a Global Event Orchestration parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + requestBody: + $ref: '#/components/requestBodies/OrchestrationCacheVariableDataPutRequest' responses: - '201': - description: The Orchestration that was created. + '200': + description: The data on an `external_data` type Cache Variable for this Event Orchestration. content: application/json: schema: type: object properties: - orchestration: - $ref: '#/components/schemas/Orchestration' + cache_variable_data: + type: string + description: 'The string value to set on an external data cache variable configured with `data_type: string`.' + updated_at: + type: string + format: date-time + description: The date/time the cache variable data was last updated. + readOnly: true + required: + - cache_variable_data examples: - response: - summary: Response Example + string data: + summary: 'Response Example: String' value: - orchestration: - id: 3aae9a17-8585-4d8c-93d3-99742801cd95 - self: 'https://api.pagerduty.com/event_orchestrations/3aae9a17-8585-4d8c-93d3-99742801cd95' - name: New Orchestration - description: This is a newly created orchestration - team: - id: PXD0WR8 - self: 'https://api.pagerduty.com/teams/PXD0WR8' - type: team_reference - integrations: - - id: 461cd942-d7cc-43ef-ac7d-86ba2d58fc45 - label: New Orchestration Default Integration - parameters: - routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D - type: global - routes: 0 - created_at: '2021-12-02T14:21:42Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-12-02T14:21:42Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: oBgzJsGDOz99G.FKZ0c1C6hw35twk_Ib + cache_variable_data: Updated - Hello World! + updated_at: '2021-11-18T16:42:01Z' + number data: + summary: 'Response Example: Number' + value: + cache_variable_data: 85.1 + updated_at: '2021-11-18T16:42:01Z' + boolean data: + summary: 'Response Example: Boolean' + value: + cache_variable_data: false + updated_at: '2021-11-18T16:42:01Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + delete: + x-pd-requires-scope: event_orchestrations.write + tags: + - Event Orchestrations + operationId: deleteExternalDataCacheVarDataOnGlobalOrch + description: | + Delete data for an `external_data` type Cache Variable on a Global Event Orchestration + + Use External Data type Cache Variables to store string, number, or boolean values via a dedicated API endpoint. These stored values can then be used in conditions or actions in Event Orchestration rules. + + For more information see the [Knowledge Base](https://support.pagerduty.com/main/docs/event-orchestration-cache-variables) + + Scoped OAuth requires: `event_orchestrations.write` + summary: Delete Data for an External Data Cache Variable on a Global Event Orchestration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + responses: + '204': + description: The Data was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: Manage data for an `external_data` type Cache Variable on a Global Orchestration. + /event_orchestrations/services/{service_id}/cache_variables: + get: + x-pd-requires-scope: services.read + tags: + - Event Orchestrations + operationId: listCacheVarOnServiceOrch + description: | + List Cache Variables for a Service Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.read` + summary: List Cache Variables for a Service Event Orchestration + parameters: + - $ref: '#/components/parameters/service_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariableListResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + post: + x-pd-requires-scope: services.write + tags: + - Event Orchestrations + operationId: createCacheVarOnServiceOrch + description: | + Create a Cache Variable for a Service Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.write` + summary: Create a Cache Variable for a Service Event Orchestration + parameters: + - $ref: '#/components/parameters/service_id' + requestBody: + $ref: '#/components/requestBodies/OrchestrationCacheVariablePostRequest' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariablePostResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + description: Manage Cache Variables for a Service Event Orchestration. + /event_orchestrations/services/{service_id}/cache_variables/{cache_variable_id}: + get: + x-pd-requires-scope: services.read + tags: + - Event Orchestrations + operationId: getCacheVarOnServiceOrch + description: | + Get a Cache Variable for a Service Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.read` + summary: Get a Cache Variable for a Service Event Orchestration + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariableGetResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: services.write + tags: + - Event Orchestrations + operationId: updateCacheVarOnServiceOrch + description: | + Update a Cache Variable for a Service Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.write` + summary: Update a Cache Variable for a Service Event Orchestration + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + requestBody: + $ref: '#/components/requestBodies/OrchestrationCacheVariablePutRequest' + responses: + '200': + $ref: '#/components/responses/OrchestrationCacheVariablePutResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + delete: + x-pd-requires-scope: services.write + tags: + - Event Orchestrations + operationId: deleteCacheVarOnServiceOrch + description: | + Delete a Cache Variable for a Service Event Orchestration. + + Cache Variables allow you to store event data on an Event Orchestration, which can then be used in Event Orchestration rules as part of conditions or actions. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#event-orchestrations) + + Scoped OAuth requires: `services.write` + summary: Delete a Cache Variable for a Service Event Orchestration + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' + responses: + '204': + description: The Cache Variable was deleted successfully. '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3931,70 +2964,28 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}': + description: Manage a Cache Variable for a Service Event Orchestration. + /event_orchestrations/services/{service_id}/cache_variables/{cache_variable_id}/data: get: - x-pd-requires-scope: event_orchestrations.read + x-pd-requires-scope: services.read tags: - Event Orchestrations - operationId: getOrchestration + operationId: getExternalDataCacheVarDataOnServiceOrch description: | - Get a Global Event Orchestration. + Get the data for an `external_data` type Cache Variable for a Service Event Orchestration. - Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. + Use External Data type Cache Variables to store string, number, or boolean values via a dedicated API endpoint. These stored values can then be used in conditions or actions in Event Orchestration rules. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + For more information see the [Knowledge Base](https://support.pagerduty.com/main/docs/event-orchestration-cache-variables) - Scoped OAuth requires: `event_orchestrations.read` - summary: Get an Orchestration + Scoped OAuth requires: `services.read` + summary: Get Data for an External Data Cache Variable on a Service Event Orchestration parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' responses: '200': - description: The Orchestration object. - content: - application/json: - schema: - type: object - properties: - orchestration: - $ref: '#/components/schemas/Orchestration' - examples: - response: - summary: Response Example - value: - orchestration: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - name: Shopping Cart Orchestration - description: Send shopping cart alerts to the right services - team: - id: PQYP5MN - type: team_reference - self: 'https://api.pagerduty.com/teams/PQYP5MN' - integrations: - - id: 9c5ff030-12da-4204-a067-25ee61a8df6c - label: Shopping Cart Orchestration Default Integration - parameters: - routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T - type: global - routes: 0 - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + $ref: '#/components/responses/OrchestrationCacheVariableGetDataResponse' '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4004,92 +2995,58 @@ paths: '404': $ref: '#/components/responses/NotFound' put: - x-pd-requires-scope: event_orchestrations.write + x-pd-requires-scope: services.write tags: - Event Orchestrations - operationId: updateOrchestration + operationId: updateExternalDataCacheVarDataOnServiceOrch description: | - Update a Global Event Orchestration. + Update the data for an `external_data` type Cache Variable on a Service Event Orchestration. - Global Event Orchestrations allow you define a set of Global Rules and Router Rules, so that when you ingest events using the Orchestration's Routing Key your events will have actions applied via the Global Rules & then routed to the correct Service by the Router Rules, based on the event's content. + Use External Data type Cache Variables to store string, number, or boolean values via a dedicated API endpoint. These stored values can then be used in conditions or actions in Event Orchestration rules. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + For more information see the [Knowledge Base](https://support.pagerduty.com/main/docs/event-orchestration-cache-variables) - Scoped OAuth requires: `event_orchestrations.write` - summary: Update an Orchestration + Scoped OAuth requires: `services.write` + summary: Update Data for an External Data Cache Variable on a Service Event Orchestration parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' requestBody: - content: - application/json: - schema: - type: object - properties: - orchestration: - $ref: '#/components/schemas/Orchestration' - required: - - orchestration - examples: - change_name: - summary: 'Example: Change name' - value: - orchestration: - name: Go-Kart Orchestration - change_team: - summary: 'Example: Change team' - value: - orchestration: - team: - id: PWL7QXS - change_description: - summary: 'Example: Change description' - value: - orchestration: - description: Orchestration that does some stuff - description: '' + $ref: '#/components/requestBodies/OrchestrationCacheVariableDataPutRequest' responses: '200': - description: The Orchestration that was updated. + description: The data on an `external_data` type Cache Variable for this Event Orchestration. content: application/json: schema: type: object properties: - orchestration: - $ref: '#/components/schemas/Orchestration' + cache_variable_data: + type: string + description: 'The string value to set on an external data cache variable configured with `data_type: string`.' + updated_at: + type: string + format: date-time + description: The date/time the cache variable data was last updated. + readOnly: true + required: + - cache_variable_data examples: - response: - summary: Response Example + string data: + summary: 'Response Example: String' value: - orchestration: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - name: Go-Kart Orchestration - description: Orchestration that does some stuff - team: - id: PWL7QXS - type: team_reference - self: 'https://api.pagerduty.com/teams/PWL7QXS' - integrations: - - id: 9c5ff030-12da-4204-a067-25ee61a8df6c - label: Go-Kart Orchestration Default Integration - parameters: - routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T - type: global - routes: 0 - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-19T11:42:32Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: BrWLKQBLm8QO2ZYQ0GosHLxdbgWZ0ZR3 + cache_variable_data: Updated - Hello World! + updated_at: '2021-11-18T16:42:01Z' + number data: + summary: 'Response Example: Number' + value: + cache_variable_data: 85.1 + updated_at: '2021-11-18T16:42:01Z' + boolean data: + summary: 'Response Example: Boolean' + value: + cache_variable_data: false + updated_at: '2021-11-18T16:42:01Z' '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4100,29 +3057,26 @@ paths: $ref: '#/components/responses/NotFound' '405': $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' delete: - x-pd-requires-scope: event_orchestrations.write + x-pd-requires-scope: services.write tags: - Event Orchestrations - operationId: deleteOrchestration + operationId: deleteExternalDataCacheVarDataOnServiceOrch description: | - Delete a Global Event Orchestration. + Delete Data for an `external_data` type Cache Variable on a Service Event Orchestration. - Once deleted, you will no longer be able to ingest events into PagerDuty using this Orchestration's Routing Key. + Use External Data type Cache Variables to store string, number, or boolean values via a dedicated API endpoint. These stored values can then be used in conditions or actions in Event Orchestration rules. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + For more information see the [Knowledge Base](https://support.pagerduty.com/main/docs/event-orchestration-cache-variables) - Scoped OAuth requires: `event_orchestrations.write` - summary: Delete an Orchestration + Scoped OAuth requires: `services.write` + summary: Delete Data for an External Data Cache Variable on a Service Event Orchestration parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/event_orchestration_cache_variable_id' responses: '204': - description: The Orchestration was deleted successfully. + description: The Data was deleted successfully. '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4131,1248 +3085,2948 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}/integrations': + description: Manage Data for an `external_data` type Cache Variable on a Service Orchestration. + /event_orchestrations/{id}/enablements: get: x-pd-requires-scope: event_orchestrations.read tags: - Event Orchestrations + operationId: listEventOrchestrationFeatureEnablements + summary: List Enablements for an Event Orchestration description: | - List the Integrations associated with this Event Orchestrations. + List all feature enablement settings for an Event Orchestration. Currently, only the `aiops` enablement is supported. - You can use a Routing Key from these Integrations to send events to PagerDuty! + For any account with the AIOps product addon, every Event Orchestration will have AIOps features enabled by default. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + **Warning conditions**: + - If the account is not entitled to use AIOps features, a warning will be returned alongside the enablement data. Scoped OAuth requires: `event_orchestrations.read` - summary: List Integrations for an Event Orchestration - operationId: listOrchestrationIntegrations parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/event_orchestration_id' responses: '200': - description: The Integrations for this Event Orchestration. + description: The list of feature enablement settings for the Event Orchestation. content: application/json: schema: type: object properties: - integrations: + enablements: type: array + description: Array of feature enablement settings. items: - $ref: '#/components/schemas/OrchestrationIntegration' - total: - $ref: '#/components/schemas/Pagination/properties/total' + $ref: '#/components/schemas/FeatureEnablement' examples: - response: - summary: Response Example - value: - integrations: - - id: 9c5ff030-12da-4204-a067-25ee61a8df6c - label: Go-Kart Orchestration Default Integration - parameters: - routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D - type: global - - id: 11832872-88b6-4661-8972-db5712b69496 - label: Integration for Monitoring Tool X - parameters: - routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T - type: global - total: 2 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' + success_response: + $ref: '#/components/examples/FeatureEnablementListResponseSuccess' + response_with_warning: + $ref: '#/components/examples/FeatureEnablementListResponseWarningForOrchestration' + default_response: + $ref: '#/components/examples/FeatureEnablementListResponseDefault' '403': $ref: '#/components/responses/Forbidden' - '405': - $ref: '#/components/responses/NotAllowed' - post: + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage Enablements for a Global Event Orchestration. + /event_orchestrations/{id}/enablements/{feature_name}: + put: x-pd-requires-scope: event_orchestrations.write tags: - Event Orchestrations + operationId: updateEventOrchestrationFeatureEnablements + summary: Update an Enablement for an Event Orchestration description: | - Create an Integration associated with this Event Orchestration. + Update the feature enablement setting for a specific product addon on an Event Orchestration. This setting controls enabling or disabling the set of features contained within the addon. + Currently, only `aiops` is supported as a valid feature enablement. - You can then use the Routing Key from this new Integration to send events to PagerDuty! - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + **Warning conditions**: + - If the account is not entitled to use AIOps features, the setting will be updated, but a warning will be returned. Scoped OAuth requires: `event_orchestrations.write` - summary: Create an Integration for an Event Orchestration - operationId: postOrchestrationIntegration + parameters: + - $ref: '#/components/parameters/event_orchestration_id' + - $ref: '#/components/parameters/enablement_feature_name' requestBody: + description: The feature enablement setting to apply. content: application/json: schema: type: object properties: - integration: - type: object - properties: - label: - type: string - description: Name of the Integration. - required: - - label + enablement: + $ref: '#/components/schemas/FeatureEnablement' required: - - integration + - enablement examples: - create_orchestration: - summary: 'Example: Create an Integration' - value: - integration: - label: Integration for Monitoring Tool X - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - responses: - '201': - description: The Integration that was created. - content: - application/json: - schema: - type: object - properties: - integration: - $ref: '#/components/schemas/OrchestrationIntegration' - examples: - response: - summary: Response Example - value: - integration: - id: 11832872-88b6-4661-8972-db5712b69496 - label: Integration for Monitoring Tool X - parameters: - routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T - type: global - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}/integrations/{integration_id}': - get: - x-pd-requires-scope: event_orchestrations.read - tags: - - Event Orchestrations - description: | - Get an Integration associated with this Event Orchestrations. - - You can use the Routing Key from this Integration to send events to PagerDuty! - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.read` - summary: Get an Integration for an Event Orchestration - operationId: getOrchestrationIntegration - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - - $ref: '#/components/parameters/event_orchestration_integration_id' + enable_aiops: + $ref: '#/components/examples/FeatureEnablementPutRequestEnable' + disable_aiops: + $ref: '#/components/examples/FeatureEnablementPutRequestDisable' responses: '200': - description: An Integration for this Event Orchestration. + description: The feature enablement setting was updated. content: - application/json: - schema: - properties: - integration: - $ref: '#/components/schemas/OrchestrationIntegration' + application/json: + schema: type: object + properties: + enablement: + $ref: '#/components/schemas/FeatureEnablement' examples: - response: - summary: Response Example - value: - integration: - id: 9c5ff030-12da-4204-a067-25ee61a8df6c - label: Go-Kart Orchestration Default Integration - parameters: - routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D - type: global + success_response: + $ref: '#/components/examples/FeatureEnablementPutResponseSuccess' + response_with_warning: + $ref: '#/components/examples/FeatureEnablementPutResponseWarningForOrchestration' '400': $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' - '405': - $ref: '#/components/responses/NotAllowed' - put: - x-pd-requires-scope: event_orchestrations.write - tags: - - Event Orchestrations - description: | - Update an Integration associated with this Event Orchestrations. + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage an Enablement for a Global Event Orchestration. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Orchestration: + type: object + properties: + id: + type: string + description: ID of the Orchestration. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + name: + type: string + description: Name of the Orchestration. + description: + type: string + description: A description of this Orchestration's purpose. + team: + type: object + description: Reference to the team that owns the Orchestration. If none is specified, only admins have access. + properties: + id: + type: string + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + integrations: + type: array + items: + $ref: '#/components/schemas/OrchestrationIntegration' + readOnly: true + routes: + type: integer + description: Number of different Service Orchestration being routed to + readOnly: true + created_at: + type: string + format: date-time + description: The date the Orchestration was created at. + readOnly: true + created_by: + type: object + description: Reference to the user that has created the Orchestration. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date the Orchestration was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that has updated the Orchestration last. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of the Orchestration. + readOnly: true + OrchestrationIntegration: + type: object + properties: + id: + type: string + description: ID of the Integration. + readOnly: true + label: + type: string + description: Name of the Integration. + parameters: + type: object + readOnly: true + properties: + routing_key: + type: string + description: Routing Key used to send Events to this Orchestration + readOnly: true + type: + type: string + default: global + readOnly: true + OrchestrationGlobal: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: + type: object + properties: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: + type: object + description: A set of rules + properties: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + required: + - orchestration_path + example: + orchestration_path: + type: global + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: Drop all events from the very-noisy monitoring tool + id: 1f6d9a33 + conditions: + - expression: event.source matches part 'very-noisy' + actions: + drop_event: true + - label: Assign all database related incidents to the Database Team's escalation policy + id: 4314d9ce + conditions: + - expression: event.source matches 'prod-db' + actions: + escalation_policy: PEYSGVF + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + OrchestrationWarningIneligible: + type: object + description: This rule is using a feature that is currently unavailable on the current account plan. + properties: + message: + type: string + description: A description of the warning and any potential side effects. + rule_id: + type: string + description: The ID of the rule using the feature. + feature: + type: string + description: | + The feature that the current account plan does not have access to. - You can use the Routing Key from this Integration to send events to PagerDuty! + Example values include: + * `threshold_condition` + * `nested_rules` + * `suspend` + * `automation_actions` + * `cache_variable:automation_actions` + * `cache_variable:annotate` + * `variables` + * `interpolation:annotate` + * `interpolation:extractions` + * `interpolation:incident_custom_field_updates` + * `suppress` + * `incident_custom_field_updates` + * `dynamic_route_to` + * `escalation_policy` + * `aiops_routing_mismatch` + feature_type: + type: string + description: | + Specifies whether the feature is a part of the rule's conditions, or its actions. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + Example values include: + * `conditions` + * `actions` + * `nested_rules` + * `global_orchestrations` + * `aiops_routing` + warning_type: + type: string + description: The type of warning that is being returned for the rule. + enum: + - forbidden_feature + - invalid_routing + OrchestrationWarningInvalidData: + type: object + description: This rule includes invalid data for a feature item. + properties: + message: + type: string + description: A description of the warning and any potential side effects. + rule_id: + type: string + description: The ID of the rule using the feature. + feature: + type: string + description: | + The feature that includes invalid data. - Scoped OAuth requires: `event_orchestrations.write` - summary: Update an Integration for an Event Orchestration - operationId: updateOrchestrationIntegration - requestBody: - content: - application/json: - schema: + Example values include: + * `incident_custom_field_updates` + * `escalation_policy` + * `cache_variable:annotate` + * `cache_variable:conditions` + * `cache_variable:automation_actions` + feature_type: + type: string + description: | + Specifies the feature type of the impacted item. + + Example values include: + * `actions` + * `conditions` + warning_type: + type: string + description: The type of warning that is being returned for the rule. + enum: + - invalid_data + OrchestrationRouter: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: type: object properties: - integration: - type: object - properties: - label: - type: string - description: Name of the Integration. - required: - - label - required: - - integration - examples: - create_orchestration: - summary: 'Example: Update an Integration' - value: - integration: - label: New Name for my Integration - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - - $ref: '#/components/parameters/event_orchestration_integration_id' - responses: - '200': - description: The Integration that was updated. - content: - application/json: - schema: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: type: object + description: A set of rules properties: - integration: - $ref: '#/components/schemas/OrchestrationIntegration' - examples: - response: - summary: Response Example - value: - integration: - id: 11832872-88b6-4661-8972-db5712b69496 - label: New Name for my Integration - parameters: - routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T - type: global - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - delete: - x-pd-requires-scope: event_orchestrations.write - tags: - - Event Orchestrations - description: | - Delete an Integration and its associated Routing Key. - - Once deleted, PagerDuty will drop all future events sent to PagerDuty using the Routing Key. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.write` - summary: Delete an Integration for an Event Orchestration - operationId: deleteOrchestrationIntegration - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - - $ref: '#/components/parameters/event_orchestration_integration_id' - responses: - '204': - description: The Integration was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}/integrations/migration': - post: - x-pd-requires-scope: event_orchestrations.write - tags: - - Event Orchestrations - description: | - Move an Integration and its Routing Key from the Event Orchestration specified in the request payload, to the Event Orchestration specified in the request URL. - - Any future events sent to this Integration's Routing Key will be processed by this Event Orchestration's Rules. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.write` - summary: Migrate an Integration from one Event Orchestration to another - operationId: migrateOrchestrationIntegration - requestBody: - content: - application/json: - schema: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + required: + - orchestration_path + example: + orchestration_path: + type: router + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Events relating to our relational database + id: 1c26698b + conditions: + - expression: event.summary matches part 'database' + - expression: event.source matches regex 'db[0-9]+-server' + actions: + route_to: PB31XBA + - label: Events relating to our www app server + id: d9801904 + conditions: + - expression: event.summary matches part 'www' + actions: + route_to: PC2D9ML + catch_all: + actions: + route_to: unrouted + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + OrchestrationUnrouted: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: type: object properties: - source_id: + id: type: string - description: The ID of the Event Orchestration you'll be moving the Integration away from - source_type: + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: type: string - description: The type of of the `source_id` object - enum: - - orchestration - integration_id: + description: A string that determines the schema of the parent object + readOnly: true + self: type: string - description: The ID of the Integration you'll be moving - required: - - source_id - - source_type - - integration_id - examples: - migrate_integration: - summary: 'Example: Migrate an Integration' - value: - source_type: orchestration - source_id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - integration_id: 11832872-88b6-4661-8972-db5712b69496 - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - responses: - '200': - description: The Integration that was migrated - content: - application/json: - schema: + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: type: object + description: A set of rules properties: - integrations: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: type: array items: - $ref: '#/components/schemas/OrchestrationIntegration' - total: - $ref: '#/components/schemas/Pagination/properties/total' - examples: - response: - summary: Response Example - value: - integrations: - - id: 9c5ff030-12da-4204-a067-25ee61a8df6c - label: Go-Kart Orchestration Default Integration - parameters: - routing_key: R022XIJR9M266DX570EVE6EXP1AFBN6D - type: global - - id: 11832872-88b6-4661-8972-db5712b69496 - label: Integration for Monitoring Tool X - parameters: - routing_key: R028DIE06SNKNO6V5ACSLRV7Y0TUVG7T - type: global - total: 2 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}/global': - get: - x-pd-requires-scope: event_orchestrations.read - tags: - - Event Orchestrations - operationId: getOrchPathGlobal - summary: Get the Global Orchestration for an Event Orchestration - description: | - Get the Global Orchestration for an Event Orchestration. - - Global Orchestration Rules allows you to create a set of Event Rules. These rules evaluate against all Events sent to an Event Orchestration. When a matching rule is found, it can modify and enhance the event and can route the event to another set of Global Rules within this Orchestration for further processing. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - responses: - '200': - description: The Global Orchestration Rules object. - content: - application/json: - schema: - $ref: '#/components/schemas/OrchestrationGlobal' - examples: - response: - $ref: '#/components/examples/OrchestrationPathGlobalTypeResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: event_orchestrations.write - tags: - - Event Orchestrations - operationId: updateOrchPathGlobal - summary: Update the Global Orchestration for an Event Orchestration - description: | - Update the Global Orchestration for an Event Orchestration. - - Global Orchestration Rules allows you to create a set of Event Rules. These rules evaluate against all Events sent to an Event Orchestration. When a matching rule is found, it can modify and enhance the event and can route the event to another set of Global Rules within this Orchestration for further processing. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - requestBody: - description: Update Global Orchestration rules. Omitted rules and rule details are deleted. - content: - application/json: - schema: - $ref: '#/components/schemas/OrchestrationGlobal' - examples: - request: - summary: Example Request - value: - orchestration_path: - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - responses: - '200': - description: The Global Orchestration Rules object. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/OrchestrationGlobal' - - type: object - properties: - warnings: - type: array - description: List of applicable warnings messages for each rule using a feature not available on your account plan. - items: - anyOf: - - $ref: '#/components/schemas/OrchestrationWarningIneligible' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' + actions: + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + required: + - orchestration_path + example: + orchestration_path: + type: unrouted + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Update the summary of un-matched Critical alerts so they're easier to spot + id: 38880ffb + conditions: + - expression: event.severity matches 'critical' + actions: + extractions: + - target: event.summary + template: '[Critical Unrouted] {{event.summary}}' + - label: Reduce the severity of all other unrouted events + id: 3896801e + conditions: [] + actions: + severity: info + catch_all: + actions: + suppress: true + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod + ServiceOrchestration: + type: object + properties: + orchestration_path: + type: object + properties: + type: + type: string + default: service + readOnly: true + parent: + type: object + properties: + id: + type: string + description: ID of the object these Orchestration Rules belongs to. + readOnly: true + type: + type: string + description: A string that determines the schema of the parent object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the parent object is accessible + readOnly: true + readOnly: true + sets: + type: array + description: Must contain at least a "start" set, but can contain any number of additional sets that are routed to by other rules to form a directional graph of rules. + items: + type: object + description: A set of rules + properties: + id: + type: string + description: The ID of this set of rules. Rules in other sets can route events into this set using the "route_to" properties. + default: start + rules: + type: array + items: + type: object + properties: + id: + type: string + description: ID of the rule + readOnly: true + label: + type: string + description: A description of this rule's purpose. + conditions: + type: array + description: Each of these conditions is evaluated to check if an event matches this rule. The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + description: A PCL condition string + example: event.summary matches part 'my service error' actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - warnings: - - feature: nested_rules - feature_type: nested_rules - message: 'This orchestration contains Nested Rules, which is not available on your account plan. The orchestration will be updated, however, only rules in the ''start'' set will be evaluated' - rule_id: null - warning_type: forbidden_feature - - feature: variables - feature_type: actions - message: 'This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: c91f72f3 - warning_type: forbidden_feature - - feature: extractions - feature_type: actions - message: 'This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: c91f72f3 - warning_type: forbidden_feature - - feature: recurring_condition - feature_type: conditions - message: 'This rule uses Recurring Condition, which is a condition not available on your account plan. The rule will be updated, but it will not be evaluated by events' - rule_id: cd770384 - warning_type: forbidden_feature - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}/router': - get: - x-pd-requires-scope: event_orchestrations.read - tags: - - Event Orchestrations - operationId: getOrchPathRouter - summary: Get the Router for an Event Orchestration - description: | - Get a Global Orchestration's Routing Rules. - - An Orchestration Router allows you to create a set of Event Rules. The Router evaluates Events you send to this Global Orchestration against each of its rules, one at a time, and routes the event to a specific Service based on the first rule that matches. If an event doesn't match any rules, it'll be sent to service specified in as the `catch_all` or the "Unrouted" Orchestration if no service is specified. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - responses: - '200': - $ref: '#/components/responses/OrchestrationPathRouterTypeResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: event_orchestrations.write - tags: - - Event Orchestrations - operationId: updateOrchPathRouter - summary: Update the Router for an Event Orchestration - description: | - Update a Global Orchestration's Routing Rules. - - An Orchestration Router allows you to create a set of Event Rules. The Router evaluates Events you send to this Global Orchestration against each of its rules, one at a time, and routes the event to a specific Service based on the first rule that matches. If an event doesn't match any rules, it'll be sent to service specified in as the `catch_all` or the "Unrouted" Orchestration if no service is specified. + type: string + description: When an event matches this rule, these are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + disabled: + type: boolean + description: Indicates whether the rule is disabled and would therefore not be evaluated. + catch_all: + type: object + description: When none of the Rules in a set match an event, we apply the catch_all actions to the event. + properties: + actions: + type: string + description: These are the actions that will be taken to change the resulting alert and incident. (opaque JSON object) + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + version: + type: string + description: Version of these Orchestration Rules + readOnly: true + required: + - orchestration_path + example: + orchestration_path: + type: service + parent: + id: PC2D9ML + self: https://api.pagerduty.com/service/PC2D9ML + type: service_reference + self: https://api.pagerduty.com/event_orchestrations/service/PC2D9ML + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - event.severity matches 'critical' + actions: + annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: If the API endpoints return HTTP 502 run an Automation Action that restarts the service + id: 8a874630 + conditions: + - event.custom_details.http_status_code equals '502' + actions: + pagerduty_automation_actions: + - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB + trigger_types: + - alert_triggered + - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel + id: 1f6d9a33 + conditions: + - event.custom_details.hostname matches part 'canary' + actions: + automation_actions: + - name: Canary Slack Notification + url: https://our-slack-listerner.test/send-notification + auto_send: true + headers: + - key: X-Notification-Source + value: PagerDuty Incident Webhook + parameters: + - key: channel + value: '#my-team-channel' + - key: message + value: Something is wrong with the canary deployment + trigger_types: + - alert_triggered + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - label: Pause the alert and trigger a reboot action if flaky server receives an error + id: c0163dbe + conditions: + - expression: event.custom_details.hostname matches part 'staging' + actions: + suspend: 300 + pagerduty_automation_actions: + - action_id: 01CSBCGJXMG7ABIJZKPD8P9RCL + trigger_types: + - alert_suspended + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_at: '2023-06-14T13:51:31Z' + migrated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_from: + id: PC2D9ML + self: https://api.pagerduty.com/services/PC2D9ML/rules + type: service_event_rules_reference + migrated_status: completed + migrated_via: UI + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + FeatureEnablement: + type: object + properties: + feature: + readOnly: true + type: string + description: The name of the product addon whose set of features will be enabled or disabled. + example: aiops + enabled: + type: boolean + description: A boolean value indicating whether the specified product addon is enabled or disabled. + updated_at: + readOnly: true + type: string + format: date-time + description: The time the feature enablement was last updated. + warnings: + readOnly: true + type: array + description: An array of warnings related to this feature enablement. Only present if warning conditions are met. + items: + type: object + properties: + message: + type: string + description: The warning message. + required: + - enabled + OrchestrationCacheVariableRecentValue: + title: Recent Value + type: object + properties: + id: + type: string + readOnly: true + name: + type: string + description: The name of the Cache Variable + disabled: + type: boolean + description: Indicates whether the Cache Variable is disabled and would therefore not be evaluated. + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + configuration: + type: object + properties: + type: + type: string + description: | + Cache Variable will be set to the most recent value seen, based on the source event field and the extraction regex specified + enum: + - recent_value + source: + type: string + description: The path to the event field where the regex will be applied to extract a value. + example: event.summary + regex: + type: string + description: | + A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. + conditions: + type: array + description: | + Each of these conditions is evaluated to check if an event matches this rule. + The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + example: event.summary matches part 'my service error' + description: | + A PCL condition string. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) + Note: The `trigger_count` and `resetting_trigger_count` operators are unsupported for Cache Variables + required: + - name + - configuration + OrchestrationCacheVariableTriggerEventCount: + title: Trigger Event Count + type: object + properties: + id: + type: string + readOnly: true + name: + type: string + description: The name of the Cache Variable + disabled: + type: boolean + description: Indicates whether the Cache Variable is disabled and would therefore not be evaluated. + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + configuration: + type: object + properties: + type: + type: string + description: | + Cache Variable will be set to the number of trigger events that have been seen within the TTL range + enum: + - trigger_event_count + ttl_seconds: + type: integer + description: | + The time to live (in seconds) for how long to count trigger events before resetting back to 0. + conditions: + type: array + description: | + Each of these conditions is evaluated to check if an event matches this rule. + The rule is considered a match if **any** of these conditions match. + items: + type: object + properties: + expression: + type: string + example: event.summary matches part 'my service error' + description: | + A PCL condition string. - Scoped OAuth requires: `event_orchestrations.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - requestBody: - description: Updates to Orchestration Router details. Omitted rules and rule details are deleted. - content: - application/json: - schema: - $ref: '#/components/schemas/OrchestrationRouter' - examples: - request: - summary: Example Request - value: - orchestration_path: - sets: - - id: start - rules: - - label: Events relating to our relational database - id: 1c26698b - conditions: - - expression: event.summary matches part 'database' - - expression: 'event.source matches regex ''db[0-9]+-server''' - actions: - route_to: PB31XBA - - label: Events relating to our www app server - id: d9801904 - conditions: - - expression: event.summary matches part 'www' - actions: - route_to: PC2D9ML - - label: Events relating to our delivery pipeline - id: ed624931 - conditions: - - expression: trigger_count over 1 minute > 3 - actions: - route_to: PQSJBMA - responses: - '200': - description: The Orchestration Router object. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/OrchestrationRouter' - - type: object - properties: - warnings: - type: array - description: List of applicable warnings messages for each rule using a feature not available on your account plan. - items: - anyOf: - - $ref: '#/components/schemas/OrchestrationWarningIneligible' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: router - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router' - sets: - - id: start - rules: - - label: Events relating to our relational database - id: 1c26698b - conditions: - - expression: event.summary matches part 'database' - - expression: 'event.source matches regex ''db[0-9]+-server''' - actions: - route_to: PB31XBA - - label: Events relating to our www app server - id: d9801904 - conditions: - - expression: event.summary matches part 'www' - actions: - route_to: PC2D9ML - - label: Events relating to our delivery pipeline - id: ed624931 - conditions: - - expression: trigger_count over 1 minute > 3 - actions: - route_to: PQSJBMA - catch_all: - actions: - route_to: unrouted - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: 9co0z4b152oICsoV91_PW2.ww8ip_xap - warnings: - - feature: threshold_condition - feature_type: conditions - message: 'This rule uses Threshold Condition, which is a condition not available on your account plan. The rule will be updated, but it will not be evaluated by events' - rule_id: ed624931 - warning_type: forbidden_feature - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/{id}/unrouted': - get: - x-pd-requires-scope: event_orchestrations.read - tags: - - Event Orchestrations - operationId: getOrchPathUnrouted - summary: Get the Unrouted Orchestration for an Event Orchestration + Note: The `trigger_count` and `resetting_trigger_count` operators are unsupported for Cache Variables + required: + - name + - configuration + OrchestrationCacheVariableExternalData: + title: External Data + type: object + properties: + id: + type: string + readOnly: true + name: + type: string + description: The name of the Cache Variable + disabled: + type: boolean + description: Indicates whether the Cache Variable is disabled and would therefore not be evaluated. + created_at: + type: string + format: date-time + description: The date/time the object was created. + readOnly: true + created_by: + type: object + description: Reference to the user that created the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + updated_by: + type: object + description: Reference to the user that last updated the object. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + configuration: + type: object + properties: + type: + type: string + description: | + The Cache Variable value will be set via a PUT API request to a dedicated endpoint that is made available after the creation of the cache variable. + enum: + - external_data + data_type: + type: string + description: | + The type of data that will eventually be set for this cache variable via an API request. + enum: + - string + - number + - boolean + ttl_seconds: + type: integer + description: | + The time to live (in seconds) for how long data sent to endpoint is persisted. After the TTL passes the data is deleted. + data_endpoint: + type: string + format: uri + description: The endpoint that can be used to manage the data for an `external_data` type cache variable + readOnly: true + required: + - name + - configuration + responses: + Unauthorized: description: | - Get a Global Event Orchestration's Rules for Unrouted events. - - An Unrouted Orchestration allows you to create a set of Event Rules that will be evaluated against all events that don't match any rules in the Global Orchestration's Router. Events that reach the Unrouted Orchestration will never be routed to a specific Service. - - The Unrouted Orchestration evaluates Events sent to it against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Unrouted Orchestration for further processing. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - responses: - '200': - $ref: '#/components/responses/OrchestrationPathUnroutedTypeResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: event_orchestrations.write - tags: - - Event Orchestrations - operationId: updateOrchPathUnrouted - summary: Update the Unrouted Orchestration for an Event Orchestration + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Update a Global Event Orchestration's Rules for Unrouted events. - - An Unrouted Orchestration allows you to create a set of Event Rules that will be evaluated against all events that don't match any rules in the Global Orchestration's Router. Events that reach the Unrouted Orchestration will never be routed to a specific Service. - - The Unrouted Orchestration evaluates Events sent to it against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Unrouted Orchestration for further processing. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `event_orchestrations.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/event_orchestration_id' - requestBody: - description: Updates to Unrouted Orchestration rules. Omitted rules and rule details are deleted. - content: - application/json: - schema: - $ref: '#/components/schemas/OrchestrationUnrouted' - examples: - request: - summary: Example Request - value: - orchestration_path: - sets: - - id: start - rules: - - label: Update the summary of un-matched Critical alerts so they're easier to spot - id: 38880ffb - conditions: - - expression: event.severity matches 'critical' - actions: - extractions: - - target: event.summary - template: '[Critical Unrouted] {{event.summary}}' - - label: Reduce the severity of all other unrouted events - id: 3896801e - conditions: [] - actions: - severity: info - catch_all: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotAllowed: + description: The request was received and recognized by the server, but its HTTP method was rejected for the requested resource. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + OrchestrationPathRouterTypeResponse: + description: The Orchestration Router object. + content: + application/json: + schema: + $ref: '#/components/schemas/OrchestrationRouter' + examples: + response: + summary: Example Response + value: + orchestration_path: + type: router + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Events relating to our relational database + id: 1c26698b + conditions: + - expression: event.summary matches part 'database' + - expression: event.source matches regex 'db[0-9]+-server' + actions: + route_to: PB31XBA + - label: Events relating to our www app server + id: d9801904 + conditions: + - expression: event.summary matches part 'www' actions: - suppress: true - responses: - '200': - description: The Unrouted Orchestration object. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/OrchestrationUnrouted' - - type: object - properties: - warnings: - type: array - description: List of applicable warnings messages for each rule using a feature not available on your account plan. - items: - anyOf: - - $ref: '#/components/schemas/OrchestrationWarningIneligible' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: unrouted - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router' - sets: - - id: start - rules: - - label: Update the summary of un-matched Critical alerts so they're easier to spot - id: 38880ffb - conditions: - - expression: event.severity matches 'critical' - actions: - extractions: - - target: event.summary - template: '[Critical Unrouted] {{event.summary}}' - - label: Reduce the severity of all other unrouted events - id: 3896801e - conditions: [] - actions: - severity: info - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod - warnings: - - feature: extractions - feature_type: actions - message: 'This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: 3896801e - warning_type: forbidden_feature - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/services/{service_id}': - get: - x-pd-requires-scope: services.read - tags: - - Event Orchestrations - operationId: getOrchPathService - summary: Get the Service Orchestration for a Service - description: | - Get a Service Orchestration. - - A Service Orchestration allows you to create a set of Event Rules. The Service Orchestration evaluates Events sent to this Service against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Service Orchestration for further processing. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `services.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/service_id' - responses: - '200': - $ref: '#/components/responses/OrchestrationPathServiceTypeResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: services.write - tags: - - Event Orchestrations - operationId: updateOrchPathService - summary: Update the Service Orchestration for a Service - description: | - Update a Service Orchestration. - - A Service Orchestration allows you to create a set of Event Rules. The Service Orchestration evaluates Events sent to this Service against each of its rules, beginning with the rules in the "start" set. When a matching rule is found, it can modify and enhance the event and can route the event to another set of rules within this Service Orchestration for further processing. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/service_id' - requestBody: - description: Update Service Orchestration rules. Omitted rules and rule details are deleted. - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceOrchestration' - examples: - request: - summary: Example Request - value: - orchestration_path: - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - pagerduty_automation_actions: - - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' - priority: P0IN2KQ - suppress: false - - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel - id: 1f6d9a33 - conditions: - - expression: event.custom_details.hostname matches part 'canary' - actions: - automation_actions: - - name: Canary Slack Notification - url: 'https://our-slack-listerner.test/send-notification' - auto_send: true - headers: - - key: X-Notification-Source - value: PagerDuty Incident Webhook - parameters: - - key: channel - value: '#my-team-channel' - - key: message - value: Something is wrong with the canary deployment - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true + route_to: PC2D9ML + catch_all: + actions: + route_to: unrouted + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: 9co0z4b152oICsoV91_PW2.ww8ip_xap + OrchestrationPathUnroutedTypeResponse: + description: The Unrouted Orchestration object. + content: + application/json: + schema: + $ref: '#/components/schemas/OrchestrationUnrouted' + examples: + response: + summary: Example Response + value: + orchestration_path: + type: unrouted + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/router + sets: + - id: start + rules: + - label: Update the summary of un-matched Critical alerts so they're easier to spot + id: 38880ffb + conditions: + - expression: event.severity matches 'critical' + actions: + extractions: + - target: event.summary + template: '[Critical Unrouted] {{event.summary}}' + - label: Reduce the severity of all other unrouted events + id: 3896801e + conditions: [] + actions: + severity: info + catch_all: + actions: + suppress: true + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: aZO.EEf9zWb9Vg0NYq.Uqad1hOC2Maod + OrchestrationPathServiceTypeResponse: + description: The Service Orchestration object. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceOrchestration' + examples: + response: + summary: Example Response + value: + orchestration_path: + type: service + parent: + id: PC2D9ML + self: https://api.pagerduty.com/service/PC2D9ML + type: service_reference + self: https://api.pagerduty.com/event_orchestrations/service/PC2D9ML + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to every event sent to this Service + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + pagerduty_automation_actions: + - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB + trigger_types: + - alert_triggered + route_to: step-two + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel + id: 1f6d9a33 + conditions: + - expression: event.custom_details.hostname matches part 'canary' + actions: + automation_actions: + - name: Canary Slack Notification + url: https://our-slack-listerner.test/send-notification + auto_send: true + headers: + - key: X-Notification-Source + value: PagerDuty Incident Webhook + parameters: + - key: channel + value: '#my-team-channel' + - key: message + value: Something is wrong with the canary deployment + trigger_types: + - alert_triggered + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - label: Pause the alert and trigger a reboot action if flaky server receives an error + id: c0163dbe + conditions: + - expression: event.custom_details.hostname matches part 'staging' + actions: + suspend: 300 + pagerduty_automation_actions: + - action_id: 01CSBCGJXMG7ABIJZKPD8P9RCL + trigger_types: + - alert_suspended + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true catch_all: actions: suppress: true - responses: - '200': - description: The Service Orchestration object. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/ServiceOrchestration' - - type: object - properties: - warnings: - type: array - description: List of applicable warnings messages for each rule using a feature not available on your account plan. - items: - anyOf: - - $ref: '#/components/schemas/OrchestrationWarningIneligible' - examples: - response: - summary: Example Response - value: - orchestration_path: - type: service - parent: - id: PC2D9ML - self: 'https://api.pagerduty.com/service/PC2D9ML' - type: service_reference - self: 'https://api.pagerduty.com/event_orchestrations/service/PC2D9ML' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - pagerduty_automation_actions: - - action_id: 01CSB5SMOKCKVRI5GN0LJG7SMB - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - annotate: 'Please use our P1 runbook: https://docs.test/p1-runbook' - priority: P0IN2KQ - suppress: false - - label: If there's something wrong on the canary let the team know about it in our deployments Slack channel - id: 1f6d9a33 - conditions: - - expression: event.custom_details.hostname matches part 'canary' - actions: - automation_actions: - - name: Canary Slack Notification - url: 'https://our-slack-listerner.test/send-notification' - auto_send: true - headers: - - key: X-Notification-Source - value: PagerDuty Incident Webhook - parameters: - - key: channel - value: '#my-team-channel' - - key: message - value: Something is wrong with the canary deployment - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - warnings: - - feature: nested_rules - feature_type: nested_rules - message: 'This orchestration contains Nested Rules, which is not available on your account plan. The orchestration will be updated, however, only rules in the ''start'' set will be evaluated' - rule_id: null - warning_type: forbidden_feature - - feature: variables - feature_type: actions - message: 'This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: c91f72f3 - warning_type: forbidden_feature - - feature: extractions - feature_type: actions - message: 'This rule uses Dynamic Field Enrichment & Extraction, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: c91f72f3 - warning_type: forbidden_feature - - feature: pagerduty_automation_actions - feature_type: actions - message: 'This rule uses PagerDuty Automation Actions, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: c91f72f3 - warning_type: forbidden_feature - - feature: automation_actions - feature_type: actions - message: 'This rule uses Automation Actions, which is an action not available on your account plan. The rule will be updated, but the action will not be fired when the rule is evaluated' - rule_id: 1f6d9a33 - warning_type: forbidden_feature - - feature: recurring_condition - feature_type: conditions - message: 'This rule uses Recurring Condition, which is a condition not available on your account plan. The rule will be updated, but it will not be evaluated by events' - rule_id: cd770384 - warning_type: forbidden_feature - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - '/event_orchestrations/services/{service_id}/active': - get: - x-pd-requires-scope: services.read - tags: - - Event Orchestrations - operationId: getOrchActiveStatus - summary: Get the Service Orchestration active status for a Service - description: | - Get a Service Orchestration's active status. - - A Service Orchestration allows you to set an active status based on whether an event will be evaluated against a service orchestration path (true) or service ruleset (false). - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `services.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/service_id' - responses: - '200': - $ref: '#/components/responses/OrchestrationPathServiceActiveResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: services.write - tags: - - Event Orchestrations - operationId: updateOrchActiveStatus - summary: Update the Service Orchestration active status for a Service - description: | - Update a Service Orchestration's active status. - - A Service Orchestration allows you to set an active status based on whether an event will be evaluated against a service orchestration path (true) or service ruleset (false). - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#event-orchestrations) - - Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/service_id' - requestBody: - description: Update Service Orchestration's active status. - content: - application/json: - schema: - $ref: '#/components/responses/OrchestrationPathServiceActiveResponse/content/application~1json/schema' - examples: - request: - summary: Example Request - value: - active: false - responses: - '200': - $ref: '#/components/responses/OrchestrationPathServiceActiveResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_at: '2023-06-14T13:51:31Z' + migrated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_from: + id: PC2D9ML + self: https://api.pagerduty.com/services/PC2D9ML/rules + type: service_event_rules_reference + migrated_status: completed + migrated_via: UI + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + OrchestrationPathServiceActiveResponse: + description: An object with the active status. + content: + application/json: + schema: + type: object + properties: + active: + type: boolean + description: The status of the service orchestration. + examples: + response: + summary: Example Response + value: + active: false + OrchestrationCacheVariableListResponse: + description: The Cache Variables for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variables: + type: array + items: + anyOf: + - $ref: '#/components/schemas/OrchestrationCacheVariableRecentValue' + - $ref: '#/components/schemas/OrchestrationCacheVariableTriggerEventCount' + - $ref: '#/components/schemas/OrchestrationCacheVariableExternalData' + examples: + response: + summary: Response Example + value: + cache_variables: + - id: 294c3ee9-ae83-4da7-828d-107c71dc9316 + name: cache_var_1 + conditions: + - expression: event.source exists + - expression: event.severity matches 'critical' + configuration: + type: recent_value + source: event.source + regex: www (.*) service + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + - id: 2a6d02d5-6365-4326-aaf1-6a719e990245 + name: cache_var_2 + conditions: [] + configuration: + type: trigger_event_count + ttl_seconds: 60 + disabled: true + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + - id: b910c789-5b47-4635-a23c-20a5578b3e9a + name: cache_var_3 + configuration: + type: external_data + ttl_seconds: 500 + disabled: false + data_endpoint: https://api.pagerduty.com/event_orchestrations/e5b42543-c10d-460d-8581-e89f08e0dcae/cache_variables/b910c789-5b47-4635-a23c-20a5578b3e9a/data + created_at: '2024-10-03T16:28:48Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + total: 3 + OrchestrationCacheVariablePostResponse: + description: The created Cache Variable for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variable: + oneOf: + - $ref: '#/components/schemas/OrchestrationCacheVariableRecentValue' + - $ref: '#/components/schemas/OrchestrationCacheVariableTriggerEventCount' + - $ref: '#/components/schemas/OrchestrationCacheVariableExternalData' + examples: + recent_value: + summary: 'Response Example: Recent value cache variable' + value: + cache_variable: + - id: 66bb56c3-2a17-44f3-9193-06b166d759ad + name: example_1 + conditions: + - expression: not event.custom_details.errors exists + configuration: + type: recent_value + source: event.summary + regex: .* + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + trigger_event_count: + summary: 'Response Example: Trigger event count cache variable' + value: + cache_variable: + - id: f08cdd8d-10a5-4c70-b508-82ab5c365a43 + name: example_2 + conditions: [] + configuration: + type: trigger_event_count + ttl_seconds: 30 + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + external_data: + summary: 'Response Example: External data cache variable' + value: + cache_variable: + - id: d35f6e12-c391-4606-93b8-2b7295670077 + name: example_3 + configuration: + type: external_data + ttl_seconds: 300 + data_type: boolean + created_at: '2021-11-18T16:43:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:43:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + data_endpoint: https://api.pagerduty.com/event_orchestrations/e5b42543-c10d-460d-8581-e89f08e0dcae/cache_variables/d35f6e12-c391-4606-93b8-2b7295670077/data + OrchestrationCacheVariableGetResponse: + description: The fetched Cache Variable for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variable: + oneOf: + - $ref: '#/components/schemas/OrchestrationCacheVariableRecentValue' + - $ref: '#/components/schemas/OrchestrationCacheVariableTriggerEventCount' + - $ref: '#/components/schemas/OrchestrationCacheVariableExternalData' + examples: + response: + summary: Response Example + value: + cache_variable: + - id: 64122e97-de81-4554-9d7c-c219cef351cd + name: cache_var_1 + conditions: + - expression: raw_event.class exists and event.summary matches part 'unstable' + configuration: + type: recent_value + source: event.custom_details.work_id + regex: .* + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + OrchestrationCacheVariablePutResponse: + description: The updated Cache Variable for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variable: + oneOf: + - $ref: '#/components/schemas/OrchestrationCacheVariableRecentValue' + - $ref: '#/components/schemas/OrchestrationCacheVariableTriggerEventCount' + - $ref: '#/components/schemas/OrchestrationCacheVariableExternalData' + examples: + update_conditions: + summary: 'Response Example: Recent value cache variable' + value: + cache_variable: + - id: 66bb56c3-2a17-44f3-9193-06b166d759ad + name: example_1 + conditions: + - expression: event.summary matches 'exception' + - expression: event.summary matches 'error' + configuration: + type: recent_value + source: event.summary + regex: .* + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + update_configuration: + summary: 'Response Example: Trigger event count cache variable' + value: + cache_variable: + - id: 66bb56c3-2a17-44f3-9193-06b166d759ad + name: example_1 + conditions: + - expression: not event.custom_details.errors exists + configuration: + type: trigger_event_count + ttl_seconds: 2 + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + update_disabled: + summary: 'Response Example: Disabled cache variable' + value: + cache_variable: + - id: 66bb56c3-2a17-44f3-9193-06b166d759ad + name: example_1 + conditions: + - expression: not event.custom_details.errors exists + configuration: + type: recent_value + source: event.summary + regex: .* + disabled: true + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + OrchestrationCacheVariableGetDataResponse: + description: The data on an `external_data` type Cache Variable for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variable_data: + type: string + description: 'The string value to set on an external data cache variable configured with `data_type: string`.' + updated_at: + type: string + format: date-time + description: The date/time the cache variable data was last updated. + readOnly: true + required: + - cache_variable_data + examples: + string data: + summary: 'Response Example: String data' + value: + cache_variable_data: Hello World! + updated_at: '2021-11-18T16:42:01Z' + number data: + summary: 'Response Example: Number data' + value: + cache_variable_data: 45.348 + updated_at: '2021-11-18T16:42:01Z' + boolean data: + summary: 'Response Example: Boolean data' + value: + cache_variable_data: true + updated_at: '2021-11-18T16:42:01Z' + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + sort_by_event_orchestration: + name: sort_by + in: query + description: Used to specify the field you wish to sort the results on. + schema: + type: string + enum: + - name:asc + - name:desc + - routes:asc + - routes:desc + - created_at:asc + - created_at:desc + default: name:asc + event_orchestration_id: + name: id + description: The ID of an Event Orchestration. + in: path + required: true + schema: + type: string + event_orchestration_integration_id: + name: integration_id + description: The ID of an Integration. + in: path + required: true + schema: + type: string + service_id: + name: service_id + in: path + description: The service ID + required: true + schema: + type: string + include_ruleset_migrated_metadata: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - migrated_metadata + uniqueItems: true + event_orchestration_cache_variable_id: + name: cache_variable_id + description: The ID of a Cache Variable. + in: path + required: true + schema: + type: string + enablement_feature_name: + name: feature_name + description: The feature enablement identifier, typically the name of the product addon. Currently only `aiops` is supported. + in: path + required: true + schema: + type: string + enum: + - aiops + examples: + OrchestrationPathGlobalTypeResponse: + summary: Example Response + value: + orchestration_path: + type: global + parent: + id: b02e973d-9620-4e0a-9edc-00fedf7d4694 + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694 + type: event_orchestration_reference + self: https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global + sets: + - id: start + rules: + - label: Always apply some consistent event transformations to all events + id: c91f72f3 + conditions: [] + actions: + variables: + - name: hostname + path: event.component + value: 'hostname: (.*)' + type: regex + extractions: + - template: '{{variables.hostname}}' + target: event.custom_details.hostname + - source: event.source + regex: www (.*) service + target: event.source + incident_custom_field_updates: + - id: PEXCK89 + value: '#my-team-channel' + - id: PN1C4A2 + value: '{{event.timestamp}}' + route_to: step-two + - id: step-two + rules: + - label: All critical alerts should be treated as P1 incidents + id: 7c54529d + conditions: + - expression: event.severity matches 'critical' + actions: + priority: P0IN2KQ + suppress: false + incident_custom_field_updates: + - id: PEXCK89 + value: '#p1-incident-response' + - label: Drop all events from the very-noisy monitoring tool + id: 1f6d9a33 + conditions: + - expression: event.source matches part 'very-noisy' + actions: + drop_event: true + - label: Assign all database related incidents to the Database Team's escalation policy + id: 4314d9ce + conditions: + - expression: event.source matches 'prod-db' + actions: + escalation_policy: PEYSGVF + - label: Never bother the on-call for info-level events outside of work hours + id: cd770384 + conditions: + - expression: event.severity matches 'info' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles) + actions: + suppress: true + catch_all: + actions: + suppress: true + incident_custom_field_updates: + - id: PEXCK89 + value: '#general-incident-notifications' + created_at: '2021-11-18T16:42:01Z' + created_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + updated_at: '2021-11-18T16:42:01Z' + updated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + FeatureEnablementListResponseSuccess: + summary: Success Response + value: + enablements: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + FeatureEnablementListResponseWarningForOrchestration: + summary: Response with No Entitlement Warning + value: + enablements: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + warnings: + - message: You can't use AIOps functionality with this Orchestration because your account hasn't purchased AIOps + FeatureEnablementListResponseDefault: + summary: Default Response (No Settings Configured) + value: + enablements: + - feature: aiops + enabled: true + updated_at: null + FeatureEnablementPutRequestEnable: + summary: Enable AIOps + value: + enablement: + enabled: true + FeatureEnablementPutRequestDisable: + summary: Disable AIOps + value: + enablement: + enabled: false + FeatureEnablementPutResponseSuccess: + summary: Success Response + value: + enablement: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + FeatureEnablementPutResponseWarningForOrchestration: + summary: Response with No Entitlement Warning + value: + enablement: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + warnings: + - message: You can't use AIOps functionality with this Orchestration because your account hasn't purchased AIOps + requestBodies: + OrchestrationCacheVariablePostRequest: + content: + application/json: + schema: + type: object + properties: + cache_variable: + oneOf: + - $ref: '#/components/schemas/OrchestrationCacheVariableRecentValue' + - $ref: '#/components/schemas/OrchestrationCacheVariableTriggerEventCount' + - $ref: '#/components/schemas/OrchestrationCacheVariableExternalData' + required: + - cache_variable + examples: + recent_value: + summary: 'Request Example: Recent value cache variable' + value: + cache_variable: + name: example_1 + conditions: + - expression: not event.custom_details.errors exists + configuration: + type: recent_value + source: event.summary + regex: .* + trigger_event_count: + summary: 'Request Example: Trigger event count cache variable' + value: + cache_variable: + name: example_2 + configuration: + type: trigger_event_count + ttl_seconds: 30 + external_data: + summary: 'Request Example: External Data cache variable' + value: + cache_variable: + name: example_3 + configuration: + type: external_data + ttl_seconds: 300 + data_type: boolean + OrchestrationCacheVariablePutRequest: + content: + application/json: + schema: + type: object + properties: + cache_variable: + oneOf: + - $ref: '#/components/schemas/OrchestrationCacheVariableRecentValue' + - $ref: '#/components/schemas/OrchestrationCacheVariableTriggerEventCount' + - $ref: '#/components/schemas/OrchestrationCacheVariableExternalData' + required: + - cache_variable + examples: + update_conditions: + summary: 'Request Example: Update conditions (trigger_event_count, recent_value)' + value: + cache_variable: + name: example_1 + conditions: + - expression: event.summary matches 'exception' + - expression: event.summary matches 'error' + update_configuration: + summary: 'Request Example: Update configuration' + value: + cache_variable: + name: example_1 + configuration: + type: trigger_event_count + ttl_seconds: 2 + update_disabled: + summary: 'Request Example: Update disabled state' + value: + cache_variable: + name: example_1 + disabled: true + OrchestrationCacheVariableDataPutRequest: + description: The updated data for an `external_data` type Cache Variable for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variable_data: + type: string + description: 'The string value to set on an external data cache variable configured with `data_type: string`.' + updated_at: + type: string + format: date-time + description: The date/time the cache variable data was last updated. + readOnly: true + required: + - cache_variable_data + examples: + string data: + summary: 'Request Example: Updated string' + value: + cache_variable_data: Updated - Hello World! + number data: + summary: 'Request Example: Updated number' + value: + cache_variable_data: 85.1 + boolean data: + summary: 'Request Example: Updated boolean' + value: + cache_variable_data: false + OrchestrationCacheVariableDataPutResponse: + description: The data on an `external_data` type Cache Variable for this Event Orchestration. + content: + application/json: + schema: + type: object + properties: + cache_variable_data: + type: string + description: 'The string value to set on an external data cache variable configured with `data_type: string`.' + updated_at: + type: string + format: date-time + description: The date/time the cache variable data was last updated. + readOnly: true + required: + - cache_variable_data + examples: + string data: + summary: 'Response Example: String' + value: + cache_variable_data: Updated - Hello World! + updated_at: '2021-11-18T16:42:01Z' + number data: + summary: 'Response Example: Number' + value: + cache_variable_data: 85.1 + updated_at: '2021-11-18T16:42:01Z' + boolean data: + summary: 'Response Example: Boolean' + value: + cache_variable_data: false + updated_at: '2021-11-18T16:42:01Z' + x-stackQL-resources: + event_orchestrations: + id: pagerduty.event_orchestrations.event_orchestrations + name: event_orchestrations + title: Event Orchestrations + methods: + list: + operation: + $ref: '#/paths/~1event_orchestrations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestrations + config: + queryParamPushdown: + orderBy: + paramName: sort_by + syntax: suffix + supportedColumns: + - name + - routes + - created_at + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestration + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/get' + - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/event_orchestrations/methods/delete' + replace: [] + integrations: + id: pagerduty.event_orchestrations.integrations + name: integrations + title: Integrations + methods: + list: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1integrations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integrations + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1integrations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integration + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1{integration_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + migrate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1integrations~1migration/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/integrations/methods/get' + - $ref: '#/components/x-stackQL-resources/integrations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/integrations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/integrations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/integrations/methods/delete' + replace: [] + global_paths: + id: pagerduty.event_orchestrations.global_paths + name: global_paths + title: Global Paths + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1global/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestration_path + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1global/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/global_paths/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/global_paths/methods/update' + delete: [] + replace: [] + router_paths: + id: pagerduty.event_orchestrations.router_paths + name: router_paths + title: Router Paths + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1router/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestration_path + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1router/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/router_paths/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/router_paths/methods/update' + delete: [] + replace: [] + unrouted_paths: + id: pagerduty.event_orchestrations.unrouted_paths + name: unrouted_paths + title: Unrouted Paths + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1unrouted/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestration_path + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1unrouted/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/unrouted_paths/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/unrouted_paths/methods/update' + delete: [] + replace: [] + service_paths: + id: pagerduty.event_orchestrations.service_paths + name: service_paths + title: Service Paths + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.orchestration_path + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_paths/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/service_paths/methods/update' + delete: [] + replace: [] + service_active_statuses: + id: pagerduty.event_orchestrations.service_active_statuses + name: service_active_statuses + title: Service Active Statuses + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1active/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1active/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_active_statuses/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/service_active_statuses/methods/update' + delete: [] + replace: [] + cache_variables: + id: pagerduty.event_orchestrations.cache_variables + name: cache_variables + title: Cache Variables + methods: + list: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.cache_variables + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables~1{cache_variable_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.cache_variable + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables~1{cache_variable_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables~1{cache_variable_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/cache_variables/methods/get' + - $ref: '#/components/x-stackQL-resources/cache_variables/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/cache_variables/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/cache_variables/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/cache_variables/methods/delete' + replace: [] + cache_variable_data: + id: pagerduty.event_orchestrations.cache_variable_data + name: cache_variable_data + title: Cache Variable Data + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables~1{cache_variable_id}~1data/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables~1{cache_variable_id}~1data/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1cache_variables~1{cache_variable_id}~1data/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/cache_variable_data/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/cache_variable_data/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/cache_variable_data/methods/delete' + replace: [] + service_cache_variables: + id: pagerduty.event_orchestrations.service_cache_variables + name: service_cache_variables + title: Service Cache Variables + methods: + list: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.cache_variables + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables~1{cache_variable_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.cache_variable + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables~1{cache_variable_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables~1{cache_variable_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_cache_variables/methods/get' + - $ref: '#/components/x-stackQL-resources/service_cache_variables/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/service_cache_variables/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/service_cache_variables/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/service_cache_variables/methods/delete' + replace: [] + service_cache_variable_data: + id: pagerduty.event_orchestrations.service_cache_variable_data + name: service_cache_variable_data + title: Service Cache Variable Data + methods: + get: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables~1{cache_variable_id}~1data/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables~1{cache_variable_id}~1data/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1event_orchestrations~1services~1{service_id}~1cache_variables~1{cache_variable_id}~1data/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_cache_variable_data/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/service_cache_variable_data/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/service_cache_variable_data/methods/delete' + replace: [] + enablements: + id: pagerduty.event_orchestrations.enablements + name: enablements + title: Enablements + methods: + list: + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1enablements/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.enablements + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1event_orchestrations~1{id}~1enablements~1{feature_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/enablements/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/enablements/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/extension_schemas.yaml b/providers/src/pagerduty/v00.00.00000/services/extension_schemas.yaml index db265dd8..42c55a91 100644 --- a/providers/src/pagerduty/v00.00.00000/services/extension_schemas.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/extension_schemas.yaml @@ -1,121 +1,160 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Extension Schemas + description: Extension schemas describe the available extension types (vendors and webhook types). version: 2.0.0 - title: PagerDuty API - extension_schemas - description: Extension_Schemas -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /extension_schemas: + get: + x-pd-requires-scope: extension_schemas.read + tags: + - Extension Schemas + operationId: listExtensionSchemas + description: | + List all extension schemas. + + A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extension-schemas) + + Scoped OAuth requires: `extension_schemas.read` + summary: List extension schemas + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + responses: + '200': + description: A paginated array of extension schemas. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + extension_schemas: + type: array + items: + $ref: '#/components/schemas/ExtensionSchema' + required: + - extension_schemas + examples: + response: + summary: Response Example + value: + extension_schemas: + - id: PJFWPEP + type: extension_schema + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + description: Long description here + guide_url: https://developer.pagerduty.com + icon_url: https://extension.com/extension.png + key: generic_webhook + label: Generic Webhook + logo_url: https://extension.com/logo.png + send_types: + - trigger + - acknowledge + - resolve + - delegate + - escalate + - unacknowledge + - assign + url: '' + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List extension schemas. + /extension_schemas/{id}: + get: + x-pd-requires-scope: extension_schemas.read + tags: + - Extension Schemas + operationId: getExtensionSchema + description: | + Get details about one specific extension vendor. + + A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extension-schemas) + + Scoped OAuth requires: `extension_schemas.read` + summary: Get an extension vendor + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The extension vendor requested + content: + application/json: + schema: + type: object + properties: + extension_schema: + $ref: '#/components/schemas/ExtensionSchema' + required: + - extension_schema + examples: + response: + summary: Response Example + value: + extension_schema: + id: PJFWPEP + type: extension_schema + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + description: Long description here + guide_url: https://developer.pagerduty.com + icon_url: https://extension.com/extension.png + key: generic_webhook + label: Generic Webhook + logo_url: https://extension.com/logo.png + send_types: + - trigger + - acknowledge + - resolve + - delegate + - escalate + - unacknowledge + - assign + url: '' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get details about one specific extension vendor. components: schemas: Pagination: @@ -145,12 +184,12 @@ components: type: string format: url readOnly: true - description: 'A small logo, 18-by-18 pixels.' + description: A small logo, 18-by-18 pixels. logo_url: type: string format: url readOnly: true - description: 'A large logo, 75 pixels high and no more than 300 pixels wide.' + description: A large logo, 75 pixels high and no more than 300 pixels wide. label: type: string readOnly: true @@ -190,14 +229,14 @@ components: id: PJFWPEP type: extension_schema summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' + self: https://api.pagerduty.com/extension_schemas/PJFWPEP html_url: 'null' description: Long description here - guide_url: 'https://developer.pagerduty.com' - icon_url: 'https://extension.com/extension.png' + guide_url: https://developer.pagerduty.com + icon_url: https://extension.com/extension.png key: generic_webhook label: Generic Webhook - logo_url: 'https://extension.com/logo.png' + logo_url: https://extension.com/logo.png send_types: - trigger - acknowledge @@ -207,1469 +246,130 @@ components: - unacknowledge - assign - custom - url: 'https://developer.pagerduty.com/my_webhook_endpoint' - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false + url: https://developer.pagerduty.com/my_webhook_endpoint + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | Caller is not authorized to view the requested resource. While your authentication is valid, the authenticated user or token does not have permission to perform this action. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1692,1054 +392,100 @@ components: example: message: Not Found code: 2100 - NotFound: - description: The requested resource was not found. + Conflict: + description: The request conflicts with the current state of the server. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string x-stackQL-resources: extension_schemas: id: pagerduty.extension_schemas.extension_schemas name: extension_schemas title: Extension Schemas methods: - list_extension_schemas: + list: operation: $ref: '#/paths/~1extension_schemas/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.extension_schemas - _list_extension_schemas: - operation: - $ref: '#/paths/~1extension_schemas/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_extension_schema: + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: operation: $ref: '#/paths/~1extension_schemas~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.extension_schema - _get_extension_schema: - operation: - $ref: '#/paths/~1extension_schemas~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/extension_schemas/methods/get_extension_schema' - - $ref: '#/components/x-stackQL-resources/extension_schemas/methods/list_extension_schemas' + - $ref: '#/components/x-stackQL-resources/extension_schemas/methods/get' + - $ref: '#/components/x-stackQL-resources/extension_schemas/methods/list' insert: [] update: [] delete: [] -paths: - /extension_schemas: - get: - x-pd-requires-scope: extension_schemas.read - tags: - - Extension Schemas - operationId: listExtensionSchemas - description: | - List all extension schemas. - - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extension-schemas) - - Scoped OAuth requires: `extension_schemas.read` - summary: List extension schemas - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - responses: - '200': - description: A paginated array of extension schemas. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - extension_schemas: - type: array - items: - $ref: '#/components/schemas/ExtensionSchema' - required: - - extension_schemas - examples: - response: - summary: Response Example - value: - extension_schemas: - - id: PJFWPEP - type: extension_schema - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - description: Long description here - guide_url: 'https://developer.pagerduty.com' - icon_url: 'https://extension.com/extension.png' - key: generic_webhook - label: Generic Webhook - logo_url: 'https://extension.com/logo.png' - send_types: - - trigger - - acknowledge - - resolve - - delegate - - escalate - - unacknowledge - - assign - url: '' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/extension_schemas/{id}': - get: - x-pd-requires-scope: extension_schemas.read - tags: - - Extension Schemas - operationId: getExtensionSchema - description: | - Get details about one specific extension vendor. - - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extension-schemas) - - Scoped OAuth requires: `extension_schemas.read` - summary: Get an extension vendor - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The extension vendor requested - content: - application/json: - schema: - type: object - properties: - extension_schema: - $ref: '#/components/schemas/ExtensionSchema' - required: - - extension_schema - examples: - response: - summary: Response Example - value: - extension_schema: - id: PJFWPEP - type: extension_schema - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - description: Long description here - guide_url: 'https://developer.pagerduty.com' - icon_url: 'https://extension.com/extension.png' - key: generic_webhook - label: Generic Webhook - logo_url: 'https://extension.com/logo.png' - send_types: - - trigger - - acknowledge - - resolve - - delegate - - escalate - - unacknowledge - - assign - url: '' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/extensions.yaml b/providers/src/pagerduty/v00.00.00000/services/extensions.yaml index adc35d1f..e2c41c4f 100644 --- a/providers/src/pagerduty/v00.00.00000/services/extensions.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/extensions.yaml @@ -1,4238 +1,4809 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Extensions + description: Extensions attach extension schema objects (webhooks, integrations) to services. version: 2.0.0 - title: PagerDuty API - extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Extension: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - name: - type: string - description: The name of the extension. - type: - type: string - description: The type of object being created. - default: extension - enum: - - extension - endpoint_url: - type: string - format: url - description: The url of the extension. - extension_objects: - type: array - description: The objects for which the extension applies - items: - $ref: '#/components/schemas/ServiceReference' - extension_schema: - $ref: '#/components/schemas/ExtensionSchemaReference' - temporarily_disabled: - type: boolean - readOnly: true - description: 'Whether or not this extension is temporarily disabled; for example, a webhook extension that is repeatedly rejected by the server.' - default: false - config: +paths: + /extensions: + get: + tags: + - Extensions + x-pd-requires-scope: extensions.read + operationId: listExtensions + description: | + List existing extensions. + + Extensions are representations of Extension Schema objects that are attached to Services. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extensions) + + Scoped OAuth requires: `extensions.read` + summary: List extensions + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/extension_object_id' + - $ref: '#/components/parameters/extension_schema_id' + - $ref: '#/components/parameters/include_extensions' + responses: + '200': + description: A paginated array of extensions. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + extensions: + type: array + items: + $ref: '#/components/schemas/Extension' + required: + - extensions + examples: + response: + summary: Response Example + value: + extensions: + - id: PPGPXHO + self: https://api.pagerduty.com/extensions/PPGPXHO + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + summary: My Webhook + type: extension + extension_schema: + id: PJFWPEP + type: extension_schema_reference + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + extension_objects: + - id: PIJ90N7 + type: service_reference + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + post: + tags: + - Extensions + x-pd-requires-scope: extensions.write + operationId: createExtension + description: | + Create a new Extension. + + Extensions are representations of Extension Schema objects that are attached to Services. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extensions) + + Scoped OAuth requires: `extensions.write` + summary: Create an extension + parameters: [] + requestBody: + content: + application/json: + schema: type: object - description: The object that contains extension configuration values depending on the extension schema specification. - required: - - extension_objects - - extension_schema - - name - example: - id: PJU23I3 - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - summary: My Webhook - type: extension - extension_schema: - id: PJFWPEP - type: extension_schema_reference - extension_objects: - - id: PIJ90N7 - type: service_reference - config: - anykey: anyvalue - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - ExtensionSchemaReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - extension_schema_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - WebhookIncidentAction: - allOf: - - $ref: '#/components/schemas/Action' - - type: object - properties: - type: - type: string - description: | - The type of action being reported by this message. * `incident.trigger` - Sent when an incident is newly created/triggered. * `incident.acknowledge` - Sent when an incident is acknowledged by a user. * `incident.unacknowledge` - Sent when an incident is unacknowledged due to its acknowledgement timing out. * `incident.resolve` - Sent when an incident has been resolved. * `incident.assign` - Sent when an incident has been assigned to another user. Often occurs in concert with an `acknowledge`. * `incident.escalate` - Sent when an incident has been escalated to another user in the same escalation chain. * `incident.delegate` - Sent when an incident has been reassigned to another escalation policy. * `incident.annotate` - Sent when a note is created on an incident. - enum: - - incident.trigger - - incident.acknowledge - - incident.unacknowledge - - incident.resolve - - incident.assign - - incident.escalate - - incident.delegate - - incident.annotate - incident: - $ref: '#/components/schemas/Incident' - log_entries: - type: array - description: Log Entries that correspond to the action this Webhook is reporting. Includes the channels. - items: - oneOf: - - $ref: '#/components/schemas/AcknowledgeLogEntry' - - $ref: '#/components/schemas/AnnotateLogEntry' - - $ref: '#/components/schemas/AssignLogEntry' - - $ref: '#/components/schemas/DelegateLogEntry' - - $ref: '#/components/schemas/EscalateLogEntry' - - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' - - $ref: '#/components/schemas/NotifyLogEntry' - - $ref: '#/components/schemas/ReachAckLimitLogEntry' - - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' - - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' - - $ref: '#/components/schemas/ResolveLogEntry' - - $ref: '#/components/schemas/SnoozeLogEntry' - - $ref: '#/components/schemas/TriggerLogEntry' - - $ref: '#/components/schemas/UnacknowledgeLogEntry' - - $ref: '#/components/schemas/UrgencyChangeLogEntry' - example: - id: bb4fcb00-6324-11e6-b9aa-22000affca53 - type: incident.resolve - triggered_at: '2016-08-15T20:13:28Z' - log_entries: - - id: R0FFIOTKIU30MN7XWR99SI0 - type: resolve_log_entry - summary: Resolved by Earline Greenholt - self: 'https://api.pagerduty.com/log_entries/R0FFIOTKIU30MN7XWR99SI0' - html_url: null - created_at: '2017-09-22T18:37:29+00:00' - agent: - id: PLMUP47 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - channel: - type: slack - user: - id: U60DQ6ZXY - name: alisdair - team: - id: T029K7I8 - domain: subdomain - channel: - id: C6981DRAW - name: subdomain-ops - service: - id: PN49J75 - type: service_reference - summary: Cool Service - self: 'https://api.pagerduty.com/services/PNTDJ30' - html_url: 'https://subdomain.pagerduty.com/services/PNTDJ30' - incident: - id: PVO5OB2 - type: incident_reference - summary: The server is on fire. - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - webhook: - type: webhook - summary: webhook - self: 'https://api.pagerduty.com/webhooks/PPGPXHO' - html_url: 'null' - name: My Webhook - endpoint_url: 'https://example.com' - webhook_object: - id: PNTDJ30 - type: service_reference - summary: Cool Service - self: 'null' - html_url: 'null' - config: - anykey: anyvalue - outbound_integration: - id: PJFWPEP - type: outbound_integration_reference - summary: Generic Webhook V2 - self: 'null' - html_url: 'null' - incident: - id: PT4KHLK - type: incident - summary: The server is on fire. - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: resolved - pending_actions: - - type: unacknowledge - at: '2015-11-10T01:02:52Z' - - type: resolve - at: '2015-11-10T04:31:52Z' - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - name: My Application Service - description: 'null' - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - created_at: '2015-11-06T11:12:51-05:00' - status: active - last_incident_timestamp: 'null' - integrations: - - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - assignments: - - at: '2015-11-10T00:31:52Z' - assignee: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - acknowledgements: - - at: '2015-11-10T00:32:52Z' - acknowledger: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high - WebhooksV1Message: - type: object - description: A message containing information about a single PagerDuty action. - readOnly: true - properties: - id: - type: string - format: uuid - description: Uniquely identifies this outgoing webhook message; can be used for idempotency when processing the messages. - readOnly: true - type: - type: string - description: The type of action being reported by this message. - enum: - - incident.trigger - - incident.acknowledge - - incident.unacknowledge - - incident.resolve - - incident.assign - - incident.escalate - - incident.delegate - readOnly: true - created_on: - type: string - format: date-time - description: The date/time when the incident changed state. - readOnly: true - data: - type: object - properties: - incident: - $ref: '#/components/schemas/WebhooksV1IncidentData' - Action: - type: object - description: A message containing information about a single PagerDuty action. - readOnly: true - properties: - id: - type: string - format: uuid - description: Uniquely identifies this outgoing webhook message; can be used for idempotency when processing the messages. - readOnly: true - triggered_at: - type: string - format: date-time - description: The date/time when this message was was sent. - readOnly: true - webhook: - $ref: '#/components/schemas/Webhook' - Incident: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - incident_number: - type: integer - readOnly: true - description: The number of the incident. This is unique across your account. - created_at: - type: string - format: date-time - readOnly: true - description: The date/time the incident was first triggered. - status: - type: string - description: The current status of the incident. - enum: - - triggered - - acknowledged - - resolved - title: - type: string - readOnly: false - description: 'A succinct description of the nature, symptoms, cause, or effect of the incident.' - pending_actions: - type: array - readOnly: true - description: 'The list of pending_actions on the incident. A pending_action object contains a type of action which can be escalate, unacknowledge, resolve or urgency_change. A pending_action object contains at, the time at which the action will take place. An urgency_change pending_action will contain to, the urgency that the incident will change to.' - items: - $ref: '#/components/schemas/IncidentAction' - incident_key: - type: string - readOnly: true - description: The incident's de-duplication key. - service: - $ref: '#/components/schemas/ServiceReference' - assignments: - type: array - description: List of all assignments for this incident. This list will be empty if the `Incident.status` is `resolved`. - items: - $ref: '#/components/schemas/Assignment' - assigned_via: - type: string - description: How the current incident assignments were decided. Note that `direct_assignment` incidents will not escalate up the attached `escalation_policy` - enum: - - escalation_policy - - direct_assignment - readOnly: true - acknowledgements: - type: array - description: List of all acknowledgements for this incident. This list will be empty if the `Incident.status` is `resolved` or `triggered`. - items: - $ref: '#/components/schemas/Acknowledgement' - last_status_change_at: - type: string - format: date-time - readOnly: true - description: The time at which the status of the incident last changed. - last_status_change_by: - $ref: '#/components/schemas/AgentReference' - first_trigger_log_entry: - $ref: '#/components/schemas/LogEntryReference' - escalation_policy: - $ref: '#/components/schemas/EscalationPolicyReference' - teams: - type: array - description: The teams involved in the incident’s lifecycle. - items: - $ref: '#/components/schemas/TeamReference' - priority: - $ref: '#/components/schemas/PriorityReference' - urgency: - type: string - enum: - - high - - low - description: The current urgency of the incident. - resolve_reason: - $ref: '#/components/schemas/ResolveReason' - alert_counts: - $ref: '#/components/schemas/AlertCount' - conference_bridge: - $ref: '#/components/schemas/ConferenceBridge' - body: - $ref: '#/components/schemas/IncidentBody' - incidents_responders: - type: array - readOnly: true - items: - $ref: '#/components/schemas/IncidentsRespondersReference' - responder_requests: - type: array - readOnly: true - items: - $ref: '#/components/schemas/ResponderRequest' - AcknowledgeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - acknowledgement_timeout: - type: integer - description: 'Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set.' - type: - type: string - enum: - - acknowledgement_log_entry - AnnotateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - annotate_log_entry - AssignLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - assign_log_entry - DelegateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - delegate_log_entry - EscalateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - escalate_log_entry - ExhaustEscalationPathLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - exhaust_escalation_path_log_entry - NotifyLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - created_at: - type: string - format: date-time - readOnly: true - description: Time at which the log entry was created - user: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - notify_log_entry - ReachAckLimitLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - reach_ack_limit_log_entry - ReachTriggerLimitLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - reach_trigger_limit_log_entry - RepeatEscalationPathLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - repeat_escalation_path_log_entry - ResolveLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - resolve_log_entry - SnoozeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - changed_actions: - type: array - items: - $ref: '#/components/schemas/IncidentAction' - type: - type: string - enum: - - snooze_log_entry - TriggerLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - trigger_log_entry - UnacknowledgeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - unacknowledge_log_entry - UrgencyChangeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - urgency_change_log_entry - WebhooksV1IncidentData: + properties: + extension: + $ref: '#/components/schemas/Extension' + required: + - extension + examples: + request: + summary: Request Example + value: + extension: + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + extension_schema: + id: PJFWPEP + type: extension_schema_reference + extension_objects: + - id: PIJ90N7 + type: service_reference + requestCustomHeaders: + summary: Request Example with Custom Headers + value: + extension: + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + extension_schema: + id: PJFWPEP + type: extension_schema_reference + extension_objects: + - id: PIJ90N7 + type: service_reference + config: + headers: + - name: Authorization + value: Token token=super_secret_token_value + description: The extension to be created + responses: + '201': + description: The extension that was created + content: + application/json: + schema: + type: object + properties: + extension: + $ref: '#/components/schemas/Extension' + required: + - extension + examples: + response: + summary: Response Example + value: + extension: + id: PPGPXHO + self: https://api.pagerduty.com/extensions/PPGPXHO + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + summary: My Webhook + type: extension + extension_schema: + id: PJFWPEP + type: extension_schema_reference + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + extension_objects: + - id: PIJ90N7 + type: service_reference + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + callbacks: + webhookV2: + endpoint_url: + post: + parameters: [] + tags: + - Webhooks V2 + operationId: webhookV2 + description: Receive webhook indicating incident state has changed. + summary: Receive webhook + security: [] + responses: + '200': + description: Your server implementation should return this if it successfuly received the webhook. + requestBody: + description: Webhook. + content: + application/json: + schema: + type: object + properties: + messages: + type: array + description: An array of webhook messages. + items: + $ref: '#/components/schemas/WebhookIncidentAction' + webhookV1: + endpoint_url: + post: + parameters: [] + tags: + - Webhooks V1 + operationId: webhookV1 + description: Receive webhook indicating incident state has changed. + summary: Receive webhook + security: [] + responses: + '200': + description: Your server implementation should return this if it successfuly received the webhook. + requestBody: + description: Webhook. + content: + application/json: + schema: + $ref: '#/components/schemas/WebhooksV1Message' + description: List and create extensions. + /extensions/{id}: + get: + tags: + - Extensions + x-pd-requires-scope: extensions.read + operationId: getExtension + description: | + Get details about an existing extension. + + Extensions are representations of Extension Schema objects that are attached to Services. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extensions) + + Scoped OAuth requires: `extensions.read` + summary: Get an extension + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_extensions_id' + responses: + '200': + description: The extension that was requested. + content: + application/json: + schema: + type: object + properties: + extension: + $ref: '#/components/schemas/Extension' + required: + - extension + examples: + response: + summary: Response Example + value: + extension: + id: PPGPXHO + self: https://api.pagerduty.com/extensions/PPGPXHO + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + summary: My Webhook + type: extension + extension_schema: + id: PJFWPEP + type: extension_schema_reference + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + extension_objects: + - id: PIJ90N7 + type: service_reference + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + temporarily_disabled: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + delete: + tags: + - Extensions + x-pd-requires-scope: extensions.write + operationId: deleteExtension + description: | + Delete an existing extension. + + Once the extension is deleted, it will not be accessible from the web UI and new incidents won't be able to be created for this extension. + + Extensions are representations of Extension Schema objects that are attached to Services. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extensions) + + Scoped OAuth requires: `extensions.write` + summary: Delete an extension + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The extension was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + tags: + - Extensions + x-pd-requires-scope: extensions.write + operationId: updateExtension + description: | + Update an existing extension. + + Extensions are representations of Extension Schema objects that are attached to Services. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extensions) + + Scoped OAuth requires: `extensions.write` + summary: Update an extension + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + extension: + $ref: '#/components/schemas/Extension' + required: + - extension + examples: + request: + summary: Request Example + value: + extension: + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + extension_schema: + id: PJFWPEP + type: extension_schema_reference + extension_objects: + - id: PIJ90N7 + type: service_reference + requestCustomHeaders: + summary: Request Example with Custom Headers + value: + extension: + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + extension_schema: + id: PJFWPEP + type: extension_schema_reference + extension_objects: + - id: PIJ90N7 + type: service_reference + config: + headers: + - name: Authorization + value: Token token=super_secret_token_value + description: The extension to be updated. + responses: + '200': + description: The extension that was updated. + content: + application/json: + schema: + type: object + properties: + extension: + $ref: '#/components/schemas/Extension' + required: + - extension + examples: + response: + summary: Response Example + value: + extension: + id: PPGPXHO + self: https://api.pagerduty.com/extensions/PPGPXHO + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + summary: My Webhook + type: extension + extension_schema: + id: PJFWPEP + type: extension_schema_reference + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + extension_objects: + - id: PIJ90N7 + type: service_reference + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: Manage an extension. + /extensions/{id}/enable: + post: + tags: + - Extensions + x-pd-requires-scope: extensions.write + operationId: enableExtension + description: | + Enable an extension that is temporarily disabled. (This API does not require a request body.) + + Extensions are representations of Extension Schema objects that are attached to Services. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#extensions) + + Scoped OAuth requires: `extensions.write` + summary: Enable an extension + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The extension that was successfully enabled. + content: + application/json: + schema: + type: object + properties: + extension: + $ref: '#/components/schemas/Extension' + required: + - extension + examples: + response: + summary: Response Example + value: + extension: + id: PPGPXHO + self: https://api.pagerduty.com/extensions/PPGPXHO + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + summary: My Webhook + type: extension + extension_schema: + id: PJFWPEP + type: extension_schema_reference + summary: Generic Webhook + self: https://api.pagerduty.com/extension_schemas/PJFWPEP + extension_objects: + - id: PIJ90N7 + type: service_reference + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: Enable an extension. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Extension: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the extension. + endpoint_url: + type: string + format: url + description: The url of the extension. + extension_objects: + type: array + description: The objects for which the extension applies + items: + $ref: '#/components/schemas/ServiceReference' + extension_schema: + $ref: '#/components/schemas/ExtensionSchemaReference' + temporarily_disabled: + type: boolean + readOnly: true + description: Whether or not this extension is temporarily disabled; for example, a webhook extension that is repeatedly rejected by the server. + default: false + config: + type: string + description: The object that contains extension configuration values depending on the extension schema specification. (opaque JSON object) + required: + - extension_objects + - extension_schema + - name + example: + id: PJU23I3 + endpoint_url: https://example.com/receive_a_pagerduty_webhook + name: My Webhook + summary: My Webhook + type: extension + extension_schema: + id: PJFWPEP + type: extension_schema_reference + extension_objects: + - id: PIJ90N7 + type: service_reference + config: + anykey: anyvalue + WebhookIncidentAction: type: object - description: The incident details at the time of the state change. + description: A message containing information about a single PagerDuty action. readOnly: true properties: id: type: string + format: uuid + description: Uniquely identifies this outgoing webhook message; can be used for idempotency when processing the messages. readOnly: true - incident_number: - type: integer - description: The number of the incident. This is unique across the account. + triggered_at: + type: string + format: date-time + description: The date/time when this message was was sent. + readOnly: true + webhook: + $ref: '#/components/schemas/Webhook' + type: + type: string + description: | + The type of action being reported by this message. * `incident.trigger` - Sent when an incident is newly created/triggered. * `incident.acknowledge` - Sent when an incident is acknowledged by a user. * `incident.unacknowledge` - Sent when an incident is unacknowledged due to its acknowledgement timing out. * `incident.resolve` - Sent when an incident has been resolved. * `incident.assign` - Sent when an incident has been assigned to another user. Often occurs in concert with an `acknowledge`. * `incident.escalate` - Sent when an incident has been escalated to another user in the same escalation chain. * `incident.delegate` - Sent when an incident has been reassigned to another escalation policy. * `incident.annotate` - Sent when a note is created on an incident. + enum: + - incident.trigger + - incident.acknowledge + - incident.unacknowledge + - incident.resolve + - incident.assign + - incident.escalate + - incident.delegate + - incident.annotate + incident: + $ref: '#/components/schemas/Incident' + log_entries: + type: array + description: Log Entries that correspond to the action this Webhook is reporting. Includes the channels. + items: + oneOf: + - $ref: '#/components/schemas/AcknowledgeLogEntry' + - $ref: '#/components/schemas/AnnotateLogEntry' + - $ref: '#/components/schemas/AssignLogEntry' + - $ref: '#/components/schemas/DelegateLogEntry' + - $ref: '#/components/schemas/EscalateLogEntry' + - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' + - $ref: '#/components/schemas/NotifyLogEntry' + - $ref: '#/components/schemas/ReachAckLimitLogEntry' + - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' + - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' + - $ref: '#/components/schemas/ResolveLogEntry' + - $ref: '#/components/schemas/SnoozeLogEntry' + - $ref: '#/components/schemas/TriggerLogEntry' + - $ref: '#/components/schemas/UnacknowledgeLogEntry' + - $ref: '#/components/schemas/UrgencyChangeLogEntry' + example: + id: bb4fcb00-6324-11e6-b9aa-22000affca53 + type: incident.resolve + triggered_at: '2016-08-15T20:13:28Z' + log_entries: + - id: R0FFIOTKIU30MN7XWR99SI0 + type: resolve_log_entry + summary: Resolved by Earline Greenholt + self: https://api.pagerduty.com/log_entries/R0FFIOTKIU30MN7XWR99SI0 + html_url: null + created_at: '2017-09-22T18:37:29+00:00' + agent: + id: PLMUP47 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + channel: + type: slack + user: + id: U60DQ6ZXY + name: alisdair + team: + id: T029K7I8 + domain: subdomain + channel: + id: C6981DRAW + name: subdomain-ops + service: + id: PN49J75 + type: service_reference + summary: Cool Service + self: https://api.pagerduty.com/services/PNTDJ30 + html_url: https://subdomain.pagerduty.com/service-directory/PNTDJ30 + incident: + id: PVO5OB2 + type: incident_reference + summary: The server is on fire. + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + webhook: + type: webhook + summary: webhook + self: https://api.pagerduty.com/webhooks/PPGPXHO + html_url: 'null' + name: My Webhook + endpoint_url: https://example.com + webhook_object: + id: PNTDJ30 + type: service_reference + summary: Cool Service + self: 'null' + html_url: 'null' + config: + anykey: anyvalue + outbound_integration: + id: PJFWPEP + type: outbound_integration_reference + summary: Generic Webhook V2 + self: 'null' + html_url: 'null' + incident: + id: PT4KHLK + type: incident + summary: The server is on fire. + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 + created_at: '2015-10-06T21:30:42Z' + status: resolved + pending_actions: + - type: unacknowledge + at: '2015-11-10T01:02:52Z' + - type: resolve + at: '2015-11-10T04:31:52Z' + incident_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + name: My Application Service + description: 'null' + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + created_at: '2015-11-06T11:12:51-05:00' + status: active + last_incident_timestamp: 'null' + integrations: + - id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + assignments: + - at: '2015-11-10T00:31:52Z' + assignee: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + acknowledgements: + - at: '2015-11-10T00:32:52Z' + acknowledger: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + last_status_change_at: '2015-10-06T21:38:23Z' + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + urgency: high + WebhooksV1Message: + type: object + description: A message containing information about a single PagerDuty action. + readOnly: true + properties: + id: + type: string + format: uuid + description: Uniquely identifies this outgoing webhook message; can be used for idempotency when processing the messages. + readOnly: true + type: + type: string + description: The type of action being reported by this message. + enum: + - incident.trigger + - incident.acknowledge + - incident.unacknowledge + - incident.resolve + - incident.assign + - incident.escalate + - incident.delegate readOnly: true created_on: type: string format: date-time - description: The date/time the incident was first triggered. + description: The date/time when the incident changed state. readOnly: true - status: + data: + type: object + properties: + incident: + $ref: '#/components/schemas/WebhooksV1IncidentData' + Tag: + type: object + properties: + id: type: string - description: The current status of the incident. - enum: - - triggered - - acknowledged - - resolved readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible html_url: type: string + nullable: true + readOnly: true format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + ServiceReference: + type: object + properties: + id: + type: string readOnly: true - incident_key: + summary: type: string - description: The incident's de-duplication key. + nullable: true readOnly: true - service: - $ref: '#/components/schemas/WebhooksV1Service' - assigned_to_user: - $ref: '#/components/schemas/WebhooksV1AssignedToUser' - assigned_to: - type: array - items: - $ref: '#/components/schemas/WebhooksV1AssignedTo' + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string readOnly: true - trigger_summary_data: - type: object - properties: - subject: - type: string - readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true readOnly: true - trigger_details_html_url: + format: url + description: the API show URL at which the object is accessible + html_url: type: string + nullable: true + readOnly: true format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ExtensionSchemaReference: + type: object + properties: + id: + type: string readOnly: true - last_status_change_on: + summary: type: string - format: date-time + nullable: true readOnly: true - description: The time at which the status of the incident last changed. - last_status_change_by: - $ref: '#/components/schemas/WebhooksV1AssignedToUser' - number_of_escalations: - type: integer - minimum: 0 - description: Number of times the incident has been escalated. + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string readOnly: true - urgency: + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - enum: - - high - - low + nullable: true readOnly: true - Webhook: + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Action: type: object - description: Information about the configured webhook. + description: A message containing information about a single PagerDuty action. readOnly: true properties: - endpoint_url: + id: type: string - format: url - description: The url endpoint the webhook payload is sent to. - name: + format: uuid + description: Uniquely identifies this outgoing webhook message; can be used for idempotency when processing the messages. + readOnly: true + triggered_at: type: string - description: The name of the webhook. - webhook_object: - $ref: '#/components/schemas/WebhookObject' - config: - type: object - description: The object that contains webhook configuration values depending on the webhook type specification. - outbound_integration: - $ref: '#/components/schemas/OutboundIntegrationReference' - example: - id: PPGPXHO - type: webhook - summary: webhook - name: My Webhook - endpoint_url: 'https://example.com' - webhook_object: - id: PNTDJ30 - type: service_reference - config: - anykey: anyvalue - outbound_integration: - id: PJFWPEP - type: outbound_integration_reference - IncidentAction: - description: An incident action is a pending change to an incident that will automatically happen at some future time. + format: date-time + description: The date/time when this message was was sent. + readOnly: true + webhook: + $ref: '#/components/schemas/Webhook' + Incident: type: object properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - enum: - - unacknowledge - - escalate - - resolve - - urgency_change - at: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + incident_number: + type: integer + readOnly: true + description: The number of the incident. This is unique across your account. + title: + type: string + readOnly: false + description: A succinct description of the nature, symptoms, cause, or effect of the incident. + created_at: type: string format: date-time - discriminator: - propertyName: type - required: - - type - - at - Assignment: - type: object - properties: - at: + description: The time the incident was first triggered. + example: '2019-12-01T20:00:00Z' + readOnly: true + updated_at: type: string format: date-time - description: Time at which the assignment was created. - assignee: - $ref: '#/components/schemas/UserReference' - required: - - at - - assignee - Acknowledgement: - type: object - properties: - at: + example: '2019-12-01T21:02:00Z' + description: The time the incident was last modified. + status: + type: string + description: The current status of the incident. + enum: + - triggered + - acknowledged + - resolved + incident_key: + type: string + readOnly: true + description: The incident's de-duplication key. + service: + description: The service the incident is on. If the `include[]=services` query parameter is provided, the full service definition will be returned. + oneOf: + - $ref: '#/components/schemas/ServiceReference' + - $ref: '#/components/schemas/Service' + assignments: + type: array + description: List of all assignments for this incident. This list will be empty if the `Incident.status` is `resolved`. Returns a user reference for each assignment. Full user definitions will be returned if the `include[]=assignees` query parameter is provided. + items: + $ref: '#/components/schemas/Assignment' + assigned_via: + type: string + description: How the current incident assignments were decided. Note that `direct_assignment` incidents will not escalate up the attached `escalation_policy` + enum: + - escalation_policy + - direct_assignment + readOnly: true + last_status_change_at: type: string format: date-time - description: Time at which the acknowledgement was created. - acknowledger: - $ref: '#/components/schemas/AcknowledgerReference' - required: - - at - - acknowledger - AgentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - description: 'The agent (user, service or integration) that created or modified the Incident Log Entry.' + description: The time the status of the incident last changed. If the incident is not currently acknowledged or resolved, this will be the incident's `updated_at`. + example: '2019-12-01T21:01:00Z' + readOnly: true + resolved_at: + type: string + format: date-time + example: '2019-12-01T21:01:00Z' + description: The time the incident became "resolved" or `null` if the incident is not resolved. + first_trigger_log_entry: + description: The first log entry on the incident. The log entry will be of type `TriggerLogEntry` and will represent information about how the incident was triggered. If the `include[]=first_trigger_log_entries` query parameter is provided, the full log entry definition will be returned. + oneOf: + - $ref: '#/components/schemas/LogEntryReference' + - $ref: '#/components/schemas/TriggerLogEntry' + alert_counts: + $ref: '#/components/schemas/AlertCount' + is_mergeable: + type: boolean + description: Whether the incident is mergeable. Only incidents that have alerts, or that are manually created can be merged. + readOnly: true + incident_type: + description: The incident type of the incident. + type: object properties: - type: - enum: - - user_reference - - service_reference - - integration_reference + name: type: string + description: The name of the Incident Type. + escalation_policy: + description: The escalation policy attached to the service that the incident is on. If the `include[]=escalation_policies` query parameter is provided, the full escalation policy definition will be returned. + oneOf: + - $ref: '#/components/schemas/EscalationPolicyReference' + - $ref: '#/components/schemas/EscalationPolicy' + teams: + type: array + description: The teams involved in the incident’s lifecycle. If the `include[]=teams` query parameter is provided, the full team definitions will be returned. + items: + oneOf: + - $ref: '#/components/schemas/TeamReference' + - $ref: '#/components/schemas/Team' + pending_actions: + type: array readOnly: true - LogEntryReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object + description: The list of pending_actions on the incident. A pending_action object contains a type of action which can be escalate, unacknowledge, resolve or urgency_change. A pending_action object contains at, the time at which the action will take place. An urgency_change pending_action will contain to, the urgency that the incident will change to. + items: + $ref: '#/components/schemas/IncidentAction' + acknowledgements: + type: array + description: List of all acknowledgements for this incident. This list will be empty if the `Incident.status` is `resolved` or `triggered`. If the `include[]=acknowledgers` query parameter is provided, the full user or service definitions will be returned for each acknowledgement entry. + items: + $ref: '#/components/schemas/Acknowledgement' + alert_grouping: + description: Describes the alert grouping state of this incident. Will be null if the incident has no alerts. + type: object properties: - type: + grouping_type: type: string enum: - - acknowledge_log_entry_reference - - annotate_log_entry_reference - - assign_log_entry_reference - - escalate_log_entry_reference - - exhaust_escalation_path_log_entry_reference - - notify_log_entry_reference - - reach_trigger_limit_log_entry_reference - - repeat_escalation_path_log_entry_reference - - resolve_log_entry_reference - - snooze_log_entry_reference - - trigger_log_entry_reference - - unacknowledge_log_entry_reference - EscalationPolicyReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: + - basic + - advanced + - rules + started_at: type: string - enum: - - escalation_policy_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object + format: date-time + ended_at: + type: string + format: date-time + alert_grouping_active: + type: boolean + last_status_change_by: + description: The entity that last changed the status of the incident. If the `include[]=agents` query parameter is provided, the full user/service/integration definition will be returned. + oneOf: + - $ref: '#/components/schemas/AgentReference' + - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/Service' + priority: + $ref: '#/components/schemas/Priority' + resolve_reason: + $ref: '#/components/schemas/ResolveReason' + conference_bridge: + description: The conference bridge information attached to the incident. Only returned if the `include[]=conference_bridge` query parameter is provided. + type: object properties: - type: + conference_number: type: string - enum: - - team_reference - PriorityReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object + description: 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. + conference_url: + type: string + format: url + description: An URL for the conference bridge. This could be a link to a web conference or Slack channel. + incidents_responders: + description: The responders on the incident. Only returned if the account has access to the [responder requests](https://support.pagerduty.com/docs/add-responders) feature. + type: array + readOnly: true + items: + $ref: '#/components/schemas/IncidentsRespondersReference' + responder_requests: + description: Previous responder requests made on this incident. Only returned if the account has access to the [responder requests](https://support.pagerduty.com/docs/add-responders) feature. + type: array + readOnly: true + items: + $ref: '#/components/schemas/ResponderRequest' + urgency: + type: string + enum: + - high + - low + description: The current urgency of the incident. + body: + description: The additional incident body details. Only returned if the `include[]=body` query parameter is provided. + type: object properties: - type: + details: type: string - enum: - - priority_reference - ResolveReason: + description: Additional incident details. (opaque JSON object) + required: + - type + AcknowledgeLogEntry: type: object properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - description: The reason the incident was resolved. The only reason currently supported is merge. - default: merge_resolve_reason - enum: - - merge_resolve_reason + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' incident: $ref: '#/components/schemas/IncidentReference' - AlertCount: - type: object - properties: - triggered: - type: integer - description: The count of triggered alerts - resolved: - type: integer - description: The count of resolved alerts - all: + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + acknowledgement_timeout: type: integer - description: The total count of alerts - ConferenceBridge: + description: Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set. + AnnotateLogEntry: type: object properties: - conference_number: + id: type: string - description: '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.' - conference_url: + readOnly: true + summary: type: string - format: url - description: An URL for the conference bridge. This could be a link to a web conference or Slack channel. - IncidentBody: - type: object - properties: + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - enum: - - incident_body - details: - type: string - description: Additional incident details. - required: - - type - IncidentsRespondersReference: - type: object - properties: - state: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - description: The status of the responder being added to the incident - example: pending - user: - $ref: '#/components/schemas/UserReference' - incident: - $ref: '#/components/schemas/IncidentReference' - updated_at: + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: type: string - message: + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string - description: The message sent with the responder request - requester: - $ref: '#/components/schemas/UserReference' - requested_at: + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: type: string - ResponderRequest: - type: object - properties: + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' incident: $ref: '#/components/schemas/IncidentReference' - requester: - $ref: '#/components/schemas/UserReference' - requested_at: - type: string - description: The time the request was made - message: - type: string - description: The message sent with the responder request - responder_request_targets: + teams: type: array - description: The array of targets the responder request is being sent to + readOnly: true + description: Will consist of references unless included items: - $ref: '#/components/schemas/ResponderRequestTargetReference' - LogEntry: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - acknowledge_log_entry - - annotate_log_entry - - assign_log_entry - - delegate_log_entry - - escalate_log_entry - - exhaust_escalation_path_log_entry - - notify_log_entry - - reach_ack_limit_log_entry - - reach_trigger_limit_log_entry - - repeat_escalation_path_log_entry - - resolve_log_entry - - snooze_log_entry - - trigger_log_entry - - unacknowledge_log_entry - - urgency_change_log_entry - created_at: - type: string - format: date-time - readOnly: true - description: Time at which the log entry was created. - channel: - $ref: '#/components/schemas/Channel' - agent: - $ref: '#/components/schemas/AgentReference' - note: - type: string - readOnly: true - description: 'Optional field containing a note, if one was included with the log entry.' - contexts: - type: array - readOnly: true - description: Contexts to be included with the trigger such as links to graphs or images. - items: - $ref: '#/components/schemas/Context' - service: - $ref: '#/components/schemas/ServiceReference' - incident: - $ref: '#/components/schemas/IncidentReference' - teams: - type: array - readOnly: true - description: Will consist of references unless included - items: - $ref: '#/components/schemas/TeamReference' - event_details: - type: object - readOnly: true - properties: - description: - type: string - description: Additional details about the event. - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true properties: - type: + description: type: string - enum: - - user_reference - WebhooksV1Service: + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + AssignLogEntry: type: object - description: The service on which the incident occurred. properties: id: type: string readOnly: true - name: + summary: type: string - description: The name of the service. + nullable: true readOnly: true - html_url: + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: type: string - format: url readOnly: true - deleted_at: + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - format: date-time - description: 'The date/time the service was deleted, if it has been removed.' + nullable: true readOnly: true - description: + format: url + description: the API show URL at which the object is accessible + html_url: type: string - description: The description of the service. + nullable: true readOnly: true - WebhooksV1AssignedToUser: - type: object - description: The user assigned to the incident. - readOnly: true - properties: - id: + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string + format: date-time readOnly: true - name: + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: type: string - description: The user's name. readOnly: true - email: - type: string - format: email - description: The user's email address. + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array readOnly: true - html_url: - type: string - format: url + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array readOnly: true - WebhooksV1AssignedTo: - type: object - readOnly: true - properties: - at: - type: string - format: date-time - description: Time at which the assignment was created. - object: - allOf: - - $ref: '#/components/schemas/WebhooksV1AssignedToUser' - - properties: - type: - type: string - enum: - - user - WebhookObject: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - description: The webhook object (service) that the webhook belongs to. - properties: - type: - type: string - enum: - - service - - service_reference - OutboundIntegrationReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - outbound_integration_reference - AcknowledgerReference: - allOf: - - $ref: '#/components/schemas/Reference' - - description: The acknowledger represents the entity that made the acknowledgement for an incident. + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: type: object + readOnly: true properties: - type: - enum: - - user_reference - - service_reference - type: string - IncidentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: + description: type: string - enum: - - incident_reference - ResponderRequestTargetReference: + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + DelegateLogEntry: type: object properties: - type: - type: string - description: The type of target (either a user or an escalation policy) id: type: string - description: The id of the user or escalation policy + readOnly: true summary: type: string - incident_responders: - type: array - description: An array of responders associated with the specified incident - items: - $ref: '#/components/schemas/IncidentsRespondersReference' - Channel: - type: object - description: 'Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`. See [below](https://developer.pagerduty.com/documentation/rest/log_entries/show#channel_types) for detailed information about channel formats.' - properties: - type: - type: string - description: type - user: - type: object - team: - type: object - notification: - $ref: '#/components/schemas/Notification' - channel: - type: object - description: channel - required: - - type - Context: - type: object - discriminator: - propertyName: type - properties: + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - description: The type of context being attached to the incident. - enum: - - link - - image - href: - type: string - description: The link's target url - src: - type: string - description: The image's source url - text: - type: string - description: The alternate display for an image - required: - - type - Notification: - type: object - properties: - id: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string + nullable: true readOnly: true - type: + format: url + description: the API show URL at which the object is accessible + html_url: type: string - description: The type of notification. - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification + nullable: true readOnly: true - started_at: + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string format: date-time - description: The time at which the notification was sent readOnly: true - address: + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: type: string - description: The address where the notification was sent. This will be null for notification type `push_notification`. readOnly: true - user: - $ref: '#/components/schemas/UserReference' - conferenceAddress: - type: string - description: The address of the conference bridge - status: - type: string - '': - type: string - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + EscalateLogEntry: + type: object + properties: + id: type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + ExhaustEscalationPathLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + NotifyLogEntry: + type: object + properties: + id: type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + user: + $ref: '#/components/schemas/UserReference' + ReachAckLimitLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + ReachTriggerLimitLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + RepeatEscalationPathLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + ResolveLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + SnoozeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + changed_actions: + type: array + items: + $ref: '#/components/schemas/IncidentAction' + TriggerLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: type: string - schema_id: + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UnacknowledgeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UrgencyChangeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + WebhooksV1IncidentData: + type: object + description: The incident details at the time of the state change. + readOnly: true + properties: + id: + type: string + readOnly: true + incident_number: + type: integer + description: The number of the incident. This is unique across the account. + readOnly: true + created_on: + type: string + format: date-time + description: The date/time the incident was first triggered. + readOnly: true + status: + type: string + description: The current status of the incident. + enum: + - triggered + - acknowledged + - resolved + readOnly: true + html_url: + type: string + format: url + readOnly: true + incident_key: + type: string + description: The incident's de-duplication key. + readOnly: true + service: + $ref: '#/components/schemas/WebhooksV1Service' + assigned_to_user: + $ref: '#/components/schemas/WebhooksV1AssignedToUser' + assigned_to: + type: array + items: + $ref: '#/components/schemas/WebhooksV1AssignedTo' + readOnly: true + trigger_summary_data: + type: object + properties: + subject: + type: string + readOnly: true + readOnly: true + trigger_details_html_url: + type: string + format: url + readOnly: true + last_status_change_on: + type: string + format: date-time + readOnly: true + description: The time at which the status of the incident last changed. + last_status_change_by: + $ref: '#/components/schemas/WebhooksV1AssignedToUser' + number_of_escalations: + type: integer + minimum: 0 + description: Number of times the incident has been escalated. + readOnly: true + urgency: + type: string + enum: + - high + - low + readOnly: true + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Webhook: + type: object + description: Information about the configured webhook. + readOnly: true + properties: + endpoint_url: + type: string + format: url + description: The url endpoint the webhook payload is sent to. + name: + type: string + description: The name of the webhook. + webhook_object: + $ref: '#/components/schemas/WebhookObject' + config: + type: string + description: The object that contains webhook configuration values depending on the webhook type specification. (opaque JSON object) + outbound_integration: + $ref: '#/components/schemas/OutboundIntegrationReference' + example: + id: PPGPXHO + type: webhook + summary: webhook + name: My Webhook + endpoint_url: https://example.com + webhook_object: + id: PNTDJ30 + type: service_reference + config: + anykey: anyvalue + outbound_integration: + id: PJFWPEP + type: outbound_integration_reference + Service: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the service. + description: + type: string + description: The user-provided description of the service. + auto_resolve_timeout: + type: integer + description: Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 14400 + acknowledgement_timeout: + type: integer + description: Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 1800 + created_at: + type: string + format: date-time + description: The date/time when this service was created + readOnly: true + status: + type: string + description: | + The current state of the Service. Valid statuses are: + + + - `active`: The service is enabled and has no open incidents. This is the only status a service can be created with. + - `warning`: The service is enabled and has one or more acknowledged incidents. + - `critical`: The service is enabled and has one or more triggered incidents. + - `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode. + - `disabled`: The service is disabled and will not have any new triggered incidents. + enum: + - active + - warning + - critical + - maintenance + - disabled + default: active + last_incident_timestamp: + type: string + format: date-time + description: The date/time when the most recent incident was created for this service. + readOnly: true + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + response_play: + deprecated: true + description: Response plays associated with this service. + teams: + type: array + description: The set of teams associated with this service. + items: + $ref: '#/components/schemas/TeamReference' + readOnly: true + integrations: + type: array + description: An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references. + items: + $ref: '#/components/schemas/IntegrationReference' + readOnly: true + incident_urgency_rule: + $ref: '#/components/schemas/IncidentUrgencyRule' + support_hours: + $ref: '#/components/schemas/SupportHours' + scheduled_actions: + type: array + description: An array containing scheduled actions for the service. + items: + $ref: '#/components/schemas/ScheduledAction' + addons: + type: array + description: The array of Add-ons associated with this service. + items: + $ref: '#/components/schemas/AddonReference' + readOnly: true + alert_creation: + type: string + deprecated: true + description: | + Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging. + * "create_incidents" - The service will create one incident and zero alerts for each incoming event. + * "create_alerts_and_incidents" - The service will create one incident and one associated alert for each incoming event. + This attribute has been deprecated as all services will be migrated to use alerts and incidents. Afterward, the incident only service setting will no longer be available. For details, please refer to the knowledge base: https://support.pagerduty.com/docs/alerts#enable-and-disable-alerts-on-a-service. + enum: + - create_incidents + - create_alerts_and_incidents + default: create_alerts_and_incidents + alert_grouping_parameters: + description: Alert Grouping Parameters + deprecated: true + oneOf: + - $ref: '#/components/schemas/AlertGroupingParameters' + - type: object + title: Alert Grouping Settings Reference + deprecated: true + description: When a service uses alert grouping configuration that is unsupported via the services api, and can only be configured via the [Alert Grouping Settings API](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting). The reference object includes the new location details for the service's Alert Grouping Setting. When an `alert_grouping_settings_reference` is included in a create or update request it will be ignored and no changes are applied to the service. + properties: + id: + type: string + readOnly: true + description: id of the related alert grouping setting + type: + readOnly: true + type: string + description: type of reference eg. alert_grouping_setting_reference + summary: + readOnly: true + type: string + description: an explanation of this reference + self: + readOnly: true + type: string + description: link to api endpoint for this setting + html_url: + readOnly: true + type: string + description: link to the ui page to edit the setting + alert_grouping: + type: string + deprecated: true + description: | + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options: + * null - No alert grouping on the service. Each alert will create a separate incident; + * "time" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans; + * "intelligent" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + enum: + - time + - intelligent + alert_grouping_timeout: + type: integer + deprecated: true + description: | + The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`. + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + auto_pause_notifications_parameters: + $ref: '#/components/schemas/AutoPauseNotificationsParameters' + required: + - type + - escalation_policy + example: + id: PSI2I2O + summary: string + type: service + self: string + html_url: string + name: My Web App + description: My cool web application that does things. + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + Assignment: + type: object + properties: + at: + type: string + format: date-time + description: Time at which the assignment was created. + assignee: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + required: + - type + - id + - name + - email + description: (opaque JSON object) + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + required: + - at + - assignee + LogEntryReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AlertCount: + type: object + properties: + triggered: + type: integer + description: The count of triggered alerts grouped into this incident + resolved: + type: integer + description: The count of resolved alerts grouped into this incident + all: + type: integer + description: The total count of alerts grouped into this incident + EscalationPolicyReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + EscalationPolicy: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the escalation policy. + description: + type: string + description: Escalation policy description. + num_loops: + type: integer + description: The number of times the escalation policy will repeat after reaching the end of its escalation. + default: 0 + minimum: 0 + on_call_handoff_notifications: + type: string + description: Determines how on call handoff notifications will be sent for users on the escalation policy. Defaults to "if_has_services". + enum: + - if_has_services + - always + escalation_rules: + type: array + items: + $ref: '#/components/schemas/EscalationRule' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + minLength: 0 + readOnly: true + teams: + type: array + description: Team associated with the policy. Account must have the `teams` ability to use this parameter. Only one team may be associated with the policy. + items: + $ref: '#/components/schemas/TeamReference' + minLength: 0 + required: + - type + - name + - escalation_rules + example: + id: PQIL2IX + type: escalation_policy + name: Engineering Escalation Policy + escalation_rules: + - escalation_delay_in_minutes: 30 + targets: + - id: PEYSGVF type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ + escalation_rule_assignment_strategy: + - type: round_robin + services: + - id: PIJ90N7 type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - extensions: - id: pagerduty.extensions.extensions - name: extensions - title: Extensions - methods: - list_extensions: - operation: - $ref: '#/paths/~1extensions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.extensions - _list_extensions: - operation: - $ref: '#/paths/~1extensions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_extension: - operation: - $ref: '#/paths/~1extensions/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_extension: - operation: - $ref: '#/paths/~1extensions~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.extension - _get_extension: - operation: - $ref: '#/paths/~1extensions~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_extension: - operation: - $ref: '#/paths/~1extensions~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_extension: - operation: - $ref: '#/paths/~1extensions~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - enable_extension: - operation: - $ref: '#/paths/~1extensions~1{id}~1enable/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/extensions/methods/get_extension' - - $ref: '#/components/x-stackQL-resources/extensions/methods/list_extensions' - insert: - - $ref: '#/components/x-stackQL-resources/extensions/methods/create_extension' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/extensions/methods/delete_extension' -paths: - /extensions: - get: - tags: - - Extensions - x-pd-requires-scope: extensions.read - operationId: listExtensions - description: | - List existing extensions. + num_loops: 2 + on_call_handoff_notifications: if_has_services + teams: + - id: PQ9K7I8 + type: team_reference + description: Here is the ep for the engineering team. + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Team: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the team. + maxLength: 100 + description: + type: string + description: The description of the team. + maxLength: 1024 + default_role: + type: string + description: The team is private if the value is "none", or public if it is "manager" (the default permissions for a non-member of the team are either "none", or their base role up until "manager"). + default: manager + enum: + - manager + - none + required: + - name + - type + example: + type: team + name: Engineering + description: The engineering team + IncidentAction: + description: An incident action is a pending change to an incident that will automatically happen at some future time. + type: object + properties: + type: + type: string + enum: + - unacknowledge + - escalate + - resolve + - urgency_change + at: + type: string + format: date-time + to: + description: The urgency that the incident will change to. This field is only present when the type is `urgency_change`. + type: string + enum: + - high + discriminator: + propertyName: type + required: + - type + - at + Acknowledgement: + type: object + properties: + at: + type: string + format: date-time + description: Time at which the acknowledgement was created. + acknowledger: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. - Extensions are representations of Extension Schema objects that are attached to Services. + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extensions) + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + auto_resolve_timeout: + type: integer + description: Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 14400 + acknowledgement_timeout: + type: integer + description: Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 1800 + created_at: + type: string + format: date-time + description: The date/time when this service was created + readOnly: true + status: + type: string + description: | + The current state of the Service. Valid statuses are: - Scoped OAuth requires: `extensions.read` - summary: List extensions - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/extension_object_id' - - $ref: '#/components/parameters/extension_schema_id' - - $ref: '#/components/parameters/include_extensions' - responses: - '200': - description: A paginated array of extensions. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - extensions: - type: array - items: - $ref: '#/components/schemas/Extension' - required: - - extensions - examples: - response: - summary: Response Example - value: - extensions: - - id: PPGPXHO - self: 'https://api.pagerduty.com/extensions/PPGPXHO' - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - summary: My Webhook - type: extension - extension_schema: - id: PJFWPEP - type: extension_schema_reference - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - extension_objects: - - id: PIJ90N7 - type: service_reference - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - post: - tags: - - Extensions - x-pd-requires-scope: extensions.write - operationId: createExtension + + - `active`: The service is enabled and has no open incidents. This is the only status a service can be created with. + - `warning`: The service is enabled and has one or more acknowledged incidents. + - `critical`: The service is enabled and has one or more triggered incidents. + - `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode. + - `disabled`: The service is disabled and will not have any new triggered incidents. + enum: + - active + - warning + - critical + - maintenance + - disabled + default: active + last_incident_timestamp: + type: string + format: date-time + description: The date/time when the most recent incident was created for this service. + readOnly: true + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + response_play: + deprecated: true + description: Response plays associated with this service. + integrations: + type: array + description: An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references. + items: + $ref: '#/components/schemas/IntegrationReference' + readOnly: true + incident_urgency_rule: + $ref: '#/components/schemas/IncidentUrgencyRule' + support_hours: + $ref: '#/components/schemas/SupportHours' + scheduled_actions: + type: array + description: An array containing scheduled actions for the service. + items: + $ref: '#/components/schemas/ScheduledAction' + addons: + type: array + description: The array of Add-ons associated with this service. + items: + $ref: '#/components/schemas/AddonReference' + readOnly: true + alert_creation: + type: string + deprecated: true + description: | + Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging. + * "create_incidents" - The service will create one incident and zero alerts for each incoming event. + * "create_alerts_and_incidents" - The service will create one incident and one associated alert for each incoming event. + This attribute has been deprecated as all services will be migrated to use alerts and incidents. Afterward, the incident only service setting will no longer be available. For details, please refer to the knowledge base: https://support.pagerduty.com/docs/alerts#enable-and-disable-alerts-on-a-service. + enum: + - create_incidents + - create_alerts_and_incidents + default: create_alerts_and_incidents + alert_grouping_parameters: + description: Alert Grouping Parameters + deprecated: true + oneOf: + - $ref: '#/components/schemas/AlertGroupingParameters' + - type: object + title: Alert Grouping Settings Reference + deprecated: true + description: When a service uses alert grouping configuration that is unsupported via the services api, and can only be configured via the [Alert Grouping Settings API](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting). The reference object includes the new location details for the service's Alert Grouping Setting. When an `alert_grouping_settings_reference` is included in a create or update request it will be ignored and no changes are applied to the service. + properties: + id: + type: string + readOnly: true + description: id of the related alert grouping setting + type: + readOnly: true + type: string + description: type of reference eg. alert_grouping_setting_reference + summary: + readOnly: true + type: string + description: an explanation of this reference + self: + readOnly: true + type: string + description: link to api endpoint for this setting + html_url: + readOnly: true + type: string + description: link to the ui page to edit the setting + alert_grouping: + type: string + deprecated: true + description: | + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options: + * null - No alert grouping on the service. Each alert will create a separate incident; + * "time" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans; + * "intelligent" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + enum: + - time + - intelligent + alert_grouping_timeout: + type: integer + deprecated: true + description: | + The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`. + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + auto_pause_notifications_parameters: + $ref: '#/components/schemas/AutoPauseNotificationsParameters' + required: + - type + - id + - name + - email + - escalation_policy + description: (opaque JSON object) + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + id: PSI2I2O + summary: string + self: string + html_url: string + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + required: + - at + - acknowledger + AgentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + readOnly: true + User: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + required: + - name + - email + - type + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + Priority: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The user-provided short name of the priority. + description: + type: string + description: The user-provided description of the priority. + ResolveReason: + type: object + properties: + type: + type: string + description: The reason the incident was resolved. The only reason currently supported is merge. + default: merge_resolve_reason + enum: + - merge_resolve_reason + incident: + $ref: '#/components/schemas/IncidentReference' + ConferenceBridge: + type: object + properties: + conference_number: + type: string + description: 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. + conference_url: + type: string + format: url + description: An URL for the conference bridge. This could be a link to a web conference or Slack channel. + IncidentsRespondersReference: + type: object + properties: + state: + type: string + description: The status of the responder being added to the incident + enum: + - pending + - joined + - declined + - user_cancelled + example: pending + user: + $ref: '#/components/schemas/UserReference' + incident: + $ref: '#/components/schemas/IncidentReference' + updated_at: + type: string + message: + type: string + description: The message sent with the responder request + requester: + $ref: '#/components/schemas/UserReference' + requested_at: + type: string + escalation_policy_requests: + type: array + description: Names of escalation policies that this responder was requested through, if applicable + items: + type: string + ResponderRequest: + type: object + properties: + id: + type: string + description: The ID of the responder request + incident: + $ref: '#/components/schemas/IncidentReference' + requester: + $ref: '#/components/schemas/UserReference' + requested_at: + type: string + description: The time the request was made + message: + type: string + description: The message sent with the responder request + responder_request_targets: + type: array + description: The array of targets the responder request is being sent to + items: + $ref: '#/components/schemas/ResponderRequestTargetReference' + IncidentBody: + type: object + properties: + details: + type: string + description: Additional incident details. (opaque JSON object) + required: + - type + LogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + WebhooksV1Service: + type: object + description: The service on which the incident occurred. + properties: + id: + type: string + readOnly: true + name: + type: string + description: The name of the service. + readOnly: true + html_url: + type: string + format: url + readOnly: true + deleted_at: + type: string + format: date-time + description: The date/time the service was deleted, if it has been removed. + readOnly: true + description: + type: string + description: The description of the service. + readOnly: true + WebhooksV1AssignedToUser: + type: object + description: The user assigned to the incident. + readOnly: true + properties: + id: + type: string + readOnly: true + name: + type: string + description: The user's name. + readOnly: true + email: + type: string + format: email + description: The user's email address. + readOnly: true + html_url: + type: string + format: url + readOnly: true + WebhooksV1AssignedTo: + type: object + readOnly: true + properties: + at: + type: string + format: date-time + description: Time at which the assignment was created. + object: + type: object + description: The user assigned to the incident. + readOnly: true + properties: + id: + type: string + readOnly: true + name: + type: string + description: The user's name. + readOnly: true + email: + type: string + format: email + description: The user's email address. + readOnly: true + html_url: + type: string + format: url + readOnly: true + type: + type: string + enum: + - user + WebhookObject: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + OutboundIntegrationReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IntegrationReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentUrgencyRule: + type: object + properties: + type: + type: string + description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' + default: constant + enum: + - constant + - use_support_hours + urgency: + type: string + description: The incidents' urgency, if type is constant. + default: high + enum: + - low + - high + - severity_based + during_support_hours: + $ref: '#/components/schemas/IncidentUrgencyType' + outside_support_hours: + $ref: '#/components/schemas/IncidentUrgencyType' + SupportHours: + type: object + properties: + type: + type: string + description: The type of support hours + default: fixed_time_per_day + enum: + - fixed_time_per_day + time_zone: + type: string + format: activesupport-time-zone + description: The time zone for the support hours + days_of_week: + type: array + readOnly: true + items: + type: integer + readOnly: true + description: The days of the week (1 through 7, for Monday through Sunday) + start_time: + type: string + format: time + description: The support hours' starting time of day (date portion is ignored) + end_time: + type: string + format: time + description: The support hours' ending time of day (date portion is ignored) + ScheduledAction: + type: object + properties: + type: + type: string + description: The type of schedule action. Must be set to urgency_change. + enum: + - urgency_change + at: + type: object + description: Represents when scheduled action will occur. + properties: + type: + type: string + description: Must be set to named_time. + enum: + - named_time + name: + type: string + description: Designates either the start or the end of support hours. + enum: + - support_hours_start + - support_hours_end + required: + - type + - name + to_urgency: + type: string + description: Urgency level. Must be set to high. + enum: + - high + required: + - type + - at + - to_urgency + AddonReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + src: + type: string + format: url + description: The URL source of the Addon + name: + type: string + description: The user entered name of the Addon. + required: + - type + - id + description: (opaque JSON object) + AlertGroupingParameters: + type: object + title: Alert Grouping Parameters + deprecated: true description: | - Create a new Extension. - - Extensions are representations of Extension Schema objects that are attached to Services. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extensions) - - Scoped OAuth requires: `extensions.write` - summary: Create an extension - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - requestBody: - content: - application/json: - schema: - type: object - properties: - extension: - $ref: '#/components/schemas/Extension' - required: - - extension - examples: - request: - summary: Request Example - value: - extension: - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - extension_schema: - id: PJFWPEP - type: extension_schema_reference - extension_objects: - - id: PIJ90N7 - type: service_reference - requestCustomHeaders: - summary: Request Example with Custom Headers - value: - extension: - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - extension_schema: - id: PJFWPEP - type: extension_schema_reference - extension_objects: - - id: PIJ90N7 - type: service_reference - config: - headers: - - name: Authorization - value: Token token=super_secret_token_value - description: The extension to be created - responses: - '201': - description: The extension that was created - content: - application/json: - schema: + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. To turn grouping off set the type to null. + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + properties: + type: + type: string + nullable: true + enum: + - time + - intelligent + - content_based + - null + config: + type: object + title: Intelligent Alert Grouping + description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. + properties: + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + timeout: + type: integer + minimum: 1 + maximum: 1440 + description: The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + AutoPauseNotificationsParameters: + title: AutoPauseNotificationsParameters + type: object + description: Defines how alerts on this service are automatically suspended for a period of time before triggering, when identified as likely being transient. Note that automatically pausing notifications is only available on certain plans. + properties: + enabled: + type: boolean + default: false + description: Indicates whether alerts should be automatically suspended when identified as transient + timeout: + type: integer + enum: + - 0 + - 120 + - 180 + - 300 + - 600 + - 900 + description: Indicates in seconds how long alerts should be suspended before triggering. To automatically select the recommended timeout for a service, set this value to `0`. + recommended_timeout: + type: integer + enum: + - 120 + - 180 + - 300 + - 600 + - 900 + description: The recommended timeout setting for this service based on prior alert patterns. + example: + enabled: true + timeout: 300 + EscalationRule: + type: object + properties: + id: + type: string + readOnly: true + escalation_delay_in_minutes: + type: integer + description: The number of minutes before an unacknowledged incident escalates away from this rule. + targets: + type: array + minItems: 1 + maxItems: 10 + description: The targets an incident should be assigned to upon reaching this rule. + items: + $ref: '#/components/schemas/EscalationTargetReference' + escalation_rule_assignment_strategy: + type: string + description: The strategy used to assign the escalation rule to an incident. + enum: + - round_robin + - assign_to_everyone + required: + - escalation_delay_in_minutes + - targets + example: + escalation_delay_in_minutes: 30 + targets: + - id: PAM4FGS + type: user_reference + - id: PI7DH85 + type: schedule_reference + AcknowledgerReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ContactMethodReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + NotificationRuleReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ResponderRequestTargetReference: + type: object + properties: + type: + type: string + description: The type of target (either a user or an escalation policy) + id: + type: string + description: The id of the user or escalation policy + summary: + type: string + incident_responders: + type: array + description: An array of responders associated with the specified incident + items: + $ref: '#/components/schemas/IncidentsRespondersReference' + Channel: + type: object + description: Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`. + properties: + type: + type: string + description: type + user: + type: string + description: (opaque JSON object) + team: + type: string + description: (opaque JSON object) + notification: + $ref: '#/components/schemas/Notification' + channel: + type: string + description: channel (opaque JSON object) + changeset: + type: object + description: Changeset present in CustomFieldsValueChange and FieldValueChange log entries. + properties: + customer_fields: + type: array + description: Customer Fields present in CustomFieldsValueChange and FieldValueChange log entries. + items: type: object properties: - extension: - $ref: '#/components/schemas/Extension' - required: - - extension - examples: - response: - summary: Response Example + id: + type: string + example: PDB5RLI + name: + type: string + example: serial_number_hardware value: - extension: - id: PPGPXHO - self: 'https://api.pagerduty.com/extensions/PPGPXHO' - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - summary: My Webhook - type: extension - extension_schema: - id: PJFWPEP - type: extension_schema_reference - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - extension_objects: - - id: PIJ90N7 - type: service_reference - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - callbacks: - webhookV2: - endpoint_url: - post: - parameters: [] - tags: - - Webhooks V2 - operationId: webhookV2 - description: Receive webhook indicating incident state has changed. - summary: Receive webhook - security: [] - responses: - '200': - description: Your server implementation should return this if it successfuly received the webhook. - requestBody: - description: Webhook. - content: - application/json: - schema: - type: object - properties: - messages: - type: array - description: An array of webhook messages. - items: - $ref: '#/components/schemas/WebhookIncidentAction' - webhookV1: - endpoint_url: - post: - parameters: [] - tags: - - Webhooks V1 - operationId: webhookV1 - description: Receive webhook indicating incident state has changed. - summary: Receive webhook - security: [] - responses: - '200': - description: Your server implementation should return this if it successfuly received the webhook. - requestBody: - description: Webhook. - content: - application/json: - schema: - $ref: '#/components/schemas/WebhooksV1Message' - '/extensions/{id}': - get: - tags: - - Extensions - x-pd-requires-scope: extensions.read - operationId: getExtension + oneOf: + - type: integer + - type: array + items: + type: string + namespace: + type: string + example: incidents + old_value: + type: string + nullable: true + example: null + application_fields: + type: array + description: Application Fields present in CustomFieldsValueChange and FieldValueChange log entries. + items: + type: object + properties: + id: + type: string + example: PIJ90N7 + name: + type: string + example: service + value: + oneOf: + - type: string + example: PIZW265 + - type: integer + example: 130 + - type: array + items: + type: string + namespace: + type: string + example: incidents + old_value: + type: string + nullable: true + example: null + custom_attributes: + type: object + description: Custom attributes for the changeset. + additionalProperties: + type: string + customer_schema: + type: object + properties: + old_value: + type: string + nullable: true + example: null + summary: + type: string + description: Same as `host` + host: + type: string + description: Nagios host + service: + type: string + description: Nagios service that created the event, if applicable + state: + type: string + description: State that caused the event + details: + type: string + description: Additional details of the incident (opaque JSON object) + service_key: + type: string + description: API service key + description: + type: string + description: Description of the event + incident_key: + type: string + description: Incident deduping string + to: + type: string + description: To address of the email + from: + type: string + description: From address of the email + subject: + type: string + description: Subject of the email + body: + type: string + description: Body of the email + body_content_type: + type: string + description: Content type of the email body. Will be `text/plain` or `text/html` + raw_url: + type: string + description: URL for raw text of email + html_url: + type: string + description: URL for html rendered version of the email. Only present if `content_type` is `text/html` + duration: + type: integer + description: For `snooze` log entries, this is the number of seconds that the incident was snoozed for. + required: + - type + title: NagiosChannel + Context: + type: object + discriminator: + propertyName: type + properties: + type: + type: string + description: The type of context being attached to the incident. + enum: + - link + - image + href: + type: string + description: The link's target url + src: + type: string + description: The image's source url + text: + type: string + description: The alternate display for an image + required: + - type + IncidentUrgencyType: + type: object + properties: + type: + type: string + description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' + default: constant + enum: + - constant + - use_support_hours + urgency: + type: string + description: The incidents' urgency, if type is constant. + default: high + enum: + - low + - high + - severity_based + FlexibleTimeWindowIntelligentAlertGroupingConfig: + type: object + title: Intelligent Alert Grouping + description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. + properties: + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + TimeBasedAlertGroupingConfiguration: + type: object + title: Time Grouping + description: The configuration for Time Based Alert Grouping + properties: + timeout: + type: integer + minimum: 1 + maximum: 1440 + description: The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + ContentBasedAlertGroupingConfiguration: + type: object + title: Content Only Grouping + description: The configuration for Content Based Alert Grouping + properties: + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + time_window: + type: integer + minimum: 300 + maximum: 86400 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 <= time_window <= 3600 or 86400(i.e. 24 hours). + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + EscalationTargetReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Notification: + type: object + properties: + id: + type: string + readOnly: true + type: + type: string + description: The type of notification. + enum: + - sms_notification + - email_notification + - phone_notification + - push_notification + readOnly: true + started_at: + type: string + format: date-time + description: The time at which the notification was sent + readOnly: true + address: + type: string + description: The address where the notification was sent. This will be null for notification type `push_notification`. + readOnly: true + user: + $ref: '#/components/schemas/UserReference' + conferenceAddress: + type: string + description: The address of the conference bridge + status: + type: string + '': + type: string + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Get details about an existing extension. - - Extensions are representations of Extension Schema objects that are attached to Services. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extensions) - - Scoped OAuth requires: `extensions.read` - summary: Get an extension - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_extensions_id' - responses: - '200': - description: The extension that was requested. - content: - application/json: - schema: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - extension: - $ref: '#/components/schemas/Extension' - required: - - extension - examples: - response: - summary: Response Example - value: - extension: - id: PPGPXHO - self: 'https://api.pagerduty.com/extensions/PPGPXHO' - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - summary: My Webhook - type: extension - extension_schema: - id: PJFWPEP - type: extension_schema_reference - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - extension_objects: - - id: PIJ90N7 - type: service_reference - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - temporarily_disabled: false - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - delete: - tags: - - Extensions - x-pd-requires-scope: extensions.write - operationId: deleteExtension + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Delete an existing extension. - - Once the extension is deleted, it will not be accessible from the web UI and new incidents won't be able to be created for this extension. - - Extensions are representations of Extension Schema objects that are attached to Services. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extensions) - - Scoped OAuth requires: `extensions.write` - summary: Delete an extension - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The extension was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - tags: - - Extensions - x-pd-requires-scope: extensions.write - operationId: updateExtension + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Update an existing extension. - - Extensions are representations of Extension Schema objects that are attached to Services. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extensions) - - Scoped OAuth requires: `extensions.write` - summary: Update an extension - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - extension: - $ref: '#/components/schemas/Extension' - required: - - extension - examples: - request: - summary: Request Example - value: - extension: - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - extension_schema: - id: PJFWPEP - type: extension_schema_reference - extension_objects: - - id: PIJ90N7 - type: service_reference - requestCustomHeaders: - summary: Request Example with Custom Headers - value: - extension: - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - extension_schema: - id: PJFWPEP - type: extension_schema_reference - extension_objects: - - id: PIJ90N7 - type: service_reference - config: - headers: - - name: Authorization - value: Token token=super_secret_token_value - description: The extension to be updated. - responses: - '200': - description: The extension that was updated. - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - extension: - $ref: '#/components/schemas/Extension' - required: - - extension - examples: - response: - summary: Response Example - value: - extension: - id: PPGPXHO - self: 'https://api.pagerduty.com/extensions/PPGPXHO' - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - summary: My Webhook - type: extension - extension_schema: - id: PJFWPEP - type: extension_schema_reference - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - extension_objects: - - id: PIJ90N7 - type: service_reference - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '/extensions/{id}/enable': - post: - tags: - - Extensions - x-pd-requires-scope: extensions.write - operationId: enableExtension - description: | - Enable an extension that is temporarily disabled. (This API does not require a request body.) - - Extensions are representations of Extension Schema objects that are attached to Services. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#extensions) - - Scoped OAuth requires: `extensions.write` - summary: Enable an extension - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The extension that was successfully enabled. - content: - application/json: - schema: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - extension: - $ref: '#/components/schemas/Extension' - required: - - extension - examples: - response: - summary: Response Example - value: - extension: - id: PPGPXHO - self: 'https://api.pagerduty.com/extensions/PPGPXHO' - endpoint_url: 'https://example.com/receive_a_pagerduty_webhook' - name: My Webhook - summary: My Webhook - type: extension - extension_schema: - id: PJFWPEP - type: extension_schema_reference - summary: Generic Webhook - self: 'https://api.pagerduty.com/extension_schemas/PJFWPEP' - extension_objects: - - id: PIJ90N7 - type: service_reference - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + extension_object_id: + name: extension_object_id + description: The id of the extension object you want to filter by. + in: query + schema: + type: string + extension_schema_id: + name: extension_schema_id + in: query + description: Filter the extensions by extension vendor id. + schema: + type: string + include_extensions: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - extension_objects + - extension_schemas + uniqueItems: true + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + include_extensions_id: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - extension_schemas + - extension_objects + - temporarily_disabled + uniqueItems: true + x-stackQL-resources: + extensions: + id: pagerduty.extensions.extensions + name: extensions + title: Extensions + methods: + list: + operation: + $ref: '#/paths/~1extensions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.extensions + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1extensions/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1extensions~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.extension + delete: + operation: + $ref: '#/paths/~1extensions~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1extensions~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + enable: + operation: + $ref: '#/paths/~1extensions~1{id}~1enable/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/extensions/methods/get' + - $ref: '#/components/x-stackQL-resources/extensions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/extensions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/extensions/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/extensions/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/incident_types.yaml b/providers/src/pagerduty/v00.00.00000/services/incident_types.yaml new file mode 100644 index 00000000..6dde6043 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/incident_types.yaml @@ -0,0 +1,1994 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Incident Types + description: Incident types and their custom fields. + version: 2.0.0 +paths: + /incidents/types: + get: + x-pd-requires-scope: incident_types.read + tags: + - Incident Types + operationId: listIncidentTypes + description: | + List the available incident types + + Incident Types are a feature which will allow customers to categorize incidents, such as a security incident, a major incident, or a fraud incident. + These can be filtered by enabled or disabled types. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidentType) + + Scoped OAuth requires: `incident_types.read` + summary: List incident types + parameters: + - $ref: '#/components/parameters/incident_type_list_filter' + responses: + '200': + description: An array of all types for the account. The default incident type will automatically return on this list. + content: + application/json: + schema: + type: object + properties: + incident_types: + type: array + items: + $ref: '#/components/schemas/IncidentType' + required: + - incident_types + examples: + response: + summary: Response Example + value: + incident_types: + - type: incident_type + name: incident_default + id: P123456 + created_at: '2023-05-31T13:40:47.000Z' + updated_at: '2023-07-31T13:40:47.000Z' + description: null + display_name: Base Incident + enabled: true + parent: null + - type: incident_type + name: security + id: P567890 + created_at: '2023-05-31T13:41:47.000Z' + updated_at: '2023-07-31T13:40:47.000Z' + description: Security related incidents + display_name: Security + enabled: true + parent: + id: P123456 + type: incident_type_reference + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + x-pd-requires-scope: incident_types.write + tags: + - Incident Types + operationId: createIncidentType + description: | + Create a new incident type. + + Incident Types are a feature which will allow customers to categorize incidents, such as a security incident, a major incident, or a fraud incident. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidentType) + + Scoped OAuth requires: `incident_types.write` + summary: Create an Incident Type + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + incident_type: + type: object + description: Details of the incident type to be created. + properties: + name: + type: string + description: The name of the Incident Type. Usage of the suffix `_default` is prohibited. This cannot be changed once the incident type has been created. + maxLength: 50 + display_name: + type: string + description: The display name of the Incident Type. Usage of the prefix `PD`, `PagerDuty`, `Default` is prohibited. + maxLength: 50 + parent_type: + type: string + description: The parent type of the Incident Type. Either name or id of the parent type can be used. + enabled: + type: boolean + description: Whether the Incident Type is enabled. Defaults to true if not provided. + description: + type: string + description: The description of the Incident Type. + maxLength: 1000 + required: + - name + - display_name + - parent_type + required: + - incident_type + examples: + request: + summary: Request Example + value: + incident_type: + name: fraud_incident + display_name: Fraud Incident + parent_type: incident_default + responses: + '201': + description: The incident type object created. + content: + application/json: + schema: + type: object + properties: + incident_type: + $ref: '#/components/schemas/IncidentType' + required: + - incident_type + examples: + response: + summary: Response Example + value: + incident_type: + enabled: true + id: P234567 + name: fraud_incident + parent: + id: P123456 + type: incident_type_reference + type: incident_type + description: null + created_at: '2023-05-31T13:41:47Z' + updated_at: '2023-07-31T13:41:47Z' + display_name: Fraud Incident + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and create incident types. + /incidents/types/{type_id_or_name}: + get: + x-pd-requires-scope: incident_types.read + tags: + - Incident Types + operationId: getIncidentType + description: | + Get detailed information about a single incident type. Accepts either an incident type id, or an incident type name. + + Incident Types are a feature which will allow customers to categorize incidents, such as a security incident, a major incident, or a fraud incident. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incident) + + Scoped OAuth requires: `incident_types.read` + summary: Get an Incident Type + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + responses: + '200': + description: The incident type requested. + content: + application/json: + schema: + type: object + properties: + incident_type: + $ref: '#/components/schemas/IncidentType' + required: + - incident_type + examples: + response: + summary: Response Example + value: + incident_type: + enabled: true + id: P567890 + parent: + id: P123456 + type: incident_type_reference + name: major_incident + type: incident_type + description: Major incidents + created_at: '2023-05-31T13:41:47Z' + updated_at: '2023-07-31T13:41:47Z' + display_name: Major Incident + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + x-pd-requires-scope: incident_types.write + tags: + - Incident Types + operationId: updateIncidentType + description: | + Update an Incident Type. + + Incident Types are a feature which will allow customers to categorize incidents, such as a security incident, a major incident, or a fraud incident. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incident) + + Scoped OAuth requires: `incident_types.write` + summary: Update an Incident Type + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + requestBody: + content: + application/json: + schema: + type: object + properties: + incident_type: + type: object + description: Details of the incident type to be created. + properties: + display_name: + type: string + description: The display name of the Incident Type. + maxLength: 50 + enabled: + type: boolean + description: Whether the Incident Type is enabled. Defaults to true if not provided. + description: + type: string + description: The description of the Incident Type. + maxLength: 1000 + required: + - incident_type + examples: + request: + summary: Request Example + value: + incident_type: + display_name: Major Incident + responses: + '200': + description: The incident type object updated. + content: + application/json: + schema: + type: object + properties: + incident_type: + $ref: '#/components/schemas/IncidentType' + required: + - incident_type + examples: + response: + summary: Response Example + value: + incident_type: + name: major_incident + id: P567890 + created_at: '2023-05-31T13:41:47Z' + updated_at: '2023-07-31T13:41:47Z' + description: Major incidents + display_name: Major Incident + enabled: true + parent: + id: P123456 + type: incident_type_reference + type: incident_type + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and update incident types. + /incidents/types/{type_id_or_name}/custom_fields: + get: + x-pd-requires-scope: custom_fields.read + tags: + - Incident Types + operationId: listIncidentTypeCustomFields + description: | + List the custom fields for an incident type. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.read` + summary: List Incident Type Custom Fields + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/include_customfields_field' + responses: + '200': + description: The custom fields for the incident type requested. Passing in include[]=field_options will return the field options for the custom field. + content: + application/json: + schema: + type: object + properties: + fields: + type: array + items: + $ref: '#/components/schemas/IncidentTypeCustomFieldWithOptions' + required: + - fields + examples: + simple_example: + summary: Response Example - No query parameters + value: + fields: + - enabled: true + id: P567890 + name: incident_commander + type: field + self: https://api.pagerduty.com/incidents/types/P123456/custom_fields/P567890 + description: field description + field_type: single_value_fixed + data_type: string + created_at: '2023-05-31T13:41:47Z' + updated_at: '2023-07-31T13:41:47Z' + display_name: Incident Commander + default_value: John Doe + incident_type: Security Incident + summary: incident_commander + - enabled: true + id: P456789 + name: due_date + type: field + self: https://api.pagerduty.com/incidents/types/P123456/custom_fields/P456789 + description: field description + field_type: single_value + data_type: string + created_at: '2024-05-31T13:41:47Z' + updated_at: '2024-07-31T13:41:47Z' + display_name: Due Date + default_value: '2025-07-31T13:41:47Z' + incident_type: Security Incident 2 + summary: due_date + example_with_field_options: + summary: Response Example - Include field options + value: + fields: + - enabled: true + id: P567890 + name: incident_commander + type: field + self: https://api.pagerduty.com/incidents/types/P123456/custom_fields/P567890 + description: field description + field_type: single_value_fixed + data_type: string + created_at: '2023-05-31T13:41:47Z' + updated_at: '2023-07-31T13:41:47Z' + display_name: Incident Commander + default_value: John Doe + incident_type: Security Incident + summary: incident_commander + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: John Doe + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: Jane Smith + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - enabled: true + id: P456789 + name: due_date + type: field + self: https://api.pagerduty.com/incidents/types/P123456/custom_fields/P456789 + description: field description + field_type: single_value + data_type: string + created_at: '2024-05-31T13:41:47Z' + updated_at: '2024-07-31T13:41:47Z' + display_name: Due Date + default_value: '2025-07-31T13:41:47Z' + incident_type: Security Incident 2 + summary: due_date + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + x-pd-requires-scope: custom_fields.write + tags: + - Incident Types + operationId: createIncidentTypeCustomField + description: | + Create a Custom Field for an Incident Type + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.write` + summary: Create a Custom Field for an Incident Type + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + requestBody: + content: + application/json: + schema: + type: object + properties: + field: + type: object + description: Details of the custom field to be created. + properties: + name: + type: string + description: The name of the custom field. + maxLength: 50 + display_name: + type: string + description: The display name of the Incident Type. + maxLength: 50 + data_type: + type: string + description: The data type of the custom field. + field_type: + type: string + description: The field type of the custom field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + description: + type: string + description: The description of the custom field. + maxLength: 1000 + enabled: + type: boolean + description: Whether the custom field is enabled. + default_value: + type: string + description: The default value of the custom field. + field_options: + type: array + items: + $ref: '#/components/schemas/CustomFieldsFieldOption' + description: The options for the custom field. Can only be applied to fields with a `field_type` of `single_value_fixed` or `multi_value_fixed`. When creating a fixed-value custom field, this property is required, as the field must be created with at least one field option. + required: + - name + - display_name + - data_type + - field_type + required: + - field + examples: + simple_example: + summary: Request Example + value: + field: + name: custom_field_1 + display_name: Custom Field 1 + data_type: string + field_type: single_value + example_with_fixed_value_field: + summary: Example with Fixed Value Field + value: + field: + name: development_environment + display_name: Development Environment + description: The environment that the issue occurred in + data_type: string + field_type: single_value_fixed + field_options: + - data: + data_type: string + value: staging + - data: + data_type: string + value: production + responses: + '201': + description: The custom field object created. + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/IncidentTypeCustomFields' + required: + - field + examples: + simple_example: + summary: Response Example + value: + field: + enabled: true + id: P123456 + name: custom_field_1 + type: field + self: https://api.pagerduty.com/incidents/types/P567890/custom_fields/P123456 + description: null + field_type: single_value + data_type: string + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + display_name: Custom Field 1 + default_value: null + incident_type: P567890 + summary: custom_field_1 + fixed_value_example: + summary: Example for Fixed-Value Field + value: + field: + enabled: true + id: P4567 + name: development_environment + type: field + self: https://api.pagerduty.com/incidents/types/P567890/custom_fields/P4567 + description: The environment that the issue occurred in + field_type: single_value_fixed + data_type: string + updated_at: '2021-06-01T21:30:43Z' + created_at: '2021-06-01T21:30:43Z' + display_name: Development Environment + default_value: null + incident_type: P567890 + summary: development_environment + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: staging + created_at: '2021-06-01T21:30:43Z' + updated_at: '2021-06-01T21:30:43Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and update the custom fields for an incident type. + /incidents/types/{type_id_or_name}/custom_fields/{field_id}: + get: + x-pd-requires-scope: custom_fields.read + tags: + - Incident Types + operationId: getIncidentTypeCustomField + description: | + Get a custom field for an incident type. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.read` + summary: Get an Incident Type Custom Field + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_id' + - $ref: '#/components/parameters/include_customfields_field' + responses: + '200': + description: The incident type custom field requested. + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/IncidentTypeCustomFieldWithOptions' + required: + - field + examples: + simple_example: + summary: Response Example - No query parameter + value: + field: + enabled: true + id: P123456 + name: environment + type: field + self: https://api.pagerduty.com/incidents/types/P567890/custom_fields/P123456 + description: The environment that the issue occurred in + field_type: single_value_fixed + data_type: string + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + display_name: Environment + default_value: null + incident_type: P567890 + summary: environment + example_with_field_options: + summary: Response Example - Include field options + value: + field: + enabled: true + id: P123456 + name: environment + type: field + self: https://api.pagerduty.com/incidents/types/P567890/custom_fields/P123456 + description: The environment that the issue occurred in + field_type: single_value_fixed + data_type: string + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + display_name: Environment + default_value: null + incident_type: P567890 + summary: environment + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: staging + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + x-pd-requires-scope: custom_fields.write + tags: + - Incident Types + operationId: updateIncidentTypeCustomField + description: | + Update a custom field for an incident type. Field Options can also be updated within the same call. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.write` + summary: Update a Custom Field for an Incident Type + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + field: + type: object + description: Details of the custom field to be updated. + properties: + display_name: + type: string + description: The display name of the Incident Type. + maxLength: 50 + enabled: + type: boolean + description: Whether the Incident Type is enabled. + default_value: + type: string + description: The default value of the custom field. + description: + type: string + description: The description of the custom field. + maxLength: 1000 + field_options: + type: array + items: + $ref: '#/components/schemas/CustomFieldsFieldOption' + description: List of options to upsert on the custom field. Can only be applied to fields with a `field_type` of `single_value_fixed` or `multi_value_fixed`. When an `id` property is included, this will update the value of the specified field option. Without an `id` property, that field option will be added to the field. Any existing field options not included in the upsert list will be deleted (unless the current default value refers to a field option to be deleted). + required: + - field + examples: + basic_example: + summary: Request Example + value: + field: + display_name: Custom Field 1 + example_with_field_options_upsert: + summary: Example Updating a Field Option Together With Field Metadata + value: + field: + display_name: Single Select Field Updated + field_options: + - data: + data_type: string + value: Updated value for an existing field option + id: PQ9K7I8 + - data: + data_type: string + value: Upserting a brand new field option, by not providing an id property + responses: + '200': + description: The updated custom field object. + content: + application/json: + schema: + type: object + properties: + field: + $ref: '#/components/schemas/IncidentTypeCustomFieldWithOptions' + required: + - field + examples: + response: + summary: Response Example + value: + field: + enabled: true + id: P123456 + name: custom_field_1 + type: field + self: https://api.pagerduty.com/incidents/types/P567890/custom_fields/P123456 + description: The environment that the issue occurred in + field_type: single_value_fixed + data_type: string + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + display_name: Custom Field 1 + default_value: null + incident_type: P567890 + summary: custom_field_1 + field_options: + - id: PT4KHEE + type: field_option + data: + data_type: string + value: production + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + - id: P5IYCNZ + type: field_option + data: + data_type: string + value: staging + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + x-pd-requires-scope: custom_fields.write + tags: + - Incident Types + operationId: deleteIncidentTypeCustomField + description: | + Delete a custom field for an incident type. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.write` + summary: Delete a Custom Field for an Incident Type + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_id' + responses: + '204': + description: The field was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get update and delete the custom fields for an incident type. + /incidents/types/{type_id_or_name}/custom_fields/{field_id}/field_options: + get: + x-pd-requires-scope: custom_fields.read + tags: + - Incident Types + operationId: listIncidentTypeCustomField + description: | + List field options for a custom field. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.read` + summary: List Field Options on a Custom Field + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_id' + responses: + '200': + description: The field option for the custom field requested. + content: + application/json: + schema: + type: object + properties: + field_options: + type: array + items: + $ref: '#/components/schemas/CustomFieldsFieldOption' + required: + - field_options + examples: + response: + summary: Response Example + value: + field_options: + - data: + data_type: string + value: option1 + id: PQ9K7I8 + type: field_option + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + - data: + data_type: string + value: option2 + id: PZ9K7I9 + type: field_option + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + x-pd-requires-scope: custom_fields.write + tags: + - Incident Types + operationId: createIncidentTypeCustomFieldFieldOptions + description: | + Create a field option for a custom field. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.write` + summary: Create a Field Option for a Custom Field + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + field_option: + type: object + description: Details of the field option to be created. + properties: + data: + type: object + properties: + data_type: + type: string + description: The data type of the Field Option for the Custom Field. + value: + type: string + description: The value of the Field Option for the Custom Field. + required: + - data_type + - value + required: + - data + required: + - field_option + examples: + request: + summary: Request Example + value: + field_option: + data: + data_type: string + value: option_1 + responses: + '201': + description: The field option for the custom field created. + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + required: + - field_option + examples: + response: + summary: Response Example + value: + field_option: + id: P123456 + data: + data_type: string + value: option_1 + type: field_option + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and create the custom field options for an incident type custom field. + /incidents/types/{type_id_or_name}/custom_fields/{field_id}/field_options/{field_option_id}: + get: + x-pd-requires-scope: custom_fields.read + tags: + - Incident Types + operationId: getIncidentTypeCustomFieldFieldOptions + description: | + Get a field option on a custom field + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.read` + summary: Get a Field Option on a Custom Field + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_option_id' + - $ref: '#/components/parameters/field_id' + responses: + '200': + description: The field option of the custom field requested. + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + required: + - field_option + examples: + response: + summary: Response Example + value: + field_option: + data: + data_type: string + value: option1 + id: PQ9K7I8 + type: field_option + updated_at: '2021-06-01T21:30:42Z' + created_at: '2021-06-01T21:30:42Z' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + x-pd-requires-scope: custom_fields.write + tags: + - Incident Types + operationId: updateIncidentTypeCustomFieldFieldOption + description: | + Update a field option for a custom field. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.write` + summary: Update a Field Option for a Custom Field + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_option_id' + - $ref: '#/components/parameters/field_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + field_option: + type: object + description: Details of the field option on a custom field to be updated. + properties: + data: + type: object + properties: + data_type: + type: string + description: The data type of the Field Option on the Custom Field. + value: + type: string + description: The value of the Field Option on the Custom Field. + required: + - data_type + - value + required: + - data + required: + - field_option + examples: + request: + summary: Request Example + value: + field_option: + data: + data_type: string + value: option_1 + responses: + '200': + description: The field option for the custom field updated. + content: + application/json: + schema: + type: object + properties: + field_option: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + required: + - field_option + examples: + response: + summary: Response Example + value: + field_option: + data: + data_type: string + value: option_1 + id: P123456 + type: field_option + created_at: '2021-06-01T21:30:42Z' + updated_at: '2021-06-01T21:30:42Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + x-pd-requires-scope: custom_fields.write + tags: + - Incident Types + operationId: deleteIncidentTypeCustomFieldFieldOption + description: | + Delete a field option for a custom field. + + Custom Fields (CF) are a feature which will allow customers to extend Incidents with their own custom data, + to provide additional context and support features such as customized filtering, search and analytics. + Custom Fields can be applied to different incident types. + + Scoped OAuth requires: `custom_fields.write` + summary: Delete a Field Option for a Custom Field + parameters: + - $ref: '#/components/parameters/incident_type_id_or_name' + - $ref: '#/components/parameters/field_option_id' + - $ref: '#/components/parameters/field_id' + responses: + '204': + description: The field option was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get update and delete a custom field option for an incident type custom field. +components: + schemas: + IncidentType: + type: object + properties: + enabled: + type: boolean + description: State of this Incident Type object. + id: + type: string + readOnly: true + name: + type: string + description: The name of the Incident Type. + parent: + type: object + description: The parent Incident Type (id/name). If omitted, type is created under top level (incident_default) + properties: + id: + type: string + type: + type: string + example: incident_type_reference + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + description: + type: string + readOnly: false + description: A succinct description of the Incident Type. + created_at: + type: string + format: date-time + description: The time the Incident Type was created. + example: '2019-12-01T20:00:00Z' + readOnly: true + updated_at: + type: string + format: date-time + example: '2019-12-01T21:02:00Z' + description: The time the Incident Type was last modified. + display_name: + type: string + readOnly: false + description: 'The display name of the Incident Type. The first character must be alphanumeric. Max length: 50, Min Length : 1. The `display_name` for a Field must be unique.' + IncidentTypeCustomFieldWithOptions: + type: object + properties: + enabled: + type: boolean + description: Whether the custom field is enabled. + readOnly: true + id: + type: string + readOnly: true + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + enum: + - field + readOnly: true + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + default_value: + nullable: true + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + incident_type: + type: string + description: The id of the incident type the custom field is associated with. + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + field_options: + type: array + description: The options for the custom field. Applies only to `single_value_fixed` and `multi_value_fixed` field types. Optionally included in response based on query parameter. + items: + type: object + properties: + id: + type: string + type: + type: string + enum: + - field_option + updated_at: + type: string + format: date-time + description: The date/time the field option was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the field option was created at. + readOnly: true + data: + type: object + properties: + value: + type: string + data_type: + enum: + - string + required: + - id + - summary + - self + - type + - name + - display_name + - created_at + - updated_at + - data_type + - field_type + - enabled + - incident_type + CustomFieldsFieldOption: + type: object + properties: + data: + discriminator: + propertyName: data_type + mapping: + string: '#/paths/~1incidents~1custom_fields/get/responses/200/content/application~1json/schema/allOf/0/properties/fields/items/allOf/0/properties/field_options/items/allOf/0/properties/data/oneOf/0' + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 100 + required: + - data_type + - value + id: + type: string + readOnly: true + description: The ID of the resource. + type: + type: string + enum: + - field_option + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + required: + - id + - type + - created_at + - updated_at + - data + description: '' + IncidentTypeCustomFields: + type: object + properties: + enabled: + type: boolean + description: Whether the custom field is enabled. + readOnly: true + id: + type: string + readOnly: true + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + enum: + - field + readOnly: true + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + updated_at: + type: string + format: date-time + description: The date/time the custom field was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the custom field was created at. + readOnly: true + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + default_value: + nullable: true + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + incident_type: + type: string + description: The id of the incident type the custom field is associated with. + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + field_options: + type: array + items: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + description: The options for the custom field. + required: + - id + - summary + - self + - type + - name + - display_name + - created_at + - updated_at + - data_type + - field_type + - enabled + - incident_type + - field_options + CustomFieldsEditableFieldOption: + type: object + properties: + data: + discriminator: + propertyName: data_type + mapping: + string: '#/paths/~1incidents~1custom_fields/get/responses/200/content/application~1json/schema/allOf/0/properties/fields/items/allOf/0/properties/field_options/items/allOf/0/properties/data/oneOf/0' + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 100 + required: + - data_type + - value + id: + type: string + readOnly: true + description: The ID of the resource. + type: + type: string + enum: + - field_option + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + required: + - id + - type + - created_at + - updated_at + description: '' + CustomFieldsFieldValue: + type: object + properties: + id: + type: string + description: Id of the field. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + description: Determines the type of the reference. + enum: + - field_value + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + value: + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + required: + - id + - type + - name + - value + - display_name + - data_type + - field_type + - description + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: + description: | + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + incident_type_list_filter: + name: filter + in: query + required: false + description: Filters the list of incident types based on their `enabled` state. + schema: + type: string + enum: + - enabled + - disabled + - all + default: enabled + incident_type_id_or_name: + name: type_id_or_name + in: path + required: true + description: The ID or name of the Incident Type. + schema: + type: string + include_customfields_field: + name: include[] + description: Array of additional details to include. + in: query + explode: true + schema: + type: string + enum: + - field_options + uniqueItems: true + field_id: + name: field_id + description: The ID of the field. + in: path + required: true + schema: + type: string + field_option_id: + name: field_option_id + description: The ID of the field option. + in: path + required: true + schema: + type: string + x-stackQL-resources: + incident_types: + id: pagerduty.incident_types.incident_types + name: incident_types + title: Incident Types + methods: + list: + operation: + $ref: '#/paths/~1incidents~1types/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.incident_types + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1types/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.incident_type + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_types/methods/get' + - $ref: '#/components/x-stackQL-resources/incident_types/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/incident_types/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/incident_types/methods/update' + delete: [] + replace: [] + custom_fields: + id: pagerduty.incident_types.custom_fields + name: custom_fields + title: Custom Fields + methods: + list: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.fields + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/custom_fields/methods/get' + - $ref: '#/components/x-stackQL-resources/custom_fields/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/custom_fields/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/custom_fields/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/custom_fields/methods/delete' + replace: [] + custom_field_options: + id: pagerduty.incident_types.custom_field_options + name: custom_field_options + title: Custom Field Options + methods: + list: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}~1field_options/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field_options + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}~1field_options/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}~1field_options~1{field_option_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.field_option + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}~1field_options~1{field_option_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1incidents~1types~1{type_id_or_name}~1custom_fields~1{field_id}~1field_options~1{field_option_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/custom_field_options/methods/get' + - $ref: '#/components/x-stackQL-resources/custom_field_options/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/custom_field_options/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/custom_field_options/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/custom_field_options/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/incident_workflows.yaml b/providers/src/pagerduty/v00.00.00000/services/incident_workflows.yaml index 51795e4d..77477bf2 100644 --- a/providers/src/pagerduty/v00.00.00000/services/incident_workflows.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/incident_workflows.yaml @@ -1,3164 +1,727 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Incident Workflows + description: Incident Workflows, their actions, triggers and instances. version: 2.0.0 - title: PagerDuty API - incident_workflows - description: Incident_Workflows -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - IncidentWorkflow: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - incident_workflow - name: - type: string - description: A descriptive name for the Incident Workflow - description: - type: string - description: A description of what the Incident Workflow does - created_at: - type: string - format: date-time - description: The timestamp this Incident Workflow was created - readOnly: true - team: - type: object - readOnly: false - description: If specified then workflow edit permissions will be scoped to members of this team - properties: - type: - type: string - description: Type of the referenced object - readOnly: true - enum: - - team_reference - id: - type: string - description: Unique identifier for the resource - readOnly: true - steps: - type: array - description: The ordered list of steps that execute sequentially as part of the workflow - items: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - step - name: - type: string - description: A descriptive name for the Step - description: - type: string - readOnly: true - description: A description of the action performed by the Step - action_configuration: - description: Configuration of automated action executed by this Step - type: object - properties: - action_id: - type: string - description: The identifier of the Action to execute - description: - type: string - description: Description of the Action - readOnly: true - inputs: - type: array - items: - type: object - properties: - name: - type: string - description: The name of the Input - parameter_type: - type: string - description: The data type of this Input - readOnly: true - value: - type: string - description: The configured value of the Input - required: - - name - - value - outputs: - type: array - readOnly: true - items: - type: object - properties: - name: - type: string - description: The name of the Output - readOnly: true - reference_name: - type: string - description: The reference name of the Output - readOnly: true - parameter_type: - type: string - description: The data type produced by this Output - readOnly: true - required: - - name - - value - required: - - action_id - - inputs - required: - - name - - action_configuration - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - IncidentWorkflowInstance: - type: object - properties: - id: - type: string - readOnly: true - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - enum: - - incident_workflow_instance - incident: - $ref: '#/components/schemas/Reference' - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - IncidentWorkflowAction: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - action - domain_name: - type: string - description: The Verified Domain of the account that created the action - package_name: - type: string - description: The Package Name corresponding to the broad category of the Action - function_name: - type: string - description: The Function Name describing the specific functionality of the Action - version: - type: number - description: The version of the Action - name: - type: string - description: The descriptive name of the Action - description: - type: string - description: A description of the Action - action_type: - type: string - description: The type of Action - enum: - - action - - trigger - trigger_type: - type: string - description: 'The type of Trigger this Action is, if action_type is trigger' - enum: - - polling - - subscription - - web - tags: - type: array - description: A set of tags to apply to this action. - items: - type: string - search_keywords: - type: array - description: A set of search keywords to apply to this action. - items: - type: string - metadata: - type: string - description: JSON-formatted string of metadata pertaining to the Action - created_at: - type: string - format: date-time - description: The date-time at which this Action was created - created_by_user_id: - type: string - description: The obfuscated Id of the User who created this Action - inputs: - type: array - description: Inputs whose values used during Action execution - items: - type: object - properties: - name: - type: string - description: The name of the Input - description: - type: string - description: Describes what the purpose of the Input - type: - type: string - description: The data type of this Input - enum: - - text - - password - - integer - - decimal - - date - - dateTime - - boolean - - singleChoice - - multipleChoice - - json - - connection - - trigger - default_value: - type: string - description: Serialized form of the default value that the input will take - is_required: - type: boolean - description: Whether a value must be provided for this input - is_hidden: - type: boolean - description: If true then this input will not be shown to users when configuring this action - advanced: - type: boolean - metadata: - type: string - connection_type_id: - type: string - description: The configured value of the Input - outputs: - type: array - description: Outputs whose values set during Action execution - readOnly: true - items: - type: object - properties: - name: - type: string - description: The name of the Output - description: - type: string - type: - type: string - description: The data type produced by this Output - enum: - - text - - password - - integer - - decimal - - date - - dateTime - - boolean - - singleChoice - - multipleChoice - - json - IncidentWorkflowTrigger: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - workflow_trigger - trigger_type_name: - type: string - readOnly: true - description: Human readable name for the trigger type - trigger_type: - type: string - enum: - - conditional - - manual - condition: - type: string - description: | - A PCL condition string. +paths: + /incident_workflows: + get: + x-pd-requires-scope: incident_workflows.read + tags: + - Incident Workflows + operationId: listIncidentWorkflows + description: | + List existing Incident Workflows. - If specified, the trigger will execute when the condition is met on an incident. + This is the best method to use to list all Incident Workflows in your account. If your use case requires listing Incident Workflows associated with a particular Service, you can use the "List Triggers" method to find Incident Workflows configured to start for Incidents in a given Service. - If unspecified, the trigger will execute on incident creation. + An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - Required if trigger_type is “conditional”, not allowed if trigger_type is “manual”. - trigger_url: - type: string - format: url - readOnly: true - workflow: - type: object - description: Workflow to start when this trigger is invoked - properties: - id: - type: string - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - enum: - - workflow_reference - name: - type: string - readOnly: true - description: A descriptive name for the Incident Workflow - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - services: - type: array - description: An optional array of Services associated with this workflow. Incidents in any of the listed Services are eligible to fire this Trigger - items: + Scoped OAuth requires: `incident_workflows.read` + summary: List Incident Workflows + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/include_incident_workflow_children' + responses: + '200': + description: A paginated array of Incident Workflows. + content: + application/json: + schema: type: object properties: - id: - type: string - summary: - type: string - nullable: true + offset: + type: integer + description: Echoes offset pagination property. readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string + limit: + type: integer + description: Echoes limit pagination property. readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - enum: - - service - self: - type: string - nullable: true + more: + type: boolean + description: Indicates if there are additional records to return readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string + total: + type: integer + description: The total number of records matching the given query. nullable: true readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - is_subscribed_to_all_services: - type: boolean - description: Indicates that the Trigger should be associated with All Services - permissions: - description: An object detailing who can start this Trigger. Applicable only to manual Triggers. + incident_workflows: + type: array + items: + $ref: '#/components/schemas/IncidentWorkflow' + required: + - incident_workflows + examples: + response: + summary: Response Example + value: + incident_workflows: + - id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7 + limit: 1 + offset: 0 + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: incident_workflows.write + tags: + - Incident Workflows + operationId: postIncidentWorkflow + description: | + Create a new Incident Workflow + + An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + + Scoped OAuth requires: `incident_workflows.write` + summary: Create an Incident Workflow + parameters: [] + requestBody: + content: + application/json: + schema: type: object properties: - restricted: - type: boolean - description: 'If true, indicates that the Trigger can only be started by authorized Users. If false, any user can start this Trigger. Applicable only to manual Triggers.' - team_id: - type: string - description: The ID of the team whose members can manually start this Trigger. Required and allowed if and only if permissions.restricted is true. - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + incident_workflow: + $ref: '#/components/schemas/IncidentWorkflow' + required: + - incident_workflow + examples: + request: + summary: Request Example + value: + incident_workflow: + name: Example Incident Workflow + description: This Incident Workflow is an example + steps: + - name: Send Status Update + action_configuration: + action_id: pagerduty.com:incident-workflows:send-status-update:1 + inputs: + - name: Message + value: Example status message sent on {{current_date}} + responses: + '201': + description: The new Incident Workflow + content: + application/json: + schema: + type: object + properties: + incident_workflow: + $ref: '#/components/schemas/IncidentWorkflow' + required: + - incident_workflow + examples: + response: + summary: Response Example + value: + incident_workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7 + steps: + - id: P4RG7YW + type: step + name: Send Status Update + description: Posts a status update to a given incident + action_configuration: + action_id: pagerduty.com:incident-workflows:send-status-update:1 + description: Posts a status update to a given incident + inputs: + - name: Message + parameter_type: text + value: Example status message sent on {{current_date}} + outputs: + - name: Result + reference_name: result + parameter_type: text + - name: Result Summary + reference_name: result-summary + parameter_type: text + - name: Error + reference_name: error + parameter_type: text + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Create, retrieve, or modify Incident Workflows + /incident_workflows/{id}: + get: + x-pd-requires-scope: incident_workflows.read + tags: + - Incident Workflows + operationId: getIncidentWorkflow + description: | + Get an existing Incident Workflow - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `incident_workflows.read` + summary: Get an Incident Workflow + parameters: + - $ref: '#/components/parameters/id' + responses: + '201': + description: The Incident Workflow + content: + application/json: + schema: + type: object + properties: + incident_workflow: + $ref: '#/components/schemas/IncidentWorkflow' + required: + - incident_workflow + examples: + response: + summary: Response Example + value: + incident_workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7 + steps: + - id: P4RG7YW + type: step + name: Send Status Update + description: Posts a status update to a given incident + action_configuration: + action_id: pagerduty.com:incident-workflows:send-status-update:1 + description: Posts a status update to a given incident + inputs: + - name: Message + parameter_type: text + value: Example status message sent on {{current_date}} + outputs: + - name: Result + reference_name: result + parameter_type: text + - name: Result Summary + reference_name: result-summary + parameter_type: text + - name: Error + reference_name: error + parameter_type: text + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: incident_workflows.write + tags: + - Incident Workflows + operationId: deleteIncidentWorkflow + description: | + Delete an existing Incident Workflow - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false + Scoped OAuth requires: `incident_workflows.write` + summary: Delete an Incident Workflow + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The Incident Workflow was deleted successfully + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: incident_workflows.write + tags: + - Incident Workflows + operationId: putIncidentWorkflow description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + Update an Incident Workflow - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + + Scoped OAuth requires: `incident_workflows.write` + summary: Update an Incident Workflow + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + incident_workflow: + $ref: '#/components/schemas/IncidentWorkflow' + required: + - incident_workflow + examples: + request: + summary: Request Example + value: + incident_workflow: + name: Example Incident Workflow + description: This Incident Workflow is an example + steps: + - name: Send Status Update + action_configuration: + action_id: pagerduty.com:incident-workflows:send-status-update:1 + inputs: + - name: Message + value: Example status message sent on {{current_date}} + responses: + '200': + description: The changed Incident Workflow + content: + application/json: + schema: + type: object + properties: + incident_workflow: + $ref: '#/components/schemas/IncidentWorkflow' + required: + - incident_workflow + examples: + response: + summary: Response Example + value: + incident_workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7 + steps: + - id: P4RG7YW + type: step + name: Send Status Update + description: Posts a status update to a given incident + action_configuration: + action_id: pagerduty.com:incident-workflows:send-status-update:1 + description: Posts a status update to a given incident + inputs: + - name: Message + parameter_type: text + value: Example status message sent on {{current_date}} + outputs: + - name: Result + reference_name: result + parameter_type: text + - name: Result Summary + reference_name: result-summary + parameter_type: text + - name: Error + reference_name: error + parameter_type: text + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Create, retrieve, modify, or delete Incident Workflows + /incident_workflows/{id}/instances: + post: + x-pd-requires-scope: incident_workflows:instances.write + tags: + - Incident Workflows + operationId: createIncidentWorkflowInstance description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Start an Instance of an Incident Workflow. Sometimes referred to as "triggering a workflow on an incident." + An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: + Scoped OAuth requires: `incident_workflows:instances.write` + summary: Start an Incident Workflow Instance + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + incident_workflow_instance: + type: object + properties: + id: + type: string + description: An identifier to help differentiate between workflow executions. + example: P3SNKQS + incident: + type: object + properties: + id: + type: string + example: Q1R2DLCB21K7NP + type: + type: string + enum: + - incident_reference + required: + - id + required: + - incident_workflow_instance + examples: + request: + summary: Request Example + value: + incident_workflow_instance: + id: P3SNKQS + type: incident_workflow_instance + incident: + id: Q1R2DLCB21K7NP + type: incident_reference + responses: + '201': + description: The Incident Workflow Instance + content: + application/json: + schema: + type: object + properties: + incident_workflow_instance: + $ref: '#/components/schemas/IncidentWorkflowInstance' + required: + - incident_workflow_instance + examples: + response: + summary: Response Example + value: + incident_workflow_instance: + id: P3SNKQS + type: incident_workflow_instance + incident: + id: Q1R2DLCB21K7NP + type: incident_reference + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Start an Instance of an Incident Workflows + /incident_workflows/actions: + get: + x-pd-requires-scope: incident_workflows.read + tags: + - Incident Workflows + operationId: listIncidentWorkflowActions description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: + List Incident Workflow Actions + + Scoped OAuth requires: `incident_workflows.read` + summary: List Actions + parameters: + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/actions_filter_keyword' + responses: + '200': + description: A paginated array of Incident Workflow Actions + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + actions: + type: array + items: + $ref: '#/components/schemas/IncidentWorkflowAction' + required: + - limit + - next_cursor + examples: + response: + summary: Response Example + value: + actions: + - type: action + id: pagerduty.com:test:sample-action:1 + domain_name: pagerduty.com + package_name: test + function_name: sample-action + version: 1 + name: 'Test: Sample Action' + description: A fake Action for documentation purposes + action_type: integration + action_tier: premium-action + tags: [] + metadata: '{}' + search_keywords: [] + inputs: + - name: Text Input + description: A text input + type: text + default_value: some text + is_required: true + is_hidden: false + advanced: false + metadata: '{}' + connection_type_id: '' + - name: Int Input + description: An integer input + type: integer + default_value: '1234' + is_required: false + is_hidden: false + advanced: false + metadata: '{}' + connection_type_id: '' + outputs: + - name: Text Output + description: A text output + type: text + created_at: '2022-12-08T22:14:16.965Z' + created_by_user_id: PNBURS9 + limit: 1 + next_cursor: N2E3YzkzNjMtYzBkMC00NjFmLTg1OTEtMGZjMjcwODUzODNl + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Retrieve Incident Workflow Actions + /incident_workflows/actions/{id}: + get: + x-pd-requires-scope: incident_workflows.read + tags: + - Incident Workflows + operationId: getIncidentWorkflowAction description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: + Get an Incident Workflow Action + + Scoped OAuth requires: `incident_workflows.read` + summary: Get an Action + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: An Incident Workflow Action + content: + application/json: + schema: type: object properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - incident_workflows: - id: pagerduty.incident_workflows.incident_workflows - name: incident_workflows - title: Incident Workflows - methods: - list_incident_workflows: - operation: - $ref: '#/paths/~1incident_workflows/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.incident_workflows - _list_incident_workflows: - operation: - $ref: '#/paths/~1incident_workflows/get' - response: - mediaType: application/json - openAPIDocKey: '200' - post_incident_workflow: - operation: - $ref: '#/paths/~1incident_workflows/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_incident_workflow: - operation: - $ref: '#/paths/~1incident_workflows~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '201' - objectKey: $.incident_workflow - _get_incident_workflow: - operation: - $ref: '#/paths/~1incident_workflows~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '201' - delete_incident_workflow: - operation: - $ref: '#/paths/~1incident_workflows~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - put_incident_workflow: - operation: - $ref: '#/paths/~1incident_workflows~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '201' - create_incident_workflow_instance: - operation: - $ref: '#/paths/~1incident_workflows~1{id}~1instances/post' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/get_incident_workflow' - - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/list_incident_workflows' - insert: - - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/create_incident_workflow_instance' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/delete_incident_workflow' - actions: - id: pagerduty.incident_workflows.actions - name: actions - title: Actions - methods: - list_incident_workflow_actions: - operation: - $ref: '#/paths/~1incident_workflows~1actions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.actions - _list_incident_workflow_actions: - operation: - $ref: '#/paths/~1incident_workflows~1actions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_incident_workflow_action: - operation: - $ref: '#/paths/~1incident_workflows~1actions~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.action - _get_incident_workflow_action: - operation: - $ref: '#/paths/~1incident_workflows~1actions~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/actions/methods/get_incident_workflow_action' - - $ref: '#/components/x-stackQL-resources/actions/methods/list_incident_workflow_actions' - insert: [] - update: [] - delete: [] - triggers: - id: pagerduty.incident_workflows.triggers - name: triggers - title: Triggers - methods: - list_incident_workflow_triggers: - operation: - $ref: '#/paths/~1incident_workflows~1triggers/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.triggers - _list_incident_workflow_triggers: - operation: - $ref: '#/paths/~1incident_workflows~1triggers/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.trigger - _get_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - associate_service_to_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers~1{id}~1services/post' - response: - mediaType: application/json - openAPIDocKey: '201' - delete_service_from_incident_workflow_trigger: - operation: - $ref: '#/paths/~1incident_workflows~1triggers~1{trigger_id}~1services~1{service_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/triggers/methods/get_incident_workflow_trigger' - - $ref: '#/components/x-stackQL-resources/triggers/methods/list_incident_workflow_triggers' - insert: - - $ref: '#/components/x-stackQL-resources/triggers/methods/create_incident_workflow_trigger' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/triggers/methods/delete_service_from_incident_workflow_trigger' - - $ref: '#/components/x-stackQL-resources/triggers/methods/delete_incident_workflow_trigger' -paths: - /incident_workflows: + action: + $ref: '#/components/schemas/IncidentWorkflowAction' + examples: + response: + summary: Response Example + value: + action: + type: action + id: pagerduty.com:test:sample-action:1 + domain_name: pagerduty.com + package_name: test + function_name: sample-action + version: 1 + name: 'Test: Sample Action' + description: A fake Action for documentation purposes + action_type: integration + action_tier: premium-action + tags: [] + metadata: '{}' + search_keywords: [] + inputs: + - name: Text Input + description: A text input + type: text + default_value: some text + is_required: true + is_hidden: false + advanced: false + metadata: '{}' + connection_type_id: '' + - name: Int Input + description: An integer input + type: integer + default_value: '1234' + is_required: false + is_hidden: false + advanced: false + metadata: '{}' + connection_type_id: '' + outputs: + - name: Text Output + description: A text output + type: text + created_at: '2022-12-08T22:14:16.965Z' + created_by_user_id: PNBURS9 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Retrieve Incident Workflow Actions + /incident_workflows/triggers: get: x-pd-requires-scope: incident_workflows.read tags: - Incident Workflows - operationId: listIncidentWorkflows + operationId: listIncidentWorkflowTriggers description: | - List existing Incident Workflows. - - This is the best method to use to list all Incident Workflows in your account. If your use case requires listing Incident Workflows associated with a particular Service, you can use the "listIncidentWorkflowsByService" endpoint. - - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + List existing Incident Workflow Triggers Scoped OAuth requires: `incident_workflows.read` - summary: List Incident Workflows + summary: List Triggers parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/include_incident_workflow_children' + - $ref: '#/components/parameters/triggers_filter_workflow_id' + - $ref: '#/components/parameters/triggers_filter_incident_id' + - $ref: '#/components/parameters/triggers_filter_service_id' + - $ref: '#/components/parameters/triggers_filter_trigger_type' + - $ref: '#/components/parameters/triggers_filter_workflow_name_contains' + - $ref: '#/components/parameters/triggers_filter_is_disabled' + - $ref: '#/components/parameters/triggers_sort_by' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' responses: '200': - description: A paginated array of Incident Workflows. + description: A paginated array of Incident Workflow Triggers content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - incident_workflows: - type: array - items: - $ref: '#/components/schemas/IncidentWorkflow' - required: - - incident_workflows + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + triggers: + type: array + items: + $ref: '#/components/schemas/IncidentWorkflowTrigger' + required: + - limit + - next_cursor examples: response: summary: Response Example value: - incident_workflows: - - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7' + triggers: + - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 + type: workflow_trigger + trigger_type_name: Conditional Trigger + trigger_type: conditional + condition: incident.priority matches 'P1' + trigger_url: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start + self: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29 + workflow_id: PSFEVL7 + workflow_name: Example Incident Workflow + is_subscribed_to_all_services: true + services: [] + workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7 + permissions: + restricted: false limit: 1 - offset: 0 + next_cursor: N2E3YzkzNjMtYzBkMC00NjFmLTg1OTEtMGZjMjcwODUzODNl more: true '400': $ref: '#/components/responses/ArgumentError' @@ -3174,159 +737,159 @@ paths: x-pd-requires-scope: incident_workflows.write tags: - Incident Workflows - operationId: postIncidentWorkflow + operationId: createIncidentWorkflowTrigger description: | - Create a new Incident Workflow - - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + Create new Incident Workflow Trigger Scoped OAuth requires: `incident_workflows.write` - summary: Create an Incident Workflow - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + summary: Create a Trigger + parameters: [] requestBody: content: application/json: schema: type: object properties: - incident_workflow: - $ref: '#/components/schemas/IncidentWorkflow' + trigger: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + trigger_type: + type: string + enum: + - conditional + - manual + - incident_type + condition: + type: string + description: | + A PCL condition string. + + If specified, the trigger will execute when the condition is met on an incident. + + If unspecified, the trigger will execute on incident creation. + + Required if trigger_type is “conditional”, not allowed for other trigger types. + trigger_url: + type: string + format: url + incident_types: + type: array + description: An optional array of Incident Types associated with the trigger when it is of type `incident_type`. + items: + type: string + workflow: + type: object + description: Workflow to start when this trigger is invoked + properties: + id: + type: string + services: + type: array + description: An optional array of Services associated with this workflow. Incidents in any of the listed Services are eligible to fire this Trigger + items: + type: object + properties: + id: + type: string + is_subscribed_to_all_services: + type: boolean + description: Indicates that the Trigger should be associated with All Services + permissions: + description: An object detailing who can start this Trigger. Applicable only to manual Triggers. + type: object + properties: + restricted: + type: boolean + description: If true, indicates that the Trigger can only be started by authorized Users. If false, any user can start this Trigger. Applicable only to manual Triggers. + team_id: + type: string + description: The ID of the team whose members can manually start this Trigger. Required and allowed if and only if permissions.restricted is true. + is_disabled: + type: boolean + description: | + Indicates whether the Trigger is disabled or not. A previous API version allowed callers to set this + property independently. This behavior is deprecated. This property's value will be set based on the + "is_enabled" property of the workflow to which this trigger belongs. + deprecated: true required: - - incident_workflow + - trigger examples: request: summary: Request Example value: - incident_workflow: - name: Example Incident Workflow - description: This Incident Workflow is an example - steps: - - name: Send Status Update - action_configuration: - action_id: 'pagerduty.com:incident-workflows:send-status-update:1' - inputs: - - name: Message - value: 'Example status message sent on {{current_date}}' - responses: - '201': - description: The new Incident Workflow - content: - application/json: - schema: - type: object - properties: - incident_workflow: - $ref: '#/components/schemas/IncidentWorkflow' - required: - - incident_workflow - examples: - response: - summary: Response Example - value: - incident_workflow: + trigger: + trigger_type: conditional + workflow: id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7' - steps: - - id: P4RG7YW - type: step - name: Send Status Update - description: Posts a status update to a given incident - action_configuration: - action_id: 'pagerduty.com:incident-workflows:send-status-update:1' - description: Posts a status update to a given incident - inputs: - - name: Message - parameter_type: text - value: 'Example status message sent on {{current_date}}' - outputs: - - name: Result - reference_name: result - parameter_type: text - - name: Result Summary - reference_name: result-summary - parameter_type: text - - name: Error - reference_name: error - parameter_type: text - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incident_workflows/{id}': - get: - x-pd-requires-scope: incident_workflows.read - tags: - - Incident Workflows - operationId: getIncidentWorkflow - description: | - Get an existing Incident Workflow - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - Scoped OAuth requires: `incident_workflows.read` - summary: Get an Incident Workflow - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' + services: + - id: PIJ90N7 + is_subscribed_to_all_services: false + condition: incident.priority matches 'P1' responses: '201': - description: The Incident Workflow + description: The newly created Incident Workflow Trigger content: application/json: schema: type: object properties: - incident_workflow: - $ref: '#/components/schemas/IncidentWorkflow' + trigger: + $ref: '#/components/schemas/IncidentWorkflowTrigger' required: - - incident_workflow + - trigger examples: response: summary: Response Example value: - incident_workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7' - steps: - - id: P4RG7YW - type: step - name: Send Status Update - description: Posts a status update to a given incident - action_configuration: - action_id: 'pagerduty.com:incident-workflows:send-status-update:1' - description: Posts a status update to a given incident - inputs: - - name: Message - parameter_type: text - value: 'Example status message sent on {{current_date}}' - outputs: - - name: Result - reference_name: result - parameter_type: text - - name: Result Summary - reference_name: result-summary - parameter_type: text - - name: Error - reference_name: error - parameter_type: text + trigger: + id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 + type: workflow_trigger + trigger_type_name: Conditional Trigger + trigger_type: conditional + condition: incident.priority matches 'P1' + trigger_url: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start + self: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29 + workflow_id: PSFEVL7 + workflow_name: Example Incident Workflow + is_subscribed_to_all_services: false + services: + - id: PIJ90N7 + summary: My Application Service + type: service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://pdt-circular.pagerduty.com/service-directory/P0544JX + workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3339,25 +902,56 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: incident_workflows.write + description: Create, retrieve, or modify Incident Workflow Triggers + /incident_workflows/triggers/{id}: + get: + x-pd-requires-scope: incident_workflows.read tags: - Incident Workflows - operationId: deleteIncidentWorkflow + operationId: getIncidentWorkflowTrigger description: | - Delete an existing Incident Workflow - - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + Retrieve an existing Incident Workflows Trigger - Scoped OAuth requires: `incident_workflows.write` - summary: Delete an Incident Workflow + Scoped OAuth requires: `incident_workflows.read` + summary: Get a Trigger parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '200': - description: The Incident Workflow was deleted successfully + description: The Incident Workflows Trigger + content: + application/json: + schema: + type: object + properties: + trigger: + $ref: '#/components/schemas/IncidentWorkflowTrigger' + examples: + response: + summary: Response Example + value: + trigger: + id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 + type: workflow_trigger + trigger_type_name: Manual Trigger + trigger_type: manual + trigger_url: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start + self: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29 + workflow_id: PSFEVL7 + workflow_name: Example Incident Workflow + is_subscribed_to_all_services: true + services: [] + workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7 + permissions: + restricted: true + team_id: PUOEV7R '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3366,25 +960,19 @@ paths: $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' put: x-pd-requires-scope: incident_workflows.write tags: - Incident Workflows - operationId: putIncidentWorkflow + operationId: updateIncidentWorkflowTrigger description: | - Update an Incident Workflow - - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + Update an existing Incident Workflow Trigger Scoped OAuth requires: `incident_workflows.write` - summary: Update an Incident Workflow + summary: Update a Trigger parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3392,70 +980,132 @@ paths: schema: type: object properties: - incident_workflow: - $ref: '#/components/schemas/IncidentWorkflow' + trigger: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + trigger_type_name: + type: string + readOnly: true + description: Human readable name for the trigger type + condition: + type: string + description: | + A PCL condition string. + + If specified, the trigger will execute when the condition is met on an incident. + + If unspecified, the trigger will execute on incident creation. + + Required if trigger_type is “conditional”, not allowed for other trigger types. + services: + type: array + description: An optional array of Services associated with this workflow. Incidents in any of the listed Services are eligible to fire this Trigger + items: + type: object + properties: + id: + type: string + is_subscribed_to_all_services: + type: boolean + description: Indicates that the Trigger should be associated with All Services + permissions: + description: An object detailing who can start this Trigger. Applicable only to manual Triggers. + type: object + properties: + restricted: + type: boolean + description: If true, indicates that the Trigger can only be started by authorized Users. If false, any user can start this Trigger. Applicable only to manual Triggers. + team_id: + type: string + description: The ID of the team whose members can manually start this Trigger. Required and allowed if and only if permissions.restricted is true. + is_disabled: + type: boolean + description: | + Indicates whether the Trigger is disabled or not. A previous API version allowed callers to update this + property independently. This behavior is deprecated. To update this property set "is_enabled" on the workflow + to which this trigger belongs. + deprecated: true + incident_types: + type: array + description: An optional array of Incident Types associated with the trigger when it is of type `incident_type`. + items: + type: string required: - - incident_workflow + - trigger examples: request: summary: Request Example value: - incident_workflow: - name: Example Incident Workflow - description: This Incident Workflow is an example - steps: - - name: Send Status Update - action_configuration: - action_id: 'pagerduty.com:incident-workflows:send-status-update:1' - inputs: - - name: Message - value: 'Example status message sent on {{current_date}}' + trigger: + services: + - id: PIJ90N7 + is_subscribed_to_all_services: false + condition: incident.priority matches 'P1' responses: - '201': - description: The new Incident Workflow + '200': + description: The updated Incident Workflow Trigger content: application/json: schema: type: object properties: - incident_workflow: - $ref: '#/components/schemas/IncidentWorkflow' + trigger: + $ref: '#/components/schemas/IncidentWorkflowTrigger' required: - - incident_workflow + - trigger examples: response: summary: Response Example value: - incident_workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7' - steps: - - id: P4RG7YW - type: step - name: Send Status Update - description: Posts a status update to a given incident - action_configuration: - action_id: 'pagerduty.com:incident-workflows:send-status-update:1' - description: Posts a status update to a given incident - inputs: - - name: Message - parameter_type: text - value: 'Example status message sent on {{current_date}}' - outputs: - - name: Result - reference_name: result - parameter_type: text - - name: Result Summary - reference_name: result-summary - parameter_type: text - - name: Error - reference_name: error - parameter_type: text + trigger: + id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 + type: workflow_trigger + trigger_type_name: Conditional Trigger + trigger_type: conditional + condition: incident.priority matches 'P1' + trigger_url: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start + self: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29 + workflow_id: PSFEVL7 + workflow_name: Example Incident Workflow + is_subscribed_to_all_services: false + services: + - id: PIJ90N7 + summary: My Application Service + type: service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://pdt-circular.pagerduty.com/service-directory/P0544JX + workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3468,22 +1118,46 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/incident_workflows/{id}/instances': - post: - x-pd-requires-scope: 'incident_workflows:instances.write' + delete: + x-pd-requires-scope: incident_workflows.write tags: - Incident Workflows - operationId: createIncidentWorkflowInstance + operationId: deleteIncidentWorkflowTrigger description: | - Start an Instance of an Incident Workflow + Delete an existing Incident Workflow Trigger - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. + Scoped OAuth requires: `incident_workflows.write` + summary: Delete a Trigger + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The Incident Workflow Trigger was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Create, retrieve, or modify Incident Workflow Triggers + /incident_workflows/triggers/{id}/services: + post: + x-pd-requires-scope: incident_workflows.write + tags: + - Incident Workflows + operationId: associateServiceToIncidentWorkflowTrigger + description: | + Associate a Service with an existing Incident Workflow Trigger - Scoped OAuth requires: `incident_workflows:instances.write` - summary: Start an Incident Workflow Instance + Scoped OAuth requires: `incident_workflows.write` + summary: Associate a Trigger and Service parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3491,55 +1165,60 @@ paths: schema: type: object properties: - incident_workflow_instance: + service: type: object properties: - incident: - type: object - properties: - type: - type: string - enum: - - incident_reference - required: - - id + id: + type: string required: - - incident_workflow_instance + - service examples: request: summary: Request Example value: - incident_workflow_instance: - id: P3SNKQS - type: incident_workflow_instance - incident: - id: Q1R2DLCB21K7NP - type: incident_reference + service: + id: PIJ90N7 responses: '201': - description: The Incident Workflow Instance + description: The updated Incident Workflow Trigger content: application/json: schema: type: object properties: - incident_workflow_instance: - $ref: '#/components/schemas/IncidentWorkflowInstance' + trigger: + $ref: '#/components/schemas/IncidentWorkflowTrigger' required: - - incident_workflow_instance + - trigger examples: response: summary: Response Example value: - incident_workflow_instance: - id: P3SNKQS - type: incident_workflow_instance - incident: - id: Q1R2DLCB21K7NP - type: incident_reference - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' + trigger: + id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 + type: workflow_trigger + trigger_type_name: Conditional Trigger + trigger_type: conditional + condition: incident.priority matches 'P1' + trigger_url: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start + self: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29 + workflow_id: PSFEVL7 + workflow_name: Example Incident Workflow + is_subscribed_to_all_services: false + services: + - id: PIJ90N7 + summary: My Application Service + type: service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://pdt-circular.pagerduty.com/service-directory/P0544JX + workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3552,86 +1231,57 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - /incident_workflows/actions: - get: - x-pd-requires-scope: incident_workflows.read + description: Manipulate Services attached to an Incident Workflow Trigger + /incident_workflows/triggers/{trigger_id}/services/{service_id}: + delete: + x-pd-requires-scope: incident_workflows.write tags: - Incident Workflows - operationId: listIncidentWorkflowActions + operationId: deleteServiceFromIncidentWorkflowTrigger description: | - List Incident Workflow Actions + Remove a an existing Service from an Incident Workflow Trigger - Scoped OAuth requires: `incident_workflows.read` - summary: List Actions + Scoped OAuth requires: `incident_workflows.write` + summary: Dissociate a Trigger and Service parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/actions_filter_keyword' + - $ref: '#/components/parameters/triggers_path_trigger_id' + - $ref: '#/components/parameters/triggers_path_service_id' responses: - '200': - description: A paginated array of Incident Workflow Actions + '201': + description: The updated Incident Workflow Trigger content: application/json: schema: - allOf: - - $ref: '#/components/schemas/CursorPagination' - - type: object - properties: - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - actions: - type: array - items: - $ref: '#/components/schemas/IncidentWorkflowAction' + type: object + properties: + trigger: + $ref: '#/components/schemas/IncidentWorkflowTrigger' + required: + - trigger examples: response: summary: Response Example value: - actions: - - type: action - id: 'pagerduty.com:test:sample-action:1' - domain_name: pagerduty.com - package_name: test - function_name: sample-action - version: 1 - name: 'Test: Sample Action' - description: A fake Action for documentation purposes - action_type: integration - tags: [] - metadata: '{}' - search_keywords: [] - inputs: - - name: Text Input - description: A text input - type: text - default_value: some text - is_required: true - is_hidden: false - advanced: false - metadata: '{}' - connection_type_id: '' - - name: Int Input - description: An integer input - type: integer - default_value: '1234' - is_required: false - is_hidden: false - advanced: false - metadata: '{}' - connection_type_id: '' - outputs: - - name: Text Output - description: A text output - type: text - created_at: '2022-12-08T22:14:16.965Z' - created_by_user_id: PNBURS9 - limit: 1 - next_cursor: N2E3YzkzNjMtYzBkMC00NjFmLTg1OTEtMGZjMjcwODUzODNl - more: true + trigger: + id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 + type: workflow_trigger + trigger_type_name: Conditional Trigger + trigger_type: conditional + condition: incident.priority matches 'P1' + trigger_url: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start + self: https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29 + workflow_id: PSFEVL7 + workflow_name: Example Incident Workflow + is_subscribed_to_all_services: false + services: [] + workflow: + id: PSFEVL7 + name: Example Incident Workflow + description: This Incident Workflow is an example + type: incident_workflow + created_at: '2022-12-13T19:55:01.171Z' + self: https://api.pagerduty.com/incident_workflows/PSFEVL7 + html_url: https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3640,575 +1290,1246 @@ paths: $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/incident_workflows/actions/{id}': - get: - x-pd-requires-scope: incident_workflows.read - tags: - - Incident Workflows - operationId: getIncidentWorkflowAction - description: | - Get an Incident Workflow Action + description: Manipulate Services attached to an Incident Workflow Trigger +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + IncidentWorkflow: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: A descriptive name for the Incident Workflow + description: + type: string + description: A description of what the Incident Workflow does + created_at: + type: string + format: date-time + description: The timestamp this Incident Workflow was created + readOnly: true + team: + type: object + readOnly: false + description: If specified then workflow edit permissions will be scoped to members of this team + properties: + type: + type: string + description: Type of the referenced object + readOnly: true + enum: + - team_reference + id: + type: string + description: Unique identifier for the resource + readOnly: true + is_enabled: + type: boolean + default: true + description: | + Indicates whether the Incident Workflow is enabled or not. Disabled workflows will not be triggered, and + will not count toward the account's enabled workflow limit. + steps: + type: array + description: The ordered list of steps that execute sequentially as part of the workflow + items: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: A descriptive name for the Step + description: + type: string + readOnly: true + description: A description of the action performed by the Step + action_configuration: + description: Configuration of automated action executed by this Step + type: object + properties: + action_id: + type: string + description: The identifier of the Action to execute + description: + type: string + description: Description of the Action + readOnly: true + inputs: + type: array + description: An unordered list of standard inputs used to configure the Action to execute + items: + type: object + properties: + name: + type: string + description: The name for this Input. Input names are unique per action and should be used to find a specific Input. + parameter_type: + type: string + description: The data type of this Input + readOnly: true + value: + type: string + description: The configured value of the Input + required: + - name + - value + inline_steps_inputs: + type: array + description: An unordered list of specialized inputs used to configure a workflow-within-a-workflow + items: + type: object + properties: + name: + type: string + description: The name for this Input. Input names are unique per action and should be used to find a specific Input. + value: + type: object + description: The configured value of the Inline Steps Input + properties: + steps: + type: array + items: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: A descriptive name for the Step + action_configuration: + description: Configuration of automated action executed by this Step + type: object + properties: + action_id: + type: string + description: The identifier of the Action to execute + description: + type: string + description: Description of the Action + readOnly: true + inputs: + type: array + description: An unordered list of standard inputs used to configure the Action to execute + items: + type: object + properties: + name: + type: string + description: The name for this Input. Input names are unique per action and should be used to find a specific Input. + parameter_type: + type: string + description: The data type of this Input + readOnly: true + value: + type: string + description: The configured value of the Input + required: + - name + - value + outputs: + type: array + description: An unordered list of outputs this action produces + readOnly: true + items: + type: object + properties: + name: + type: string + description: The name for this Output. Output names are unique per action and should be used to find a specific Output. + readOnly: true + reference_name: + type: string + description: The reference name of the Output + readOnly: true + parameter_type: + type: string + description: The data type produced by this Output + readOnly: true + required: + - name + - value + required: + - action_id + - inputs + required: + - name + - action_configuration + required: + - name + - value + outputs: + type: array + description: An unordered list of outputs this action produces + readOnly: true + items: + type: object + properties: + name: + type: string + description: The name for this Output. Output names are unique per action and should be used to find a specific Output. + readOnly: true + reference_name: + type: string + description: The reference name of the Output + readOnly: true + parameter_type: + type: string + description: The data type produced by this Output + readOnly: true + required: + - name + - value + required: + - action_id + - inputs + required: + - name + - action_configuration + IncidentWorkflowInstance: + type: object + properties: + id: + type: string + readOnly: true + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + enum: + - incident_workflow_instance + incident: + $ref: '#/components/schemas/Reference' + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + IncidentWorkflowAction: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + domain_name: + type: string + description: The Verified Domain of the account that created the action + package_name: + type: string + description: The Package Name corresponding to the broad category of the Action + function_name: + type: string + description: The Function Name describing the specific functionality of the Action + version: + type: number + description: The version of the Action + name: + type: string + description: The descriptive name of the Action + description: + type: string + description: A description of the Action + action_type: + type: string + description: The type of Action + enum: + - action + - trigger + action_tier: + type: string + description: The tier of the Action + enum: + - basic-action + - standard-action + - premium-action + trigger_type: + type: string + description: The type of Trigger this Action is, if action_type is trigger + enum: + - polling + - subscription + - web + tags: + type: array + description: A set of tags to apply to this action. + items: + type: string + search_keywords: + type: array + description: A set of search keywords to apply to this action. + items: + type: string + metadata: + type: string + description: JSON-formatted string of metadata pertaining to the Action + created_at: + type: string + format: date-time + description: The date-time at which this Action was created + created_by_user_id: + type: string + description: The obfuscated Id of the User who created this Action + inputs: + type: array + description: Inputs whose values used during Action execution + items: + type: object + properties: + name: + type: string + description: The name of the Input + description: + type: string + description: Describes what the purpose of the Input + type: + type: string + description: The data type of this Input + enum: + - text + - password + - integer + - decimal + - date + - dateTime + - boolean + - singleChoice + - multipleChoice + - json + - connection + - trigger + default_value: + type: string + description: Serialized form of the default value that the input will take + is_required: + type: boolean + description: Whether a value must be provided for this input + is_hidden: + type: boolean + description: If true then this input will not be shown to users when configuring this action + advanced: + type: boolean + metadata: + type: string + connection_type_id: + type: string + description: The configured value of the Input + outputs: + type: array + description: Outputs whose values set during Action execution + readOnly: true + items: + type: object + properties: + name: + type: string + description: The name of the Output + description: + type: string + type: + type: string + description: The data type produced by this Output + enum: + - text + - password + - integer + - decimal + - date + - dateTime + - boolean + - singleChoice + - multipleChoice + - json + IncidentWorkflowTrigger: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + trigger_type_name: + type: string + description: Human readable name for the trigger type + trigger_type: + type: string + enum: + - conditional + - manual + - incident_type + condition: + type: string + description: | + A PCL condition string. - Scoped OAuth requires: `incident_workflows.read` - summary: Get an Action - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: An Incident Workflow Action - content: - application/json: - schema: + If specified, the trigger will execute when the condition is met on an incident. + + If unspecified, the trigger will execute on incident creation. + + Required if trigger_type is “conditional”, not allowed for other trigger types. + trigger_url: + type: string + format: url + incident_types: + type: array + description: An optional array of Incident Types associated with the trigger when it is of type `incident_type`. + items: + type: string + workflow: + type: object + description: Workflow to start when this trigger is invoked + properties: + id: + type: string + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + enum: + - workflow_reference + name: + type: string + description: A descriptive name for the Incident Workflow + self: + type: string + nullable: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + services: + type: array + description: An optional array of Services associated with this workflow. Incidents in any of the listed Services are eligible to fire this Trigger + items: + type: object + properties: + id: + type: string + summary: + type: string + nullable: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + enum: + - service + self: + type: string + nullable: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + is_subscribed_to_all_services: + type: boolean + description: Indicates that the Trigger should be associated with All Services + permissions: + description: An object detailing who can start this Trigger. Applicable only to manual Triggers. + type: object + properties: + restricted: + type: boolean + description: If true, indicates that the Trigger can only be started by authorized Users. If false, any user can start this Trigger. Applicable only to manual Triggers. + team_id: + type: string + description: The ID of the team whose members can manually start this Trigger. Required and allowed if and only if permissions.restricted is true. + is_disabled: + type: boolean + description: | + Indicates whether the Trigger is disabled or not. Inherited from the "is_enabled" property on the workflow + to which this trigger belongs. This attribute is deprecated, and will be removed in a future version of + this API. + deprecated: true + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - action: - $ref: '#/components/schemas/IncidentWorkflowAction' - examples: - response: - summary: Response Example - value: - action: - type: action - id: 'pagerduty.com:test:sample-action:1' - domain_name: pagerduty.com - package_name: test - function_name: sample-action - version: 1 - name: 'Test: Sample Action' - description: A fake Action for documentation purposes - action_type: integration - tags: [] - metadata: '{}' - search_keywords: [] - inputs: - - name: Text Input - description: A text input - type: text - default_value: some text - is_required: true - is_hidden: false - advanced: false - metadata: '{}' - connection_type_id: '' - - name: Int Input - description: An integer input - type: integer - default_value: '1234' - is_required: false - is_hidden: false - advanced: false - metadata: '{}' - connection_type_id: '' - outputs: - - name: Text Output - description: A text output - type: text - created_at: '2022-12-08T22:14:16.965Z' - created_by_user_id: PNBURS9 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - /incident_workflows/triggers: - get: - x-pd-requires-scope: incident_workflows.read - tags: - - Incident Workflows - operationId: listIncidentWorkflowTriggers - description: | - List existing Incident Workflow Triggers - - Scoped OAuth requires: `incident_workflows.read` - summary: List Triggers - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/triggers_filter_workflow_id' - - $ref: '#/components/parameters/triggers_filter_incident_id' - - $ref: '#/components/parameters/triggers_filter_service_id' - - $ref: '#/components/parameters/triggers_filter_trigger_type' - - $ref: '#/components/parameters/triggers_sort_by' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - responses: - '200': - description: A paginated array of Incident Workflow Triggers - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/CursorPagination' - - type: object - properties: - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - triggers: - type: array - items: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - examples: - response: - summary: Response Example - value: - triggers: - - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 - type: workflow_trigger - trigger_type_name: Conditional Trigger - trigger_type: conditional - condition: incident.priority matches 'P1' - trigger_url: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start' - self: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29' - workflow_id: PSFEVL7 - workflow_name: Example Incident Workflow - is_subscribed_to_all_services: true - services: [] - workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7' - permissions: - restricted: false - limit: 1 - next_cursor: N2E3YzkzNjMtYzBkMC00NjFmLTg1OTEtMGZjMjcwODUzODNl - more: true - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: incident_workflows.write - tags: - - Incident Workflows - operationId: createIncidentWorkflowTrigger + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Create new Incident Workflow Trigger - - Scoped OAuth requires: `incident_workflows.write` - summary: Create a Trigger - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - requestBody: - content: - application/json: - schema: - type: object - properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - required: - - trigger - examples: - request: - summary: Request Example - value: - trigger: - trigger_type: conditional - workflow: - id: PSFEVL7 - services: - - id: PIJ90N7 - is_subscribed_to_all_services: false - condition: incident.priority matches 'P1' - responses: - '201': - description: The newly created Incident Workflow Trigger - content: - application/json: - schema: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - required: - - trigger - examples: - response: - summary: Response Example - value: - trigger: - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 - type: workflow_trigger - trigger_type_name: Conditional Trigger - trigger_type: conditional - condition: incident.priority matches 'P1' - trigger_url: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start' - self: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29' - workflow_id: PSFEVL7 - workflow_name: Example Incident Workflow - is_subscribed_to_all_services: false - services: - - id: PIJ90N7 - summary: My Application Service - type: service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://pdt-circular.pagerduty.com/service-directory/P0544JX' - workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incident_workflows/triggers/{id}': - get: - x-pd-requires-scope: incident_workflows.read - tags: - - Incident Workflows - operationId: getIncidentWorkflowTrigger + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Retrieve an existing Incident Workflows Trigger - - Scoped OAuth requires: `incident_workflows.read` - summary: Get a Trigger - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The Incident Workflows Trigger - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - examples: - response: - summary: Response Example - value: - trigger: - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 - type: workflow_trigger - trigger_type_name: Manual Trigger - trigger_type: manual - trigger_url: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start' - self: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29' - workflow_id: PSFEVL7 - workflow_name: Example Incident Workflow - is_subscribed_to_all_services: true - services: [] - workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://pdt-flex-actions.pagerduty.com/flex-workflows/workflows/PSFEVL7' - permissions: - restricted: true - team_id: PUOEV7R - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: incident_workflows.write - tags: - - Incident Workflows - operationId: updateIncidentWorkflowTrigger + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Update an existing Incident Workflow Trigger - - Scoped OAuth requires: `incident_workflows.write` - summary: Update a Trigger - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - required: - - trigger - examples: - request: - summary: Request Example - value: - trigger: - services: - - id: PIJ90N7 - is_subscribed_to_all_services: false - condition: incident.priority matches 'P1' - responses: - '200': - description: The updated Incident Workflow Trigger - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - required: - - trigger - examples: - response: - summary: Response Example - value: - trigger: - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 - type: workflow_trigger - trigger_type_name: Conditional Trigger - trigger_type: conditional - condition: incident.priority matches 'P1' - trigger_url: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start' - self: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29' - workflow_id: PSFEVL7 - workflow_name: Example Incident Workflow - is_subscribed_to_all_services: false - services: - - id: PIJ90N7 - summary: My Application Service - type: service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://pdt-circular.pagerduty.com/service-directory/P0544JX' - workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: incident_workflows.write - tags: - - Incident Workflows - operationId: deleteIncidentWorkflowTrigger - description: | - Delete an existing Incident Workflow Trigger - - Scoped OAuth requires: `incident_workflows.write` - summary: Delete a Trigger - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The Incident Workflow Trigger was deleted successfully. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incident_workflows/triggers/{id}/services': - post: - x-pd-requires-scope: incident_workflows.write - tags: - - Incident Workflows - operationId: associateServiceToIncidentWorkflowTrigger - description: | - Associate a Service with an existing Incident Workflow Trigger - - Scoped OAuth requires: `incident_workflows.write` - summary: Associate a Trigger and Service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - service: - type: object - properties: - id: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: type: string - required: - - service - examples: - request: - summary: Request Example - value: - service: - id: PIJ90N7 - responses: - '201': - description: The updated Incident Workflow Trigger - content: - application/json: - schema: + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - required: - - trigger - examples: - response: - summary: Response Example - value: - trigger: - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 - type: workflow_trigger - trigger_type_name: Conditional Trigger - trigger_type: conditional - condition: incident.priority matches 'P1' - trigger_url: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start' - self: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29' - workflow_id: PSFEVL7 - workflow_name: Example Incident Workflow - is_subscribed_to_all_services: false - services: - - id: PIJ90N7 - summary: My Application Service - type: service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://pdt-circular.pagerduty.com/service-directory/P0544JX' - workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incident_workflows/triggers/{trigger_id}/services/{service_id}': - delete: - x-pd-requires-scope: incident_workflows.write - tags: - - Incident Workflows - operationId: deleteServiceFromIncidentWorkflowTrigger + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + include_incident_workflow_children: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - steps + - team + uniqueItems: true + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false description: | - Remove a an existing Service from an Incident Workflow Trigger - - Scoped OAuth requires: `incident_workflows.write` - summary: Dissociate a Trigger and Service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/triggers_path_trigger_id' - - $ref: '#/components/parameters/triggers_path_service_id' - responses: - '201': - description: The updated Incident Workflow Trigger - content: - application/json: - schema: - type: object - properties: - trigger: - $ref: '#/components/schemas/IncidentWorkflowTrigger' - required: - - trigger - examples: - response: - summary: Response Example - value: - trigger: - id: 4ad696eb-bb48-422a-8bd0-6efad6befa29 - type: workflow_trigger - trigger_type_name: Conditional Trigger - trigger_type: conditional - condition: incident.priority matches 'P1' - trigger_url: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29/start' - self: 'https://api.pagerduty.com/incident_workflows/triggers/4ad696eb-bb48-422a-8bd0-6efad6befa29' - workflow_id: PSFEVL7 - workflow_name: Example Incident Workflow - is_subscribed_to_all_services: false - services: [] - workflow: - id: PSFEVL7 - name: Example Incident Workflow - description: This Incident Workflow is an example - type: incident_workflow - created_at: '2022-12-13T19:55:01.171Z' - self: 'https://api.pagerduty.com/incident_workflows/PSFEVL7' - html_url: 'https://mydomain.pagerduty.com/flex-workflows/workflows/PSFEVL7' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + actions_filter_keyword: + name: keyword + description: If provided, only show actions tagged with the specified keyword + in: query + schema: + type: string + example: slack + triggers_filter_workflow_id: + name: workflow_id + description: If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow + in: query + schema: + type: string + example: P4RG7YW + triggers_filter_incident_id: + name: incident_id + description: If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided. + in: query + schema: + type: string + example: Q2LAR4ADCXC8IB + triggers_filter_service_id: + name: service_id + description: If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided. + in: query + schema: + type: string + example: P4RG7YW + triggers_filter_trigger_type: + name: trigger_type + description: If provided, only show triggers of the given type. For example “manual” to search for manual triggers + in: query + schema: + type: string + enum: + - manual + - conditional + - incident_type + triggers_filter_workflow_name_contains: + name: workflow_name_contains + description: If provided, only show triggers configured to start workflows whose name contain the provided value. + in: query + schema: + type: string + example: High Priority + triggers_filter_is_disabled: + name: is_disabled + description: | + If provided, filters between disabled and enabled Triggers. + This query parameter is deprecated, and will be removed in a future version of this API. + deprecated: true + in: query + schema: + type: boolean + triggers_sort_by: + name: sort_by + description: If provided, returns triggers sorted by the specified property. + in: query + schema: + type: string + enum: + - workflow_id + - workflow_id asc + - workflow_id desc + - workflow_name + - workflow_name asc + - workflow_name desc + triggers_path_trigger_id: + name: trigger_id + description: Identifier for the Trigger + required: true + in: path + schema: + type: string + triggers_path_service_id: + name: service_id + description: Identifier for the Service + required: true + in: path + schema: + type: string + x-stackQL-resources: + incident_workflows: + id: pagerduty.incident_workflows.incident_workflows + name: incident_workflows + title: Incident Workflows + methods: + list: + operation: + $ref: '#/paths/~1incident_workflows/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.incident_workflows + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incident_workflows/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1incident_workflows~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.incident_workflow + delete: + operation: + $ref: '#/paths/~1incident_workflows~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incident_workflows~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/get' + - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/incident_workflows/methods/delete' + replace: [] + instances: + id: pagerduty.incident_workflows.instances + name: instances + title: Instances + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incident_workflows~1{id}~1instances/post' + response: + mediaType: application/json + openAPIDocKey: '201' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/instances/methods/create' + update: [] + delete: [] + replace: [] + actions: + id: pagerduty.incident_workflows.actions + name: actions + title: Actions + methods: + list: + operation: + $ref: '#/paths/~1incident_workflows~1actions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.actions + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1incident_workflows~1actions~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.action + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/actions/methods/get' + - $ref: '#/components/x-stackQL-resources/actions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + triggers: + id: pagerduty.incident_workflows.triggers + name: triggers + title: Triggers + methods: + list: + operation: + $ref: '#/paths/~1incident_workflows~1triggers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.triggers + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + orderBy: + paramName: sort_by + syntax: suffix + supportedColumns: + - workflow_id + - workflow_id asc + - workflow_id desc + - workflow_name + - workflow_name asc + - workflow_name desc + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incident_workflows~1triggers/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1incident_workflows~1triggers~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.trigger + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incident_workflows~1triggers~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1incident_workflows~1triggers~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/triggers/methods/get' + - $ref: '#/components/x-stackQL-resources/triggers/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/triggers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/triggers/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/triggers/methods/delete' + replace: [] + trigger_services: + id: pagerduty.incident_workflows.trigger_services + name: trigger_services + title: Trigger Services + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incident_workflows~1triggers~1{id}~1services/post' + response: + mediaType: application/json + openAPIDocKey: '201' + delete: + operation: + $ref: '#/paths/~1incident_workflows~1triggers~1{trigger_id}~1services~1{service_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '201' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/trigger_services/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/trigger_services/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/incidents.yaml b/providers/src/pagerduty/v00.00.00000/services/incidents.yaml index ab2c393a..b307108b 100644 --- a/providers/src/pagerduty/v00.00.00000/services/incidents.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/incidents.yaml @@ -1,4657 +1,1839 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Incidents + description: Incidents and their alerts, notes, log entries, status updates, responder requests, custom field values and business service impacts. version: 2.0.0 - title: PagerDuty API - incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Incident: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - incident_number: - type: integer - readOnly: true - description: The number of the incident. This is unique across your account. - created_at: - type: string - format: date-time - readOnly: true - description: The date/time the incident was first triggered. - status: - type: string - description: The current status of the incident. - enum: - - triggered - - acknowledged - - resolved - title: - type: string - readOnly: false - description: 'A succinct description of the nature, symptoms, cause, or effect of the incident.' - pending_actions: - type: array - readOnly: true - description: 'The list of pending_actions on the incident. A pending_action object contains a type of action which can be escalate, unacknowledge, resolve or urgency_change. A pending_action object contains at, the time at which the action will take place. An urgency_change pending_action will contain to, the urgency that the incident will change to.' - items: - $ref: '#/components/schemas/IncidentAction' - incident_key: - type: string - readOnly: true - description: The incident's de-duplication key. - service: - $ref: '#/components/schemas/ServiceReference' - assignments: - type: array - description: List of all assignments for this incident. This list will be empty if the `Incident.status` is `resolved`. - items: - $ref: '#/components/schemas/Assignment' - assigned_via: - type: string - description: How the current incident assignments were decided. Note that `direct_assignment` incidents will not escalate up the attached `escalation_policy` - enum: - - escalation_policy - - direct_assignment - readOnly: true - acknowledgements: - type: array - description: List of all acknowledgements for this incident. This list will be empty if the `Incident.status` is `resolved` or `triggered`. - items: - $ref: '#/components/schemas/Acknowledgement' - last_status_change_at: - type: string - format: date-time - readOnly: true - description: The time at which the status of the incident last changed. - last_status_change_by: - $ref: '#/components/schemas/AgentReference' - first_trigger_log_entry: - $ref: '#/components/schemas/LogEntryReference' - escalation_policy: - $ref: '#/components/schemas/EscalationPolicyReference' - teams: - type: array - description: The teams involved in the incident’s lifecycle. - items: - $ref: '#/components/schemas/TeamReference' - priority: - $ref: '#/components/schemas/PriorityReference' - urgency: - type: string - enum: - - high - - low - description: The current urgency of the incident. - resolve_reason: - $ref: '#/components/schemas/ResolveReason' - alert_counts: - $ref: '#/components/schemas/AlertCount' - conference_bridge: - $ref: '#/components/schemas/ConferenceBridge' - body: - $ref: '#/components/schemas/IncidentBody' - incidents_responders: - type: array - readOnly: true - items: - $ref: '#/components/schemas/IncidentsRespondersReference' - responder_requests: - type: array - readOnly: true - items: - $ref: '#/components/schemas/ResponderRequest' - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - IncidentAction: - description: An incident action is a pending change to an incident that will automatically happen at some future time. - type: object - properties: - type: - type: string - enum: - - unacknowledge - - escalate - - resolve - - urgency_change - at: - type: string - format: date-time - discriminator: - propertyName: type - required: - - type - - at - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - Assignment: - type: object - properties: - at: - type: string - format: date-time - description: Time at which the assignment was created. - assignee: - $ref: '#/components/schemas/UserReference' - required: - - at - - assignee - Acknowledgement: - type: object - properties: - at: - type: string - format: date-time - description: Time at which the acknowledgement was created. - acknowledger: - $ref: '#/components/schemas/AcknowledgerReference' - required: - - at - - acknowledger - AgentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - description: 'The agent (user, service or integration) that created or modified the Incident Log Entry.' - properties: - type: - enum: - - user_reference - - service_reference - - integration_reference - type: string - readOnly: true - LogEntryReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - acknowledge_log_entry_reference - - annotate_log_entry_reference - - assign_log_entry_reference - - escalate_log_entry_reference - - exhaust_escalation_path_log_entry_reference - - notify_log_entry_reference - - reach_trigger_limit_log_entry_reference - - repeat_escalation_path_log_entry_reference - - resolve_log_entry_reference - - snooze_log_entry_reference - - trigger_log_entry_reference - - unacknowledge_log_entry_reference - EscalationPolicyReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - escalation_policy_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - PriorityReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - priority_reference - ResolveReason: - type: object - properties: - type: - type: string - description: The reason the incident was resolved. The only reason currently supported is merge. - default: merge_resolve_reason - enum: - - merge_resolve_reason - incident: - $ref: '#/components/schemas/IncidentReference' - AlertCount: - type: object - properties: - triggered: - type: integer - description: The count of triggered alerts - resolved: - type: integer - description: The count of resolved alerts - all: - type: integer - description: The total count of alerts - ConferenceBridge: - type: object - properties: - conference_number: - type: string - description: '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.' - conference_url: - type: string - format: url - description: An URL for the conference bridge. This could be a link to a web conference or Slack channel. - IncidentBody: - type: object - properties: - type: - type: string - enum: - - incident_body - details: - type: string - description: Additional incident details. - required: - - type - IncidentsRespondersReference: - type: object - properties: - state: - type: string - description: The status of the responder being added to the incident - example: pending - user: - $ref: '#/components/schemas/UserReference' - incident: - $ref: '#/components/schemas/IncidentReference' - updated_at: - type: string - message: - type: string - description: The message sent with the responder request - requester: - $ref: '#/components/schemas/UserReference' - requested_at: - type: string - ResponderRequest: - type: object - properties: - incident: - $ref: '#/components/schemas/IncidentReference' - requester: - $ref: '#/components/schemas/UserReference' - requested_at: - type: string - description: The time the request was made - message: - type: string - description: The message sent with the responder request - responder_request_targets: - type: array - description: The array of targets the responder request is being sent to - items: - $ref: '#/components/schemas/ResponderRequestTargetReference' - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - AcknowledgerReference: - allOf: - - $ref: '#/components/schemas/Reference' - - description: The acknowledger represents the entity that made the acknowledgement for an incident. - type: object - properties: - type: - enum: - - user_reference - - service_reference - type: string - IncidentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - incident_reference - ResponderRequestTargetReference: - type: object - properties: - type: - type: string - description: The type of target (either a user or an escalation policy) - id: - type: string - description: The id of the user or escalation policy - summary: - type: string - incident_responders: - type: array - description: An array of responders associated with the specified incident - items: - $ref: '#/components/schemas/IncidentsRespondersReference' - Alert: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - created_at: - type: string - format: date-time - readOnly: true - description: The date/time the alert was first triggered. - type: - type: string - default: alert - description: The type of object being created. - enum: - - alert - status: - type: string - description: The current status of the alert. - enum: - - triggered - - resolved - alert_key: - type: string - readOnly: true - description: The alert's de-duplication key. - service: - $ref: '#/components/schemas/ServiceReference' - first_trigger_log_entry: - $ref: '#/components/schemas/LogEntryReference' - incident: - $ref: '#/components/schemas/IncidentReference' - suppressed: - type: boolean - readOnly: true - description: Whether or not an alert is suppressed. Suppressed alerts are not created with a parent incident. - default: false - severity: - type: string - readOnly: true - description: The magnitude of the problem as reported by the monitoring tool. - enum: - - info - - warning - - error - - critical - integration: - $ref: '#/components/schemas/IntegrationReference' - body: +paths: + /incidents: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: listIncidents + description: | + List existing incidents. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.read` + summary: List incidents + parameters: + - $ref: '#/components/parameters/incident_list_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/date_range' + - $ref: '#/components/parameters/incident_key' + - $ref: '#/components/parameters/incident_services' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/incident_assigned_to_user' + - $ref: '#/components/parameters/incident_urgencies' + - $ref: '#/components/parameters/incident_list_time_zone' + - $ref: '#/components/parameters/statuses_incidents' + - $ref: '#/components/parameters/sort_by_incidents' + - $ref: '#/components/parameters/include_incidents' + - $ref: '#/components/parameters/since_incidents' + - $ref: '#/components/parameters/until_incidents' + responses: + '200': + description: A paginated array of incidents. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + incidents: + type: array + items: + $ref: '#/components/schemas/Incident' + required: + - incidents + examples: + response: + summary: Response Example + value: + incidents: + - id: PT4KHLK + type: incident + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 + title: The server is on fire. + created_at: '2015-10-06T21:30:42Z' + updated_at: '2015-10-06T21:40:23Z' + status: resolved + incident_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + assignments: [] + assigned_via: escalation_policy + last_status_change_at: '2015-10-06T21:38:23Z' + resolved_at: '2015-10-06T21:38:23Z' + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + alert_counts: + all: 2 + triggered: 0 + resolved: 2 + is_mergeable: true + incident_type: + name: incident_default + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + pending_actions: [] + acknowledgements: [] + alert_grouping: + grouping_type: advanced + started_at: '2015-10-06T21:30:42Z' + ended_at: null + alert_grouping_active: true + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + priority: + id: P53ZZH5 + type: priority_reference + summary: P2 + self: https://api.pagerduty.com/priorities/P53ZZH5 + resolve_reason: null + conference_bridge: + conference_number: +1-415-555-1212,,,,1234# + conference_url: https://example.com/acb-123 + incidents_responders: [] + responder_requests: [] + urgency: high + limit: 1 + offset: 0 + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: incidents.write + x-pd-operation-limit: true + tags: + - Incidents + operationId: updateIncidents + description: | + Acknowledge, resolve, escalate or reassign one or more incidents. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + A maximum of 250 incidents may be updated at a time. If more than this number of incidents are given, the API will respond with status 413 (Request Entity Too Large). + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.write` + + This API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information. + summary: Manage incidents + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: type: object - readOnly: true - description: A JSON object containing data describing the alert. - title: Body properties: - type: - type: string - description: The type of the body. - enum: - - alert_body - contexts: + incidents: type: array - readOnly: true - description: Contexts to be included with the body such as links to graphs or images. + description: An array of incidents, including the parameters to update. items: - $ref: '#/components/schemas/Context' - details: - type: object - readOnly: true - description: An arbitrary JSON object or string containing any data explaining the nature of the alert. - required: - - type - example: - type: alert - status: resolved - incident: - id: PEYSGVF - type: incident_reference - body: - type: alert_body - contexts: - - type: link - details: - customKey: Server is on fire! - customKey2: Other stuff! - IntegrationReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - aws_cloudwatch_inbound_integration_reference - - cloudkick_inbound_integration_reference - - event_transformer_api_inbound_integration_reference - - generic_email_inbound_integration_reference - - generic_events_api_inbound_integration_reference - - keynote_inbound_integration_reference - - nagios_inbound_integration_reference - - pingdom_inbound_integration_reference - - sql_monitor_inbound_integration_reference - - events_api_v2_inbound_integration_reference - - inbound_integration_reference - Context: - type: object - discriminator: - propertyName: type - properties: - type: - type: string - description: The type of context being attached to the incident. - enum: - - link - - image - href: - type: string - description: The link's target url - src: - type: string - description: The image's source url - text: - type: string - description: The alternate display for an image - required: - - type - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - Impact: - title: Impact - type: object - properties: - id: - type: string - readOnly: true - name: - type: string - readOnly: true - type: - type: string - description: The kind of object that has been impacted - enum: - - business_service - status: - type: string - description: The current impact status of the object - enum: - - impacted - - not_impacted - additional_fields: - type: object - properties: - highest_impacting_priority: - type: object - nullable: true - description: Priority information for the highest priority level that is affecting the impacted object. - properties: - id: - type: string - readOnly: true - order: - type: integer - readOnly: true - CustomFieldsFieldValue: - type: object - properties: - id: - type: string - description: Id of the field. - name: - type: string - description: 'The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique.' - maxLength: 50 - type: - type: string - description: Determines the type of the reference. - enum: - - field_value - display_name: - type: string - description: The human-readable name of the field. This must be unique across an account. - maxLength: 50 - multi_value: - type: boolean - description: 'If `true`, allows the custom field to store a set of multiple values. Must be `false` if `datatype` is not "string" or "url"' - datatype: - type: string - description: The kind of data the custom field is allowed to contain. - enum: - - boolean - - integer - - float - - string - - datetime - - url - description: - type: string - nullable: true - description: A description of the data this field contains. - maxLength: 1000 - fixed_options: - type: boolean - description: 'If `true`, restricts the values allowed to be stored in the custom field to a limited set of options (configured via the Field Option sub-resource). Must be `false` if `datatype` is "boolean", "url", or "datetime"' - value: - oneOf: - - type: object - properties: - value: - type: boolean - nullable: true - - type: object - properties: - value: - type: number - nullable: true - - type: object - properties: - value: - type: integer - nullable: true - - type: object - properties: - value: - oneOf: - - type: string - maxLength: 200 - nullable: true - - type: array - items: + properties: + id: type: string - maxLength: 200 - maxItems: 10 - uniqueItems: true - nullable: true - - type: object - properties: - value: - type: string - nullable: true - format: date-time - - type: object - properties: - value: - oneOf: - - type: string - format: uri - maxLength: 200 - nullable: true - - type: array - items: + description: The id of the incident to update. + type: type: string - format: uri - maxLength: 200 - maxItems: 10 - uniqueItems: true - nullable: true - required: - - id - - type - - name - - value - - display_name - - datatype - - multi_value - - description - - fixed_options - CustomFieldsEditableFieldValue: - oneOf: - - type: object - properties: - name: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/name' - value: - oneOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/0' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/1' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/2' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/3' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/4' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/5' - - type: object - properties: - id: - type: string - description: The ID of the Field. - value: - oneOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/0' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/1' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/2' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/3' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/4' - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/5' - CustomFieldsIncidentSchema: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - self: - type: string - nullable: true - readOnly: true - format: url - description: The API show URL at which the object is accessible - type: - type: string - readOnly: true - enum: - - schema - title: - description: The name of the schema. - type: string - maxLength: 100 - description: - description: A description of this schema. - type: string - nullable: true - maxLength: 1000 - required: - - id - - type - - summary - - self - - type: object - properties: - field_configurations: - type: array - readOnly: true - items: - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldConfigurationWithFieldReference/allOf/0' - - type: object - properties: - field: - $ref: '#/components/schemas/CustomFieldsFieldWithOptions' - maxItems: 20 - uniqueItems: true - required: - - title - - description - CustomFieldsFieldConfigurationWithFieldReference: - allOf: - - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableFieldConfiguration' - - type: object - properties: - type: - type: string - enum: - - field_configuration - required: - - id - - type - - created_at - - updated_at - - field - - required - - type: object - properties: - field: - description: The Field to be included in this schema. Each Field may only be used in one Field Configuration per schema. - allOf: - - type: object - properties: - type: - type: string - description: 'A string that determines the type of the reference. This must be the standard name for the entity, suffixed by `_reference`.' - enum: - - field_reference - id: - type: string - description: The ID of the resource. - required: - - type - - id - CustomFieldsFieldWithOptions: - allOf: - - $ref: '#/components/schemas/CustomFieldsField' - - type: object - properties: - field_options: - type: array - description: The fixed list of value options that may be stored in this field. - items: - $ref: '#/components/schemas/CustomFieldsFieldOption' - nullable: true - CustomFieldsEditableFieldConfiguration: - type: object - properties: - default_value: - type: object - description: The value to use for this field if none is provided. It must be specified if `required` is `true`. - allOf: - - oneOf: - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/0' - - type: object - properties: - datatype: - type: string - enum: - - boolean - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/2' - - type: object - properties: - datatype: - type: string - enum: - - integer - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/1' - - type: object - properties: - datatype: - type: string - enum: - - float - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/3' - - type: object - properties: - datatype: - type: string - enum: - - string - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/4' - - type: object - properties: - datatype: - type: string - enum: - - datetime - required: - - datatype - - value - - allOf: - - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/value/oneOf/5' - - type: object - properties: - datatype: - type: string - enum: - - url - required: - - datatype - - value - - type: object - properties: - datatype: - type: string - enum: - - field_option - value: - oneOf: - - type: object - properties: - type: - type: string - enum: - - field_option_reference - id: - type: string - description: 'The ID of the field option. If value is not provided, an ID must be provided.' - value: - type: string - description: 'The value of the field option. If ID is not provided, an value must be provided.' - required: - - type - - id - - value - - type: array - items: - type: object + description: The incident type. + enum: + - incident + - incident_reference + status: + type: string + description: The new status of the incident. If the incident is currently resolved, setting the status to "triggered" or "acknowledged" will reopen it. When reopening an incident to the "triggered" status, it will be assigned based on the assignees or escalation_policy fields in the request, otherwise it will be assigned to the current Escalation Policy. When reopening an incident to the "acknowledged" status, it will be assigned to the current user. + enum: + - resolved + - acknowledged + - triggered + resolution: + type: string + description: | + The resolution for this incident. This field is used only when setting the incident status to resolved. + The value provided here is added to the incident’s 'Resolve' log entry as a note and will not be displayed directly in the UI. + title: + type: string + description: A succinct description of the nature, symptoms, cause, or effect of the incident. + priority: + description: The priority of the incident. Can be provided as a priority object or a string matching a priority name. If a string is provided, the highest priority with a matching name will be used. + oneOf: + - type: object properties: - type: - type: string - enum: - - field_option_reference id: type: string - description: 'The ID of the field option. If value is not provided, an ID must be provided.' - value: + description: The ID of the priority. + name: type: string - description: 'The value of the field option. If ID is not provided, an value must be provided.' + description: The user-provided short name of the priority. + type: + type: string + description: The type of the reference. + enum: + - priority + - priority_reference required: - - type - id - - value - maxItems: 10 - uniqueItems: true - nullable: true - required: - - datatype - - value - discriminator: - propertyName: datatype - mapping: - boolean: ./BooleanFieldValue.yaml - integer: ./IntegerFieldValue.yaml - float: ./FloatFieldValue.yaml - string: ./StringFieldValue.yaml - datetime: ./DatetimeFieldValue.yaml - url: ./UrlFieldValue.yaml - field_option: ./FieldOptionFieldValue.yaml - - type: object - properties: - multi_value: - type: boolean - description: 'If `true`, allows the custom field to store a set of values. Must match the Field''s `multi_value` setting.' - required: - - multi_value - id: - type: string - readOnly: true - description: The ID of the resource. - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - required: - description: 'If `true`, this Field must always have a value set for objects using this schema.' - type: boolean - CustomFieldsField: - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableField' - - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - self: - type: string - nullable: true - readOnly: true - format: url - description: The API show URL at which the object is accessible - type: - type: string - enum: - - field - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - datatype: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/datatype' - multi_value: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/multi_value' - fixed_options: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/fixed_options' - required: - - id - - summary - - self - - type - - created_at - - updated_at - - datatype - - namespace - - name - - display_name - - multi_value - - fixed_options - CustomFieldsFieldOption: - allOf: - - $ref: '#/components/schemas/CustomFieldsEditableFieldOption' - - type: object - required: - - id - - type - - data - - created_at - - updated_at - CustomFieldsEditableField: - type: object - properties: - display_name: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/display_name' - description: - $ref: '#/components/schemas/CustomFieldsFieldValue/properties/description' - CustomFieldsEditableFieldOption: - type: object - properties: - id: - type: string - readOnly: true - description: The ID of the resource. - type: - type: string - enum: - - field_option - created_at: - type: string - format: date-time - description: The date/time the object was created at. - readOnly: true - updated_at: - type: string - format: date-time - description: The date/time the object was last updated. - readOnly: true - data: - oneOf: - - type: object - properties: - datatype: - type: string - description: The kind of data represented by this option. Must match the Field's `datatype`. - enum: - - integer - value: - type: integer + - type + - type: string + description: A string matching the name of a priority. If provided, the highest priority with a matching name will be used. + escalation_level: + type: integer + description: Escalate the incident to this level in the escalation policy. + assignments: + type: array + description: Assign the incident to these assignees. + items: + properties: + assignee: + $ref: '#/components/schemas/UserReference' + type: object + incident_type: + $ref: '#/components/schemas/IncidentTypeReference' + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + urgency: + type: string + description: The urgency of the incident. + enum: + - high + - low + conference_bridge: + $ref: '#/components/schemas/ConferenceBridge' + required: + - id + - type + type: object required: - - datatype - - value - - type: object - properties: - datatype: - type: string - description: The kind of data represented by this option. Must match the Field's `datatype`. - enum: - - float + - incidents + examples: + incidents: + summary: Request Example value: - type: number - required: - - datatype - - value - - type: object + incidents: + - id: PT4KHLK + type: incident_reference + status: acknowledged + - id: PQMF62U + type: incident_reference + priority: + id: P53ZZH5 + type: priority_reference + - id: PPVZH9X + type: incident_reference + status: resolved + - id: P8JOGX7 + type: incident_reference + assignments: + - assignee: + id: PXPGF42 + type: user_reference + - id: PYJ9K7I + type: incident_reference + incident_type: + name: major_incident + responses: + '200': + description: All of the updates succeeded. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + incidents: + type: array + items: + $ref: '#/components/schemas/Incident' + required: + - incidents + examples: + response: + summary: Response Example + value: + incidents: + - id: PT4KHLK + type: incident + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 + created_at: '2015-10-06T21:30:42Z' + updated_at: '2015-10-06T21:40:23Z' + status: resolved + title: The server is on fire. + alert_counts: + all: 2 + triggered: 0 + resolved: 2 + pending_actions: + - type: unacknowledge + at: '2015-11-10T01:02:52Z' + - type: resolve + at: '2015-11-10T04:31:52Z' + incident_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + assigned_via: escalation_policy + assignments: + - at: '2015-11-10T00:31:52Z' + assignee: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + acknowledgements: + - at: '2015-11-10T00:32:52Z' + acknowledger: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + resolved_at: '2015-10-06T21:38:23Z' + last_status_change_at: '2015-10-06T21:38:23Z' + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + incident_type: + name: major_incident + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + urgency: high + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '413': + $ref: '#/components/responses/RequestEntityTooLarge' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: incidents.write + x-pd-operation-limit: true + tags: + - Incidents + operationId: createIncident + description: | + Create an incident synchronously without a corresponding event from a monitoring service. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.write` + + This API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information. + summary: Create an Incident + parameters: + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object properties: - datatype: - type: string - description: The kind of data represented by this option. Must match the Field's `datatype`. - enum: - - string - value: - type: string - maxLength: 200 - required: - - datatype - - value - discriminator: - propertyName: datatype - mapping: - integer: ./IntegerFixedOptionValue.yaml - float: ./FloatFixedOptionValue.yaml - string: ./StringFixedOptionValue.yaml - required: - - id - - type - - created_at - - updated_at - description: '' - AcknowledgeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - acknowledgement_timeout: - type: integer - description: 'Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set.' - type: - type: string - enum: - - acknowledgement_log_entry - AnnotateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - annotate_log_entry - AssignLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - assign_log_entry - DelegateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - delegate_log_entry - EscalateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - escalate_log_entry - ExhaustEscalationPathLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - exhaust_escalation_path_log_entry - NotifyLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - created_at: - type: string - format: date-time - readOnly: true - description: Time at which the log entry was created - user: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - notify_log_entry - ReachAckLimitLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - reach_ack_limit_log_entry - ReachTriggerLimitLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - reach_trigger_limit_log_entry - RepeatEscalationPathLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - repeat_escalation_path_log_entry - ResolveLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - resolve_log_entry - SnoozeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - changed_actions: - type: array - items: - $ref: '#/components/schemas/IncidentAction' - type: - type: string - enum: - - snooze_log_entry - TriggerLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - trigger_log_entry - UnacknowledgeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - unacknowledge_log_entry - UrgencyChangeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - urgency_change_log_entry - LogEntry: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - acknowledge_log_entry - - annotate_log_entry - - assign_log_entry - - delegate_log_entry - - escalate_log_entry - - exhaust_escalation_path_log_entry - - notify_log_entry - - reach_ack_limit_log_entry - - reach_trigger_limit_log_entry - - repeat_escalation_path_log_entry - - resolve_log_entry - - snooze_log_entry - - trigger_log_entry - - unacknowledge_log_entry - - urgency_change_log_entry - created_at: - type: string - format: date-time - readOnly: true - description: Time at which the log entry was created. - channel: - $ref: '#/components/schemas/Channel' - agent: - $ref: '#/components/schemas/AgentReference' - note: - type: string - readOnly: true - description: 'Optional field containing a note, if one was included with the log entry.' - contexts: - type: array - readOnly: true - description: Contexts to be included with the trigger such as links to graphs or images. - items: - $ref: '#/components/schemas/Context' - service: - $ref: '#/components/schemas/ServiceReference' - incident: - $ref: '#/components/schemas/IncidentReference' - teams: - type: array - readOnly: true - description: Will consist of references unless included - items: - $ref: '#/components/schemas/TeamReference' - event_details: - type: object - readOnly: true - properties: - description: - type: string - description: Additional details about the event. - Channel: - type: object - description: 'Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`. See [below](https://developer.pagerduty.com/documentation/rest/log_entries/show#channel_types) for detailed information about channel formats.' - properties: - type: - type: string - description: type - user: - type: object - team: - type: object - notification: - $ref: '#/components/schemas/Notification' - channel: - type: object - description: channel - required: - - type - Notification: - type: object - properties: - id: - type: string - readOnly: true - type: - type: string - description: The type of notification. - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - readOnly: true - started_at: - type: string - format: date-time - description: The time at which the notification was sent - readOnly: true - address: - type: string - description: The address where the notification was sent. This will be null for notification type `push_notification`. - readOnly: true - user: - $ref: '#/components/schemas/UserReference' - conferenceAddress: - type: string - description: The address of the conference bridge - status: - type: string - '': - type: string - IncidentNote: - type: object - properties: - id: - type: string - readOnly: true - user: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - description: The user who created a Note. If a service created this Note the `user.type` will be "bot_user_reference" and `user.summary` will list the name of the service rather than the user. - properties: - type: - type: string - enum: - - user_reference - - bot_user_reference - channel: - type: object - readOnly: true - description: The means by which this Note was created. Has different formats depending on type. - properties: - summary: - type: string - description: A string describing the source of the Note. - readOnly: true - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - html_url: - type: string - format: url - description: a URL at which the entity is uniquely displayed in the Web app - readOnly: true - required: - - summary - content: - type: string - description: The note content - created_at: - type: string - format: date-time - description: The time at which the note was submitted - readOnly: true - required: - - content - example: - content: Firefighters are on the scene. - RelatedIncidentMachineLearningRelationship: - type: object - description: | - The data for a type of relationship where the Incident is related due to our machine learning algorithm. - properties: - grouping_classification: - type: string - description: | - The classification for why this Related Incident was grouped into this group. - Values can be one of: [similar_contents, prior_feedback], where: - similar_contents - The Related Incident was due to similar contents of the Incidents. - prior_feedback - The Related Incident was determined to be related, based on User feedback or Incident merge/unmerge actions. - enum: - - similar_contents - - prior_feedback - user_feedback: - type: object - description: The feedback provided from Users to influence the machine learning algorithm for future Related Incidents. - properties: - positive_feedback_count: - type: integer - description: The total number of times Users agreed that the Incidents are related. - negative_feedback_count: - type: integer - description: The total number of times Users disagreed that the Incidents are related. - RelatedIncidentServiceDependencyRelationship: - type: object - description: | - The data for a type of relationship where the Incident is related due to Business or Technical Service dependencies. - - Both `dependent_services` and `supporting_services` are returned to signify the dependencies between the Services - that the Incident and Related Incident belong to. - - Each Service reference returned in the list of supporting and dependent Services has a type of: - [business_service_reference, technical_service_reference]. - properties: - dependent_services: - type: array - items: - $ref: '#/components/schemas/RelatedIncidentServiceDependencyBase' - supporting_services: - type: array - items: - $ref: '#/components/schemas/RelatedIncidentServiceDependencyBase' - RelatedIncidentServiceDependencyBase: - type: object - properties: - id: - type: string - description: The ID of the Service referenced. - readOnly: true - type: - type: string - description: The type of the related Service. - enum: - - business_service_reference - - technical_service_reference - self: - type: string - nullable: true - readOnly: true - format: url - description: The API show URL at which the object is accessible. - StatusUpdate: - type: object - properties: - id: - type: string - message: - type: string - description: The message of the status update. - created_at: - type: string - description: The date/time when this status update was created. - sender: - $ref: '#/components/schemas/UserReference' - subject: - type: string - description: The subject of the custom html email status update. Present if included in request body. - html_message: - type: string - description: The html content of the custom html email status update. Present if included in request body. - NotificationSubscriberWithContext: - title: NotificationSubscriberWithContext - description: A reference of a subscriber entity with additional subscription context. - type: object - example: - subscriber_id: PD1234 - subscriber_type: user - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - description: The type of the entity being subscribed - enum: - - user - - team - has_indirect_subscription: - type: boolean - description: If this subcriber has an indirect subscription to this incident via another object - subscribed_via: - nullable: true - type: array - items: - type: object - properties: - id: - type: string - description: The id of the object this subscriber is subscribed via - name: - type: string - description: The type of the object this subscriber is subscribed via - NotificationSubscriptionWithContext: - title: NotificationSubscriptionWithContext - type: object - description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. - x-examples: - example-1: - subscriber_id: string - subscriber_type: user - subscribable_id: string - subscribable_type: incident - account_id: string - result: success - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - enum: - - user - - team - description: The type of the entity being subscribed - subscribable_id: - type: string - description: The ID of the entity being subscribed to - subscribable_type: - type: string - enum: - - incident - - business_service - description: The type of the entity being subscribed to - account_id: - type: string - description: The type of the entity being subscribed to - result: - type: string - enum: - - success - - duplicate - - unauthorized - description: The resulting status of the subscription - NotificationSubscriber: - title: NotificationSubscriber - description: A reference of a subscriber entity. - type: object - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - description: The type of the entity being subscribed - enum: - - user - - team - example: - subscriber_id: PD1234 - subscriber_type: user - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - RequestEntityTooLarge: - description: Caller provided a request that is too large to process. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - UnprocessableEntity: - description: Unprocessable Entity. Some arguments failed validation checks. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - incidents: - id: pagerduty.incidents.incidents - name: incidents - title: Incidents - methods: - list_incidents: - operation: - $ref: '#/paths/~1incidents/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.incidents - _list_incidents: - operation: - $ref: '#/paths/~1incidents/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_incidents: - operation: - $ref: '#/paths/~1incidents/put' - response: - mediaType: application/json - openAPIDocKey: '200' - create_incident: - operation: - $ref: '#/paths/~1incidents/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_incident: - operation: - $ref: '#/paths/~1incidents~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.incident - _get_incident: - operation: - $ref: '#/paths/~1incidents~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_incident: - operation: - $ref: '#/paths/~1incidents~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - merge_incidents: - operation: - $ref: '#/paths/~1incidents~1{id}~1merge/put' - response: - mediaType: application/json - openAPIDocKey: '200' - create_incident_responder_request: - operation: - $ref: '#/paths/~1incidents~1{id}~1responder_requests/post' - response: - mediaType: application/json - openAPIDocKey: '200' - create_incident_snooze: - operation: - $ref: '#/paths/~1incidents~1{id}~1snooze/post' - response: - mediaType: application/json - openAPIDocKey: '201' - create_incident_status_update: - operation: - $ref: '#/paths/~1incidents~1{id}~1status_updates/post' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_incident_notification_subscribers: - operation: - $ref: '#/paths/~1incidents~1{id}~1status_updates~1unsubscribe/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/incidents/methods/get_incident' - - $ref: '#/components/x-stackQL-resources/incidents/methods/list_incidents' - insert: - - $ref: '#/components/x-stackQL-resources/incidents/methods/create_incident' - update: [] - delete: [] - alerts: - id: pagerduty.incidents.alerts - name: alerts - title: Alerts - methods: - list_incident_alerts: - operation: - $ref: '#/paths/~1incidents~1{id}~1alerts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.alerts - _list_incident_alerts: - operation: - $ref: '#/paths/~1incidents~1{id}~1alerts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_incident_alerts: - operation: - $ref: '#/paths/~1incidents~1{id}~1alerts/put' - response: - mediaType: application/json - openAPIDocKey: '200' - get_incident_alert: - operation: - $ref: '#/paths/~1incidents~1{id}~1alerts~1{alert_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.alert - _get_incident_alert: - operation: - $ref: '#/paths/~1incidents~1{id}~1alerts~1{alert_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_incident_alert: - operation: - $ref: '#/paths/~1incidents~1{id}~1alerts~1{alert_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/alerts/methods/get_incident_alert' - - $ref: '#/components/x-stackQL-resources/alerts/methods/list_incident_alerts' - insert: [] - update: [] - delete: [] - business_services_impacts: - id: pagerduty.incidents.business_services_impacts - name: business_services_impacts - title: Business Services Impacts - methods: - put_incident_manual_business_service_association: - operation: - $ref: '#/paths/~1incidents~1{id}~1business_services~1{business_service_id}~1impacts/put' - response: - mediaType: application/json - openAPIDocKey: '200' - get_incident_impacted_business_services: - operation: - $ref: '#/paths/~1incidents~1{id}~1business_services~1impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.services - _get_incident_impacted_business_services: - operation: - $ref: '#/paths/~1incidents~1{id}~1business_services~1impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/business_services_impacts/methods/get_incident_impacted_business_services' - insert: [] - update: [] - delete: [] - field_values: - id: pagerduty.incidents.field_values - name: field_values - title: Field Values - methods: - get_incident_field_values: - operation: - $ref: '#/paths/~1incidents~1{id}~1field_values/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.field_values - _get_incident_field_values: - operation: - $ref: '#/paths/~1incidents~1{id}~1field_values/get' - response: - mediaType: application/json - openAPIDocKey: '200' - set_incident_field_values: - operation: - $ref: '#/paths/~1incidents~1{id}~1field_values/put' - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/field_values/methods/get_incident_field_values' - insert: [] - update: [] - delete: [] - field_values_schema: - id: pagerduty.incidents.field_values_schema - name: field_values_schema - title: Field Values Schema - methods: - get_schema_for_incident: - operation: - $ref: '#/paths/~1incidents~1{id}~1field_values~1schema/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schema - _get_schema_for_incident: - operation: - $ref: '#/paths/~1incidents~1{id}~1field_values~1schema/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/field_values_schema/methods/get_schema_for_incident' - insert: [] - update: [] - delete: [] - log_entries: - id: pagerduty.incidents.log_entries - name: log_entries - title: Log Entries - methods: - list_incident_log_entries: - operation: - $ref: '#/paths/~1incidents~1{id}~1log_entries/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.log_entries - _list_incident_log_entries: - operation: - $ref: '#/paths/~1incidents~1{id}~1log_entries/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/log_entries/methods/list_incident_log_entries' - insert: [] - update: [] - delete: [] - notes: - id: pagerduty.incidents.notes - name: notes - title: Notes - methods: - list_incident_notes: - operation: - $ref: '#/paths/~1incidents~1{id}~1notes/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.notes - _list_incident_notes: - operation: - $ref: '#/paths/~1incidents~1{id}~1notes/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_incident_note: - operation: - $ref: '#/paths/~1incidents~1{id}~1notes/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/notes/methods/list_incident_notes' - insert: - - $ref: '#/components/x-stackQL-resources/notes/methods/create_incident_note' - update: [] - delete: [] - outlier_incident: - id: pagerduty.incidents.outlier_incident - name: outlier_incident - title: Outlier Incident - methods: - get_outlier_incident: - operation: - $ref: '#/paths/~1incidents~1{id}~1outlier_incident/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.outlier_incident - _get_outlier_incident: - operation: - $ref: '#/paths/~1incidents~1{id}~1outlier_incident/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/outlier_incident/methods/get_outlier_incident' - insert: [] - update: [] - delete: [] - past_incidents: - id: pagerduty.incidents.past_incidents - name: past_incidents - title: Past Incidents - methods: - get_past_incidents: - operation: - $ref: '#/paths/~1incidents~1{id}~1past_incidents/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.past_incidents - _get_past_incidents: - operation: - $ref: '#/paths/~1incidents~1{id}~1past_incidents/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/past_incidents/methods/get_past_incidents' - insert: [] - update: [] - delete: [] - related_incidents: - id: pagerduty.incidents.related_incidents - name: related_incidents - title: Related Incidents - methods: - get_related_incidents: - operation: - $ref: '#/paths/~1incidents~1{id}~1related_incidents/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.related_incidents - _get_related_incidents: - operation: - $ref: '#/paths/~1incidents~1{id}~1related_incidents/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/related_incidents/methods/get_related_incidents' - insert: [] - update: [] - delete: [] - status_updates_subscribers: - id: pagerduty.incidents.status_updates_subscribers - name: status_updates_subscribers - title: Status Updates Subscribers - methods: - get_incident_notification_subscribers: - operation: - $ref: '#/paths/~1incidents~1{id}~1status_updates~1subscribers/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.subscribers - _get_incident_notification_subscribers: - operation: - $ref: '#/paths/~1incidents~1{id}~1status_updates~1subscribers/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_incident_notification_subscribers: - operation: - $ref: '#/paths/~1incidents~1{id}~1status_updates~1subscribers/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/status_updates_subscribers/methods/get_incident_notification_subscribers' - insert: - - $ref: '#/components/x-stackQL-resources/status_updates_subscribers/methods/create_incident_notification_subscribers' - update: [] - delete: [] -paths: - /incidents: + incident: + type: object + description: Details of the incident to be created. + properties: + type: + type: string + enum: + - incident + title: + type: string + description: A succinct description of the nature, symptoms, cause, or effect of the incident. + service: + $ref: '#/components/schemas/ServiceReference' + priority: + $ref: '#/components/schemas/PriorityReference' + urgency: + type: string + description: The urgency of the incident + enum: + - high + - low + body: + $ref: '#/components/schemas/IncidentBody' + incident_key: + type: string + description: A string which identifies the incident. Sending subsequent requests referencing the same service and with the same incident_key will result in those requests being rejected if an open incident matches that incident_key. + assignments: + type: array + description: Assign the incident to these assignees. Cannot be specified if an escalation policy is given. + items: + properties: + assignee: + $ref: '#/components/schemas/UserReference' + type: object + incident_type: + $ref: '#/components/schemas/IncidentTypeReference' + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + conference_bridge: + $ref: '#/components/schemas/ConferenceBridge' + required: + - type + - title + - service + required: + - incident + examples: + request: + summary: Request Example + value: + incident: + type: incident + title: The server is on fire. + service: + id: PWIXJZS + type: service_reference + priority: + id: P53ZZH5 + type: priority_reference + urgency: high + incident_key: baf7cf21b1da41b4b0221008339ff357 + body: + type: incident_body + details: A disk is getting full on this machine. You should investigate what is causing the disk to fill, and ensure that there is an automated process in place for ensuring data is rotated (eg. logs should have logrotate around them). If data is expected to stay on this disk forever, you should start planning to scale up to a larger disk. + incident_type: + name: major_incident + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + responses: + '201': + description: The incident object created. + content: + application/json: + schema: + type: object + properties: + incident: + $ref: '#/components/schemas/Incident' + required: + - incident + examples: + response: + summary: Response Example + value: + incident: + id: PT4KHLK + type: incident + title: The server is on fire. + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 + created_at: '2015-10-06T21:30:42Z' + updated_at: '2015-10-06T21:40:23Z' + status: triggered + incident_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PWIXJZS + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PWIXJZS + html_url: https://subdomain.pagerduty.com/service-directory/PWIXJZS + priority: + id: P53ZZH5 + type: priority_reference + summary: P2 + self: https://api.pagerduty.com/priorities/P53ZZH5 + assigned_via: escalation_policy + assignments: + - at: '2015-11-10T00:31:52Z' + assignee: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + resolved_at: null + last_status_change_at: '2015-10-06T21:38:23Z' + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + incident_type: + name: major_incident + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + urgency: high + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and update incidents. + /incidents/{id}: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: getIncident + description: | + Show detailed information about an incident. Accepts either an incident id, or an incident number. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.read` + summary: Get an incident + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_incident' + responses: + '200': + description: The incident requested. + content: + application/json: + schema: + type: object + properties: + incident: + $ref: '#/components/schemas/Incident' + required: + - incident + examples: + response: + summary: Response Example + value: + incident: + id: PT4KHLK + type: incident + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 + title: The server is on fire. + created_at: '2015-10-06T21:30:42Z' + updated_at: '2015-10-06T21:40:23Z' + status: acknowledged + incident_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + assignments: + - at: '2015-11-10T00:31:52Z' + assignee: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + assigned_via: escalation_policy + last_status_change_at: '2015-10-06T21:38:23Z' + resolved_at: null + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + alert_counts: + all: 2 + triggered: 1 + resolved: 1 + is_mergeable: true + incident_type: + name: incident_default + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + pending_actions: + - type: unacknowledge + at: '2015-11-10T01:02:52Z' + - type: resolve + at: '2015-11-10T04:31:52Z' + acknowledgements: + - at: '2015-11-10T00:32:52Z' + acknowledger: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + alert_grouping: + grouping_type: advanced + started_at: '2015-10-06T21:30:42Z' + ended_at: null + alert_grouping_active: true + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + priority: + id: P53ZZH5 + type: priority_reference + summary: P2 + self: https://api.pagerduty.com/priorities/P53ZZH5 + resolve_reason: null + conference_bridge: + conference_number: +1-415-555-1212,,,,1234# + conference_url: https://example.com/acb-123 + incidents_responders: + - state: pending + user: + id: PL7A2O4 + type: user_reference + summary: Lee Turner + self: https://api.pagerduty.com/users/PL7A2O4 + html_url: https://subdomain.pagerduty.com/users/PL7A2O4 + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + incident: + id: PXP12GZ + type: incident_reference + summary: Ongoing Incident in Mailroom + self: https://api.pagerduty.com/incidents/PXP12GZ + html_url: https://subdomain.pagerduty.com/incidents/PXP12GZ + updated_at: '2018-08-09T14:40:48-07:00' + message: Please help with issue - join bridge at +1(234)-567-8910 + requester: + id: P09TT3C + type: user_reference + summary: Jane Doe + self: https://api.pagerduty.com/users/P09TT3C + html_url: https://subdomain.pagerduty.com/users/P09TT3C + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + requested_at: '2018-08-09T21:40:49Z' + responder_requests: + - incident: + id: PXP12GZ + type: incident_reference + summary: Ongoing Incident in Mailroom + self: https://api.pagerduty.com/incidents/PXP12GZ + html_url: https://subdomain.pagerduty.com/incidents/PXP12GZ + requester: + id: P09TT3C + type: user_reference + summary: Jane Doe + self: https://api.pagerduty.com/users/P09TT3C + html_url: https://subdomain.pagerduty.com/users/P09TT3C + requested_at: '2018-08-16T14:55:17-07:00' + message: Please help with issue - join bridge at +1(234)-567-8910 + responder_request_targets: + - responder_request_target: + type: user + id: PL7A2O4 + incidents_responders: + - state: pending + user: + id: PL7A2O4 + type: user_reference + summary: Lee Turner + self: https://api.pagerduty.com/users/PL7A2O4 + html_url: https://subdomain.pagerduty.com/users/PL7A2O4 + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + incident: + id: PXP12GZ + type: incident_reference + summary: Ongoing Incident in Mailroom + self: https://api.pagerduty.com/incidents/PXP12GZ + html_url: https://subdomain.pagerduty.com/incidents/PXP12GZ + updated_at: '2018-08-09T14:40:48-07:00' + message: Please help with issue - join bridge at +1(234)-567-8910 + requester: + id: P09TT3C + type: user_reference + summary: Jane Doe + self: https://api.pagerduty.com/users/P09TT3C + html_url: https://subdomain.pagerduty.com/users/P09TT3C + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + requested_at: '2018-08-09T21:40:49Z' + urgency: high + custom_fields: + - id: PT4KHEE + type: field_value + name: environment + display_name: Runtime Environment + description: environment where incident occurred + data_type: string + field_type: single_value_fixed + value: production + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: incidents.write + tags: + - Incidents + operationId: updateIncident + description: | + Acknowledge, resolve, escalate or reassign an incident. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.write` + summary: Update an incident + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + incident: + type: object + description: The parameters of the incident to update. + properties: + type: + type: string + description: The incident type. + enum: + - incident + - incident_reference + status: + type: string + description: The new status of the incident. If the incident is currently resolved, setting the status to "triggered" or "acknowledged" will reopen it. When reopening an incident to the "triggered" status, it will be assigned based on the assignees or escalation_policy fields in the request, otherwise it will be assigned to the current Escalation Policy. When reopening an incident to the "acknowledged" status, it will be assigned to the current user. + enum: + - resolved + - acknowledged + - triggered + priority: + description: The priority of the incident. Can be provided as a priority object or a string matching a priority name. If a string is provided, the highest priority with a matching name will be used. + oneOf: + - type: object + properties: + id: + type: string + description: The ID of the priority. + name: + type: string + description: The user-provided short name of the priority. + type: + type: string + description: The type of the reference. + enum: + - priority + - priority_reference + required: + - id + - type + - type: string + description: A string matching the name of a priority. If provided, the highest priority with a matching name will be used. + resolution: + type: string + description: | + The resolution for this incident. This field is used only when setting the incident status to resolved. + The value provided here is added to the incident’s 'Resolve' log entry as a note and will not be displayed directly in the UI. + title: + type: string + description: The new title of the incident. + escalation_level: + type: integer + description: Escalate the incident to this level in the escalation policy. + assignments: + type: array + description: Assign the incident to these assignees. + items: + properties: + assignee: + $ref: '#/components/schemas/UserReference' + type: object + incident_type: + $ref: '#/components/schemas/IncidentTypeReference' + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + urgency: + type: string + description: The urgency of the incident. + enum: + - high + - low + conference_bridge: + $ref: '#/components/schemas/ConferenceBridge' + service: + type: object + description: Assign the incident to this service. + properties: + id: + type: string + description: The ID of the service. + type: + type: string + description: The type of the reference. + enum: + - service_reference + required: + - id + - type + required: + - type + required: + - incident + examples: + request: + summary: Request Example + value: + incident: + type: incident_reference + status: acknowledged + responses: + '200': + description: The incident was updated. + content: + application/json: + schema: + type: object + properties: + incident: + $ref: '#/components/schemas/Incident' + required: + - incident + examples: + response: + summary: Response Example + value: + incident: + id: PT4KHLK + type: incident + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 + created_at: '2015-10-06T21:30:42Z' + updated_at: '2015-10-06T21:40:23Z' + status: resolved + title: The server is on fire. + pending_actions: + - type: unacknowledge + at: '2015-11-10T01:02:52Z' + - type: resolve + at: '2015-11-10T04:31:52Z' + incident_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + priority: + id: P53ZZH5 + type: priority_reference + summary: P2 + self: https://api.pagerduty.com/priorities/P53ZZH5 + assigned_via: escalation_policy + assignments: + - at: '2015-11-10T00:31:52Z' + assignee: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + acknowledgements: + - at: '2015-11-10T00:32:52Z' + acknowledger: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + resolved_at: '2015-10-06T21:38:23Z' + last_status_change_at: '2015-10-06T21:38:23Z' + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + incident_type: + name: major_incident + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + urgency: high + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get an incident. + /incidents/{id}/alerts: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: listIncidentAlerts + description: | + List alerts for the specified incident. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.read` + summary: List alerts for an incident + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/alert_key' + - $ref: '#/components/parameters/statuses_incident_alerts' + - $ref: '#/components/parameters/sort_by_incident_alerts' + - $ref: '#/components/parameters/include_incident_alerts' + responses: + '200': + description: A paginated array of the incident's alerts. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + alerts: + type: array + items: + $ref: '#/components/schemas/Alert' + required: + - alerts + examples: + response: + summary: Response Example + value: + alerts: + - id: PT4KHLK + type: alert + summary: The server is on fire. + self: https://api.pagerduty.com/incidents/PT4KHLK/alerts/PXPGF42 + html_url: https://subdomain.pagerduty.com/alerts/PXPGF42 + created_at: '2015-10-06T21:30:42Z' + status: resolved + alert_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + body: + type: alert_body + contexts: + - type: link + details: + customKey: Server is on fire! + customKey2: Other stuff! + incident: + id: PT4KHLK + type: incident_reference + suppressed: false + severity: critical + integration: + id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + limit: 1 + offset: 0 + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: incidents.write + tags: + - Incidents + operationId: updateIncidentAlerts + description: | + Resolve multiple alerts or associate them with different incidents. + + An incident represents a problem or an issue that needs to be addressed and resolved. An alert represents a digital signal that was emitted to PagerDuty by the monitoring systems that detected or identified the issue. + + A maximum of 250 alerts may be updated at a time. If more than this number of alerts are given, the API will respond with status 413 (Request Entity Too Large). + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.write` + summary: Manage alerts + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + alerts: + type: array + description: An array of alerts, including the parameters to update for each alert. + items: + $ref: '#/components/schemas/AlertUpdate' + required: + - alerts + examples: + request: + summary: Request Example + value: + alerts: + - id: PPVZH9X + type: alert + status: resolved + - id: P8JOGX7 + type: alert + incident: + id: PPVZH9X + type: incident_reference + responses: + '200': + description: All of the updates succeeded. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + alerts: + type: array + items: + $ref: '#/components/schemas/Alert' + required: + - alerts + examples: + response: + summary: Response Example + value: + alerts: + - id: PT4KHLK + type: alert + summary: The server is on fire. + self: https://api.pagerduty.com/incidents/PT4KHLK/alerts/PXPGF42 + html_url: https://subdomain.pagerduty.com/alerts/PXPGF42 + created_at: '2015-10-06T21:30:42Z' + status: resolved + alert_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + body: + type: alert_body + contexts: + - type: link + details: + customKey: Server is on fire! + customKey2: Other stuff! + incident: + id: PPVZH9X + type: incident_reference + suppressed: false + severity: critical + limit: 1 + offset: 0 + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '413': + $ref: '#/components/responses/RequestEntityTooLarge' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and update alerts. + /incidents/{id}/alerts/{alert_id}: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: getIncidentAlert + description: | + Show detailed information about an alert. Accepts an alert id. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + When a service sends an event to PagerDuty, an alert and corresponding incident is triggered in PagerDuty. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.read` + summary: Get an alert + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/alert_id' + responses: + '200': + description: The alert requested. + content: + application/json: + schema: + type: object + properties: + alert: + $ref: '#/components/schemas/Alert' + required: + - alert + examples: + response: + summary: Response Example + value: + alert: + id: PT4KHLK + type: alert + summary: The server is on fire. + self: https://api.pagerduty.com/incident/PT4KHLX/alerts/PT4KHLK + html_url: https://subdomain.pagerduty.com/alerts/PT4KHLK + created_at: '2015-10-06T21:30:42Z' + status: resolved + alert_key: baf7cf21b1da41b4b0221008339ff357 + service: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + incident: + id: PT4KHLX + type: incident_reference + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLX + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLX + suppressed: false + severity: critical + integration: + id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: incidents.write + tags: + - Incidents + operationId: updateIncidentAlert + description: | + Resolve an alert or associate an alert with a new parent incident. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + When a service sends an event to PagerDuty, an alert and corresponding incident is triggered in PagerDuty. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.write` + summary: Update an alert + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/alert_id' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + alert: + $ref: '#/components/schemas/AlertUpdate' + required: + - alert + examples: + request: + summary: Request Example + value: + alert: + type: alert + status: resolved + incident: + id: PEYSGVF + type: incident_reference + description: The parameters of the alert to update. + responses: + '200': + description: The alert that was updated. + content: + application/json: + schema: + type: object + properties: + alert: + $ref: '#/components/schemas/Alert' + required: + - alert + examples: + request: + summary: Request Example + value: + alert: + type: alert + status: resolved + incident: + id: PEYSGVF + type: incident_reference + body: + type: alert_body + contexts: + - type: link + details: + customKey: Server is on fire! + customKey2: Other stuff! + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get an alert. + /incidents/{id}/business_services/{business_service_id}/impacts: + put: + x-pd-requires-scope: incidents.write + summary: Manually change an Incident's Impact on a Business Service. + tags: + - Incidents + responses: + '200': + description: OK + content: + application/json: + schema: + description: '' + type: object + properties: + relation: + type: string + enum: + - impacted + - not_impacted + examples: + response: + summary: Response Example + value: + relation: impacted + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + operationId: putIncidentManualBusinessServiceAssociation + description: | + Change Impact of an Incident on a Business Service. + Scoped OAuth requires: `incidents.write` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/business_service_id' + requestBody: + content: + application/json: + schema: + description: '' + type: object + properties: + relation: + type: string + enum: + - impacted + - not_impacted + required: + - relation + description: |- + The `impacted` relation will cause the Business Service and any Services that it supports to become impacted by this incident. + + The `not_impacted` relation will remove the Incident's Impact from the specified Business Service. + + The effect of adding or removing Impact to a Business Service in this way will also change the propagation of Impact to other Services supported by that Business Service. + /incidents/{id}/business_services/impacts: + get: + x-pd-requires-scope: incidents.read + summary: List Business Services impacted by the given Incident + tags: + - Incidents + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + services: + type: array + items: + $ref: '#/components/schemas/Impact' + required: + - limit + - next_cursor + examples: + response: + summary: Response Example + value: + limit: 100 + next_cursor: null + services: + - id: PD1234 + name: Web API + type: business_service + status: impacted + - id: PF9KMXH + name: Analytics Backend + type: business_service + status: impacted + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + operationId: getIncidentImpactedBusinessServices + description: | + Retrieve a list of Business Services that are being impacted by the given Incident. + Scoped OAuth requires: `incidents.read` + parameters: + - $ref: '#/components/parameters/id' + /incidents/{id}/custom_fields/values: get: + tags: + - Incidents x-pd-requires-scope: incidents.read + operationId: getIncidentFieldValues + description: | + Get custom field values for an incident. + + + + Scoped OAuth requires: `incidents.read` + summary: Get Custom Field Values + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The list of custom field values. + content: + application/json: + schema: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/CustomFieldsFieldValue' + required: + - custom_fields + examples: + single_value_example: + summary: Response Example + value: + custom_fields: + - id: PT4KHEE + type: field_value + name: environment + display_name: Runtime Environment + description: environment where incident occurred + data_type: string + field_type: single_value_fixed + value: production + multi_value_example: + summary: Response Example + value: + custom_fields: + - id: PT4KHEE + type: field_value + name: environment + display_name: Runtime Environment + description: environment where incident occurred + data_type: string + field_type: multi_value_fixed + value: + - production + - staging + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: tags: - Incidents - operationId: listIncidents + x-pd-requires-scope: incidents.write + operationId: setIncidentFieldValues description: | - List existing incidents. + Set custom field values for an incident. + + Scoped OAuth requires: `incidents.write` + summary: Update Custom Field Values + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + custom_fields: + type: array + title: Array of Custom Field Values + items: + $ref: '#/components/schemas/CustomFieldsEditableFieldValue' + required: + - custom_fields + examples: + example_with_custom_field_name: + summary: Request Example + value: + custom_fields: + - name: environment + value: production + example_with_custom_field_id: + summary: Request Example + value: + custom_fields: + - id: PT4KHEE + value: production + example_with_multiple_value_field: + summary: Request Example + value: + custom_fields: + - id: PT4KHEE + value: + - production + - staging + responses: + '201': + description: Custom field values were updated. + content: + application/json: + schema: + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/CustomFieldsFieldValue' + required: + - custom_fields + examples: + single_value_example: + summary: Response Example + value: + custom_fields: + - id: PT4KHEE + type: field_value + name: environment + display_name: Runtime Environment + description: environment where incident occurred + data_type: string + field_type: single_value_fixed + value: production + multi_value_example: + summary: Response Example + value: + custom_fields: + - id: PT4KHEE + type: field_value + name: environment + display_name: Runtime Environment + description: environment where incident occurred + data_type: string + field_type: single_value_fixed + value: production + response3: + summary: Response Example + value: + custom_fields: + - id: PT4KHEE + type: field_value + name: environment + display_name: Runtime Environment + description: environment where incident occurred + data_type: string + field_type: multi_value_fixed + value: + - production + - staging + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Retrieve and update incident custom fields. + /incidents/{id}/log_entries: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: listIncidentLogEntries + description: | + List log entries for the specified incident. An incident represents a problem or an issue that needs to be addressed and resolved. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + A Log Entry are a record of all events on your account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.read` - summary: List incidents + summary: List log entries for an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/offset_limit' - $ref: '#/components/parameters/offset_offset' - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/date_range' - - $ref: '#/components/parameters/incident_key' - - $ref: '#/components/parameters/incident_services' - - $ref: '#/components/parameters/team_ids' - - $ref: '#/components/parameters/incident_assigned_to_user' - - $ref: '#/components/parameters/incident_urgencies' + - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/statuses_incidents' - - $ref: '#/components/parameters/sort_by_incidents' - - $ref: '#/components/parameters/include_incidents' - - $ref: '#/components/parameters/since_incidents' - - $ref: '#/components/parameters/until_incidents' + - $ref: '#/components/parameters/since' + - $ref: '#/components/parameters/until' + - $ref: '#/components/parameters/log_entry_is_overview' + - $ref: '#/components/parameters/include_log_entry' responses: '200': - description: A paginated array of incidents. + description: A paginated array of the incident's log entries. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - incidents: - type: array - items: - $ref: '#/components/schemas/Incident' - required: - - incidents + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + log_entries: + type: array + items: + oneOf: + - $ref: '#/components/schemas/AcknowledgeLogEntry' + - $ref: '#/components/schemas/AnnotateLogEntry' + - $ref: '#/components/schemas/AssignLogEntry' + - $ref: '#/components/schemas/DelegateLogEntry' + - $ref: '#/components/schemas/EscalateLogEntry' + - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' + - $ref: '#/components/schemas/NotifyLogEntry' + - $ref: '#/components/schemas/ReachAckLimitLogEntry' + - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' + - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' + - $ref: '#/components/schemas/ResolveLogEntry' + - $ref: '#/components/schemas/SnoozeLogEntry' + - $ref: '#/components/schemas/TriggerLogEntry' + - $ref: '#/components/schemas/UnacknowledgeLogEntry' + - $ref: '#/components/schemas/UrgencyChangeLogEntry' + - $ref: '#/components/schemas/FieldValueChangeLogEntry' + - $ref: '#/components/schemas/CustomFieldValueChangeLogEntry' + required: + - log_entries examples: response: summary: Response Example value: - incidents: - - id: PT4KHLK - type: incident - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: resolved - title: The server is on fire. - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: + log_entries: + - id: Q02JTSNZWHSEKV + type: trigger_log_entry + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + created_at: '2015-11-07T00:14:20Z' + agent: id: PIJ90N7 type: service_reference summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - priority: - id: P53ZZH5 - type: priority_reference - summary: P2 - self: 'https://api.pagerduty.com/priorities/P53ZZH5' - assigned_via: escalation_policy - assignments: [] - acknowledgements: [] - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + channel: + type: api + incident: + id: PT4KHLK + type: incident_reference + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK teams: - id: PQ9K7I8 type: team_reference summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high - conference_bridge: - conference_number: '+1-415-555-1212,,,,1234#' - conference_url: 'https://example.com/acb-123' - limit: 1 - offset: 0 - more: true + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + contexts: [] + event_details: + description: Tasks::SFDCValidator - PD_Data__c - duplicates '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' + description: List incident log entries for an incident. + /incidents/{id}/merge: put: - x-pd-requires-scope: incidents.write tags: - Incidents - operationId: updateIncidents + x-pd-requires-scope: incidents.write + operationId: mergeIncidents description: | - Acknowledge, resolve, escalate or reassign one or more incidents. + Merge a list of source incidents into the target [incident](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents). - An incident represents a problem or an issue that needs to be addressed and resolved. + After the merge is performed the target incident will contain the source incidents' [alerts](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#alerts), + and the source incidents will be resolved. - A maximum of 250 incidents may be updated at a time. If more than this number of incidents are given, the API will respond with status 413 (Request Entity Too Large). + Only incidents that have alerts or incidents that were created manually in the UI can be merged. - Note: the manage incidents API endpoint is rate limited to 500 requests per minute. + Open incidents cannot be merged into a resolved incident. The target incident must be open. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + An incident cannot have more than 1000 alerts. The server will return an error if merging the source incidents + will result in the target incident having more than 1000 alerts. Scoped OAuth requires: `incidents.write` - summary: Manage incidents + summary: Merge incidents parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/from_header' requestBody: content: @@ -4659,537 +1841,309 @@ paths: schema: type: object properties: - incidents: + source_incidents: type: array - description: 'An array of incidents, including the parameters to update.' + description: The source incidents that will be merged into the target incident and resolved. items: - properties: - id: - type: string - description: The id of the incident to update. - type: - type: string - description: The incident type. - enum: - - incident - - incident_reference - status: - type: string - description: The new status of the incident. - enum: - - resolved - - acknowledged - resolution: - type: string - description: The resolution for this incident if status is set to resolved. - title: - type: string - description: 'A succinct description of the nature, symptoms, cause, or effect of the incident.' - priority: - $ref: '#/components/schemas/PriorityReference' - escalation_level: - type: integer - description: Escalate the incident to this level in the escalation policy. - assignments: - type: array - description: Assign the incident to these assignees. - items: - properties: - assignee: - $ref: '#/components/schemas/UserReference' - escalation_policy: - $ref: '#/components/schemas/EscalationPolicyReference' - conference_bridge: - $ref: '#/components/schemas/ConferenceBridge' - required: - - id - - type + $ref: '#/components/schemas/IncidentReference' required: - - incidents + - source_incidents examples: - incidents: + request: summary: Request Example value: - incidents: - - id: PT4KHLK - type: incident_reference - status: acknowledged - - id: PQMF62U + source_incidents: + - id: P8JOGX7 type: incident_reference - priority: - id: P53ZZH5 - type: priority_reference - id: PPVZH9X type: incident_reference - status: resolved - - id: P8JOGX7 + responses: + '200': + description: The target incident, which now contains all the alerts from the source incident. + content: + application/json: + schema: + type: object + properties: + incident: + $ref: '#/components/schemas/IncidentReference' + required: + - incident + examples: + response: + summary: Response Example + value: + incident: + id: PT4KHLK type: incident_reference - assignments: - - assignee: - id: PXPGF42 - type: user_reference + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /incidents/{id}/notes: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: listIncidentNotes + description: | + List existing notes for the specified incident. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.read` + summary: List notes for an incident + parameters: + - $ref: '#/components/parameters/id' responses: '200': - description: All of the updates succeeded. + description: An array of notes. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - incidents: - type: array - items: - $ref: '#/components/schemas/Incident' - required: - - incidents + type: object + properties: + notes: + type: array + items: + $ref: '#/components/schemas/IncidentNote' + required: + - notes examples: response: summary: Response Example value: - incidents: - - id: PT4KHLK - type: incident - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: resolved - title: The server is on fire. - alert_counts: - all: 2 - triggered: 0 - resolved: 2 - pending_actions: - - type: unacknowledge - at: '2015-11-10T01:02:52Z' - - type: resolve - at: '2015-11-10T04:31:52Z' - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - assigned_via: escalation_policy - assignments: - - at: '2015-11-10T00:31:52Z' - assignee: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - acknowledgements: - - at: '2015-11-10T00:32:52Z' - acknowledger: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: + notes: + - id: PWL7QXS + user: id: PXPGF42 type: user_reference summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + channel: + summary: The PagerDuty website or APIs + content: Firefighters are on the scene. + created_at: '2013-03-06T15:28:51-05:00' + updated_at: '2023-10-01T12:00:00-05:00' + - id: PCQC25 + user: + id: PXPGF42 + type: bot_user_reference + summary: A Global Event Rule + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/event-rules/global/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + channel: + id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + type: event_rule_reference + summary: A Global Event Rule + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + html_url: https://subdomain.pagerduty.com/event-rules/global/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + content: Initial alert information indicates a 1-alarm fire + created_at: '2013-03-06T15:28:42-05:00' + updated_at: '2023-10-01T12:00:00-05:00' '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' - '413': - $ref: '#/components/responses/RequestEntityTooLarge' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' post: - x-pd-requires-scope: incidents.write tags: - Incidents - operationId: createIncident + x-pd-requires-scope: incidents.write + operationId: createIncidentNote description: | - Create an incident synchronously without a corresponding event from a monitoring service. + Create a new note for the specified incident. An incident represents a problem or an issue that needs to be addressed and resolved. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + A maximum of 2000 notes can be added to an incident. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.write` - summary: Create an Incident + summary: Create a note on an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/from_header' requestBody: content: - application/json: - schema: - type: object - properties: - incident: - type: object - description: Details of the incident to be created. - properties: - type: - type: string - enum: - - incident - title: - type: string - description: 'A succinct description of the nature, symptoms, cause, or effect of the incident.' - service: - $ref: '#/components/schemas/ServiceReference' - priority: - $ref: '#/components/schemas/PriorityReference' - urgency: - type: string - description: The urgency of the incident - enum: - - high - - low - body: - $ref: '#/components/schemas/IncidentBody' - incident_key: - type: string - description: A string which identifies the incident. Sending subsequent requests referencing the same service and with the same incident_key will result in those requests being rejected if an open incident matches that incident_key. - assignments: - type: array - description: Assign the incident to these assignees. Cannot be specified if an escalation policy is given. - items: - properties: - assignee: - $ref: '#/components/schemas/UserReference' - escalation_policy: - $ref: '#/components/schemas/EscalationPolicyReference' - conference_bridge: - $ref: '#/components/schemas/ConferenceBridge' + application/json: + schema: + type: object + properties: + note: + type: object + properties: + content: + type: string + description: The note content required: - - type - - title - - service + - content required: - - incident + - note examples: request: summary: Request Example value: - incident: - type: incident - title: The server is on fire. - service: - id: PWIXJZS - type: service_reference - priority: - id: P53ZZH5 - type: priority_reference - urgency: high - incident_key: baf7cf21b1da41b4b0221008339ff357 - body: - type: incident_body - details: 'A disk is getting full on this machine. You should investigate what is causing the disk to fill, and ensure that there is an automated process in place for ensuring data is rotated (eg. logs should have logrotate around them). If data is expected to stay on this disk forever, you should start planning to scale up to a larger disk.' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference + note: + content: Firefighters are on the scene. responses: - '201': - description: The incident object created. + '200': + description: The new note. content: application/json: schema: type: object properties: - incident: - $ref: '#/components/schemas/Incident' + note: + $ref: '#/components/schemas/IncidentNote' required: - - incident + - note examples: response: summary: Response Example value: - incident: - id: PT4KHLK - type: incident - title: The server is on fire. - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: triggered - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PWIXJZS - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PWIXJZS' - html_url: 'https://subdomain.pagerduty.com/services/PWIXJZS' - priority: - id: P53ZZH5 - type: priority_reference - summary: P2 - self: 'https://api.pagerduty.com/priorities/P53ZZH5' - assigned_via: escalation_policy - assignments: - - at: '2015-11-10T00:31:52Z' - assignee: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: + note: + id: PWL7QXS + user: id: PXPGF42 type: user_reference summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + channel: + summary: The PagerDuty website or APIs + content: Firefighters are on the scene. + created_at: '2013-03-06T15:28:51-05:00' + updated_at: '2023-10-01T12:00:00-05:00' '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}': - get: - x-pd-requires-scope: incidents.read + description: List and create incident notes. + /incidents/{id}/notes/{note_id}: + put: + x-pd-private: false tags: - Incidents - operationId: getIncident + x-pd-requires-scope: incidents.write + operationId: updateIncidentNote description: | - Show detailed information about an incident. Accepts either an incident id, or an incident number. + Update an existing note for the specified incident. An incident represents a problem or an issue that needs to be addressed and resolved. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - - - > ### Early Access - > The `include[]=field_values` part of this endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) - Scoped OAuth requires: `incidents.read` - summary: Get an incident + Scoped OAuth requires: `incidents.write` + summary: Update a note on an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_incident' - - $ref: '#/components/parameters/early_access_customfields' + - $ref: '#/components/parameters/note_id' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + note: + type: object + properties: + content: + type: string + description: The note content + required: + - content + required: + - note + examples: + request: + summary: Request Example + value: + note: + content: Firefighters are on the scene. Update 1. responses: '200': - description: The incident requested. + description: The updated note. content: application/json: schema: type: object properties: - incident: - $ref: '#/components/schemas/Incident' + note: + $ref: '#/components/schemas/IncidentNote' required: - - incident + - note examples: response: summary: Response Example value: - incident: - id: PT4KHLK - type: incident - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: acknowledged - title: The server is on fire. - alert_counts: - all: 2 - triggered: 1 - resolved: 1 - pending_actions: - - type: unacknowledge - at: '2015-11-10T01:02:52Z' - - type: resolve - at: '2015-11-10T04:31:52Z' - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - priority: - id: P53ZZH5 - type: priority_reference - summary: P2 - self: 'https://api.pagerduty.com/priorities/P53ZZH5' - assigned_via: escalation_policy - assignments: - - at: '2015-11-10T00:31:52Z' - assignee: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - acknowledgements: - - at: '2015-11-10T00:32:52Z' - acknowledger: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: + note: + id: PWL7QXS + user: id: PXPGF42 type: user_reference summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high - responder_requests: - - incident: - id: PXP12GZ - type: incident_reference - summary: Ongoing Incident in Mailroom - self: 'https://api.pagerduty.com/incidents/PXP12GZ' - html_url: 'https://subdomain.pagerduty.com/incidents/PXP12GZ' - requester: - id: P09TT3C - type: user_reference - summary: Jane Doe - self: 'https://api.pagerduty.com/users/P09TT3C' - html_url: 'https://subdomain.pagerduty.com/users/P09TT3C' - requested_at: '2018-08-16T14:55:17-07:00' - message: Please help with issue - join bridge at +1(234)-567-8910 - responder_request_targets: - - responder_request_target: - type: user - id: PL7A2O4 - incidents_responders: - - state: pending - user: - id: PL7A2O4 - type: user_reference - summary: Lee Turner - self: 'https://api.pagerduty.com/users/PL7A2O4' - html_url: 'https://subdomain.pagerduty.com/users/PL7A2O4' - avatar_url: 'https://secure.gravatar.com/avatar/51c673f51f6b483b24c889bbafbd2a67.png?d=mm&r=PG' - incident: - id: PXP12GZ - type: incident_reference - summary: Ongoing Incident in Mailroom - self: 'https://api.pagerduty.com/incidents/PXP12GZ' - html_url: 'https://subdomain.pagerduty.com/incidents/PXP12GZ' - updated_at: '2018-08-09T14:40:48-07:00' - message: Please help with issue - join bridge at +1(234)-567-8910 - requester: - id: P09TT3C - type: user_reference - summary: Jane Doe - self: 'https://api.pagerduty.com/users/P09TT3C' - html_url: 'https://subdomain.pagerduty.com/users/P09TT3C' - avatar_url: 'https://secure.gravatar.com/avatar/1c747247b75acc1f724e2784c838b3f8.png?d=mm&r=PG' - requested_at: '2018-08-09T21:40:49Z' - incidents_responders: - - state: pending - user: - id: PL7A2O4 - type: user_reference - summary: Lee Turner - self: 'https://api.pagerduty.com/users/PL7A2O4' - html_url: 'https://subdomain.pagerduty.com/users/PL7A2O4' - avatar_url: 'https://secure.gravatar.com/avatar/51c673f51f6b483b24c889bbafbd2a67.png?d=mm&r=PG' - incident: - id: PXP12GZ - type: incident_reference - summary: Ongoing Incident in Mailroom - self: 'https://api.pagerduty.com/incidents/PXP12GZ' - html_url: 'https://subdomain.pagerduty.com/incidents/PXP12GZ' - updated_at: '2018-08-09T14:40:48-07:00' - message: Please help with issue - join bridge at +1(234)-567-8910 - requester: - id: P09TT3C - type: user_reference - summary: Jane Doe - self: 'https://api.pagerduty.com/users/P09TT3C' - html_url: 'https://subdomain.pagerduty.com/users/P09TT3C' - avatar_url: 'https://secure.gravatar.com/avatar/1c747247b75acc1f724e2784c838b3f8.png?d=mm&r=PG' - requested_at: '2018-08-09T21:40:49Z' - field_values: - - id: PT4KHEE - type: field_value - name: environment - display_name: Runtime Environment - description: environment where incident occurred - fixed_options: true - datatype: string - multi_value: false - value: production + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + channel: + summary: The PagerDuty website or APIs + content: Firefighters are on the scene. Update 1. + created_at: '2013-03-06T15:28:51-05:00' + updated_at: '2025-01-10T12:00:00-05:00' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + delete: + x-pd-private: false + tags: + - Incidents + x-pd-requires-scope: incidents.write + operationId: deleteIncidentNote + description: | + Delete an existing note for the specified incident. + + An incident represents a problem or an issue that needs to be addressed and resolved. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) + + Scoped OAuth requires: `incidents.write` + summary: Delete a note on an incident + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/note_id' + responses: + '204': + description: Note deleted successfully. '400': $ref: '#/components/responses/ArgumentError' '401': @@ -5198,450 +2152,644 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: incidents.write + description: Update or delete an incident note. + /incidents/{id}/outlier_incident: + get: + x-pd-requires-scope: incidents.read tags: - Incidents - operationId: updateIncident + operationId: getOutlierIncident description: | - Acknowledge, resolve, escalate or reassign an incident. - - An incident represents a problem or an issue that needs to be addressed and resolved. + Gets Outlier Incident information for a given Incident on its Service. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#outlier-incident) - Scoped OAuth requires: `incidents.write` - summary: Update an incident + Scoped OAuth requires: `incidents.read` + summary: Get Outlier Incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - incident: - type: object - description: The parameters of the incident to update. - properties: - type: - type: string - description: The incident type. - enum: - - incident - - incident_reference - status: - type: string - description: The new status of the incident. - enum: - - resolved - - acknowledged - priority: - $ref: '#/components/schemas/PriorityReference' - resolution: - type: string - description: The resolution for this incident if status is set to resolved. - title: - type: string - description: The new title of the incident. - escalation_level: - type: integer - description: Escalate the incident to this level in the escalation policy. - assignments: - type: array - description: Assign the incident to these assignees. - items: - properties: - assignee: - $ref: '#/components/schemas/UserReference' - escalation_policy: - $ref: '#/components/schemas/EscalationPolicyReference' - urgency: - type: string - description: The urgency of the incident. - enum: - - high - - low - conference_bridge: - $ref: '#/components/schemas/ConferenceBridge' - required: - - type - required: - - incident - examples: - request: - summary: Request Example - value: - incident: - type: incident_reference - status: acknowledged + - $ref: '#/components/parameters/since' + - $ref: '#/components/parameters/additional_details' responses: '200': - description: The incident was updated. + description: Outlier Incident information calculated over the same Service as the given Incident. content: application/json: schema: - allOf: - - type: object + description: '' + type: object + properties: + outlier_incident: + type: object + description: Outlier Incident information calculated over the same Service as the given Incident. properties: incident: $ref: '#/components/schemas/Incident' - required: - - incident + incident_template: + type: object + properties: + id: + type: string + readOnly: true + cluster_id: + type: string + readOnly: true + description: The cluster the Incident Template pattern belongs to + mined_text: + type: string + readOnly: true + description: The Incident Template mined pattern text + examples: + response: + summary: Response Example + value: + outlier_incident: + incident: + id: PR2P3RW + created_at: '2020-11-18T13:08:14Z' + self: https://api.pagerduty.com/incidents/PR2P3RW + title: '[LINUX]Used disk space is more than 5 GB on volume /var/log : PROBLEM for ce51323' + occurrence: + count: 10 + frequency: 0.04 + category: rare + since: '2020-09-23T13:08:14Z' + until: '2021-01-18T13:08:14Z' + incident_template: + id: PX3P1PX + cluster_id: P2B3X5 + mined_text: '[LINUX]Used disk space is more than on volume <*> : PROBLEM for <*>' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get Outlier Incident + /incidents/{id}/past_incidents: + get: + x-pd-requires-scope: incidents.read + summary: Get Past Incidents + tags: + - Incidents + responses: + '200': + description: OK + content: + application/json: + schema: + description: '' + type: object + properties: + past_incidents: + type: array + description: Aggregate of past incidents + items: + type: object + properties: + incident: + type: object + description: Incident model reference + properties: + id: + type: string + description: The globally unique identifier of the incident + created_at: + type: string + description: The date/time the incident was first triggered + self: + type: string + description: The URL at which the object is accessible + title: + type: string + description: The description of the nature, symptoms, cause, or effect of the incident + score: + type: number + description: 'The computed similarity score associated with the incident and parent incident ' + total: + type: number + description: The total number of Past Incidents if the total parameter was set in the request + limit: + type: number + description: The maximum number of Incidents requested + examples: + response: + summary: Response Example + value: + past_incidents: + - incident: + id: PFBE9I2 + created_at: '2020-11-04T16:08:15Z' + self: https://api.pagerduty.com/incidents/PFBE9I2 + title: Things are so broken! + score: 46.8249 + - incident: + id: P1J6V6M + created_at: '2020-10-22T17:18:14Z' + self: https://api.pagerduty.com/incidents/P1J6V6M + title: Things are so broken! + score: 46.8249 + - incident: + id: P6HPX5N + created_at: '2020-10-06T22:01:13Z' + self: https://api.pagerduty.com/incidents/P6HPX5N + title: You forgot to feed the cat! + score: 0 + total: 3 + limit: 5 + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + operationId: getPastIncidents + parameters: + - $ref: '#/components/parameters/past_incidents_limit' + - $ref: '#/components/parameters/past_incidents_total' + - $ref: '#/components/parameters/id' + description: | + Past Incidents returns Incidents within the past 6 months that have similar metadata and were generated on the same Service as the parent Incident. By default, 5 Past Incidents are returned. Note: This feature is currently available as part of the Event Intelligence package or Digital Operations plan only. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#past_incidents) + + Scoped OAuth requires: `incidents.read` + /incidents/{id}/related_incidents: + get: + x-pd-requires-scope: incidents.read + tags: + - Incidents + operationId: getRelatedIncidents + description: | + Returns the 20 most recent Related Incidents that are impacting other Responders and Services. Note: This feature is currently available as part of the Event Intelligence package or Digital Operations plan only. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#related_incidents) + + Scoped OAuth requires: `incidents.read` + summary: Get Related Incidents + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/additional_details' + responses: + '200': + description: A list of Related Incidents and their relationships. + content: + application/json: + schema: + description: '' + type: object + properties: + related_incidents: + type: array + description: A list of Related Incidents and their relationships. + items: + properties: + incident: + $ref: '#/components/schemas/Incident' + relationships: + type: array + description: A list of reasons for why the Incident is considered related. + items: + properties: + type: + type: string + description: The type of relationship. A relationship outlines the reason why two Incidents are considered related. + enum: + - machine_learning_inferred + - service_dependency + metadata: + anyOf: + - $ref: '#/components/schemas/RelatedIncidentMachineLearningRelationship' + - $ref: '#/components/schemas/RelatedIncidentServiceDependencyRelationship' + type: object + type: object examples: response: summary: Response Example value: - incident: - id: PT4KHLK - type: incident - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: resolved - title: The server is on fire. - pending_actions: - - type: unacknowledge - at: '2015-11-10T01:02:52Z' - - type: resolve - at: '2015-11-10T04:31:52Z' - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - priority: - id: P53ZZH5 - type: priority_reference - summary: P2 - self: 'https://api.pagerduty.com/priorities/P53ZZH5' - assigned_via: escalation_policy - assignments: - - at: '2015-11-10T00:31:52Z' - assignee: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - acknowledgements: - - at: '2015-11-10T00:32:52Z' - acknowledger: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high - '401': - $ref: '#/components/responses/Unauthorized' + related_incidents: + - incident: + id: PR2P3RW + created_at: '2020-11-18T13:08:14Z' + self: https://api.pagerduty.com/incidents/PR2P3RW + title: The server is on fire. + relationships: + - type: machine_learning_inferred + metadata: + grouping_classification: similar_contents + user_feedback: + positive_feedback_count: 12 + negative_feedback_count: 3 + - type: service_dependency + metadata: + dependent_services: + id: P1L1YEE + type: business_service_reference + self: https://api.pagerduty.com/business_services/P1L1YEE + supporting_services: + id: PNGCNV2 + type: technical_service_reference + self: https://api.pagerduty.com/services/PNGCNV2 + '400': + $ref: '#/components/responses/ArgumentError' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/alerts': - get: - x-pd-requires-scope: incidents.read + '500': + $ref: '#/components/responses/InternalServerError' + description: Get Related Incidents + /incidents/{id}/responder_requests: + post: + x-pd-requires-scope: incidents.write tags: - Incidents - operationId: listIncidentAlerts + operationId: createIncidentResponderRequest description: | - List alerts for the specified incident. + Send a new responder request for the specified incident. This endpoint requires the account to have access to the [responder requests](https://support.pagerduty.com/main/docs/add-responders) feature. - An incident represents a problem or an issue that needs to be addressed and resolved. + **Account Ability Requirement**: The account must have the `coordinated_responding` ability. Returns 402 Payment Required if the ability is missing. You can use the List Abilities API to check account abilities. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + A user or an escalation policy can be requested. The responder targets will be notified via their high urgency notification rules, until the target user has either accepted or declined the request. + Previous responder requests for a given target can be cancelled (preventing them from further notifying or escalating), with the Cancel Responder Requests endpoint. - Scoped OAuth requires: `incidents.read` - summary: List alerts for an incident + Scoped OAuth requires: `incidents.write` + summary: Create a responder request for an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/alert_key' - - $ref: '#/components/parameters/statuses_incident_alerts' - - $ref: '#/components/parameters/sort_by_incident_alerts' - - $ref: '#/components/parameters/include_incident_alerts' + requestBody: + content: + application/json: + schema: + type: object + properties: + requester_id: + type: string + description: The user id of the requester. + message: + type: string + description: The message sent with the responder request. + responder_request_targets: + description: The array of targets the responder request is sent to. + items: + $ref: '#/components/schemas/ResponderRequestTargetReference' + required: + - requester_id + - message + - responder_request_targets + examples: + request: + summary: Request Example + value: + requester_id: PL1JMK5 + message: Please help with issue - join bridge at +1(234)-567-8910 + responder_request_targets: + - responder_request_target: + id: PJ25ZYX + type: user_reference responses: '200': - description: A paginated array of the incident's alerts. + description: The new responder request for the given incident. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - alerts: - type: array - items: - $ref: '#/components/schemas/Alert' - required: - - alerts + type: object + properties: + responder_request: + $ref: '#/components/schemas/ResponderRequest' + required: + - responder_request examples: response: summary: Response Example value: - alerts: - - id: PT4KHLK - type: alert - summary: The server is on fire. - self: 'https://api.pagerduty.com/incidents/PT4KHLK/alerts/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/alerts/PXPGF42' - created_at: '2015-10-06T21:30:42Z' - status: resolved - alert_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - body: - type: alert_body - contexts: - - type: link - details: - customKey: Server is on fire! - customKey2: Other stuff! - incident: - id: PT4KHLK - type: incident_reference - suppressed: false - severity: critical - integration: - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - limit: 1 - offset: 0 - more: true + responder_request: + incident: + id: PXP12GZ + type: incident_reference + summary: Ongoing Incident in Mailroom + self: https://api.pagerduty.com/incidents/PXP12GZ + html_url: https://subdomain.pagerduty.com/incidents/PXP12GZ + requester: + id: P09TT3C + type: user_reference + summary: Jane Doe + self: https://api.pagerduty.com/users/P09TT3C + html_url: https://subdomain.pagerduty.com/users/P09TT3C + requested_at: '2018-08-16T14:55:17-07:00' + message: Please help with issue - join bridge at +1(234)-567-8910 + responder_request_targets: + - responder_request_target: + type: user + id: PL7A2O4 + incidents_responders: + - state: pending + user: + id: PL7A2O4 + type: user_reference + summary: Lee Turner + self: https://api.pagerduty.com/users/PL7A2O4 + html_url: https://subdomain.pagerduty.com/users/PL7A2O4 + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + incident: + id: PXP12GZ + type: incident_reference + summary: Ongoing Incident in Mailroom + self: https://api.pagerduty.com/incidents/PXP12GZ + html_url: https://subdomain.pagerduty.com/incidents/PXP12GZ + updated_at: '2018-08-09T14:40:48-07:00' + message: Please help with issue - join bridge at +1(234)-567-8910 + requester: + id: P09TT3C + type: user_reference + summary: Jane Doe + self: https://api.pagerduty.com/users/P09TT3C + html_url: https://subdomain.pagerduty.com/users/P09TT3C + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + requested_at: '2018-08-09T21:40:49Z' '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' + description: Add responders to an incident. + /incidents/{id}/responder_requests/cancel: put: x-pd-requires-scope: incidents.write tags: - Incidents - operationId: updateIncidentAlerts + operationId: cancelIncidentResponderRequest description: | - Resolve multiple alerts or associate them with different incidents. + Cancel pending responder requests for the specified incident. - An incident represents a problem or an issue that needs to be addressed and resolved. An alert represents a digital signal that was emitted to PagerDuty by the monitoring systems that detected or identified the issue. + This endpoint allows you to cancel responder requests for specified targets that are in a pending state. Only responders who have not yet joined or declined can be cancelled. This endpoint requires the account to have access to the [responder requests](https://support.pagerduty.com/main/docs/add-responders) feature. + + **Account Ability Requirement**: The account must have the `coordinated_responding` ability. Returns 402 Payment Required if the ability is missing. You can use the List Abilities API to check account abilities. - A maximum of 500 alerts may be updated at a time. If more than this number of alerts are given, the API will respond with status 413 (Request Entity Too Large). + **State Constraints**: Only responders in the `pending` state can be cancelled. Responders who have already `joined` or `declined` are not affected (the result will indicate their current state). - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + **User vs Escalation Policy Behavior**: + - **Users**: Direct cancellation, updates state to `user_cancelled`, stops notifications + - **Escalation Policies**: Stops the escalation process, updates state of all pending users from that escalation policy to `user_cancelled` and stops notifications + + **Result Values**: + - `cancelled`: Successfully cancelled + - `joined`: User already joined (not cancelled) + - `declined`: User already declined (not cancelled) + - `not_found`: Target not found or not part of any responder request Scoped OAuth requires: `incidents.write` - summary: Manage alerts + summary: Cancel responder requests for an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' requestBody: content: application/json: schema: type: object properties: - alerts: + requester_id: + type: string + description: The user id of the requester. + responder_request_targets: + description: The array of targets to cancel. type: array - description: 'An array of alerts, including the parameters to update for each alert.' items: - $ref: '#/components/schemas/Alert' + type: object + properties: + type: + type: string + description: The type of target (either a user or an escalation policy) + enum: + - user_reference + - escalation_policy_reference + id: + type: string + description: The id of the user or escalation policy + required: + - type + - id required: - - alerts + - requester_id + - responder_request_targets examples: request: - summary: Request Example - value: - alerts: - - id: PPVZH9X - type: alert - status: resolved - - id: P8JOGX7 - type: alert - incident: - id: PPVZH9X - type: incident_reference + summary: Request Example + value: + requester_id: PL1JMK5 + responder_request_targets: + - type: user_reference + id: PJ25ZYX + - type: escalation_policy_reference + id: PEP12AB responses: '200': - description: All of the updates succeeded. + description: The result of cancelling responder requests for the given incident. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - alerts: - type: array - items: - $ref: '#/components/schemas/Alert' - required: - - alerts + type: object + properties: + responder_request_targets: + description: The array of targets with their cancellation results. + type: array + items: + type: object + properties: + type: + type: string + description: The type of target (either a user or an escalation policy) + enum: + - user_reference + - escalation_policy_reference + id: + type: string + description: The id of the user or escalation policy + result: + type: string + description: The result of the cancellation attempt + enum: + - cancelled + - joined + - declined + - not_found + required: + - type + - id + - result + required: + - responder_request_targets examples: - response: - summary: Response Example + all_cancelled: + summary: All Targets Cancelled value: - alerts: - - id: PT4KHLK - type: alert - summary: The server is on fire. - self: 'https://api.pagerduty.com/incidents/PT4KHLK/alerts/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/alerts/PXPGF42' - created_at: '2015-10-06T21:30:42Z' - status: resolved - alert_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - body: - type: alert_body - contexts: - - type: link - details: - customKey: Server is on fire! - customKey2: Other stuff! - incident: - id: PPVZH9X - type: incident_reference - suppressed: false - severity: critical - limit: 1 - offset: 0 - more: true + responder_request_targets: + - type: user_reference + id: PJ25ZYX + result: cancelled + - type: escalation_policy_reference + id: PEP12AB + result: cancelled + mixed_results: + summary: Mixed Results + value: + responder_request_targets: + - type: user_reference + id: PJ25ZYX + result: cancelled + - type: user_reference + id: PL7A2O4 + result: joined + - type: user_reference + id: PABC123 + result: not_found '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' - '413': - $ref: '#/components/responses/RequestEntityTooLarge' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/alerts/{alert_id}': - get: - x-pd-requires-scope: incidents.read + description: Cancel responder requests for an incident. + /incidents/{id}/snooze: + post: tags: - Incidents - operationId: getIncidentAlert - description: | - Show detailed information about an alert. Accepts an alert id. + x-pd-requires-scope: incidents.write + operationId: createIncidentSnooze + description: |- + Snooze an incident. An incident represents a problem or an issue that needs to be addressed and resolved. - When a service sends an event to PagerDuty, an alert and corresponding incident is triggered in PagerDuty. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + Scoped OAuth requires: `incidents.write` - Scoped OAuth requires: `incidents.read` - summary: Get an alert + + StackQL: call this method with the raw JSON body, for example `EXEC incidents.incidents.snooze @id = '...' @@json='{"duration": }'` - the duration attribute is integer-typed, which the EXEC parameter form does not accept. + summary: Snooze an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/alert_id' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + duration: + type: integer + description: The number of seconds to snooze the incident for. After this number of seconds has elapsed, the incident will return to the "triggered" state. + minimum: 1 + maximum: 604800 + examples: + request: + summary: Request Example + value: + duration: 3600 responses: - '200': - description: The alert requested. + '201': + description: The incident that was successfully snoozed. content: application/json: schema: type: object properties: - alert: - $ref: '#/components/schemas/Alert' + incident: + $ref: '#/components/schemas/Incident' required: - - alert + - incident examples: response: summary: Response Example value: - alert: + incident: id: PT4KHLK - type: alert - summary: The server is on fire. - self: 'https://api.pagerduty.com/incident/PT4KHLX/alerts/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/alerts/PT4KHLK' + type: incident + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + incident_number: 1234 created_at: '2015-10-06T21:30:42Z' + updated_at: '2015-10-06T21:40:23Z' status: resolved - alert_key: baf7cf21b1da41b4b0221008339ff357 + pending_actions: + - type: unacknowledge + at: '2015-11-10T01:02:52Z' + - type: resolve + at: '2015-11-10T04:31:52Z' + incident_key: baf7cf21b1da41b4b0221008339ff357 service: id: PIJ90N7 type: service_reference summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - incident: - id: PT4KHLX - type: incident_reference - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLX' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLX' - suppressed: false - severity: critical - integration: - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + assigned_via: escalation_policy + assignments: + - at: '2015-11-10T00:31:52Z' + assignee: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + acknowledgements: + - at: '2015-11-10T00:32:52Z' + acknowledger: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + resolved_at: '2015-10-06T21:38:23Z' + last_status_change_at: '2015-10-06T21:38:23Z' + last_status_change_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + first_trigger_log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry_reference + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + incident_type: + name: incident_default + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + urgency: high '400': $ref: '#/components/responses/ArgumentError' '401': @@ -5652,27 +2800,24 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - put: + description: '"Snooze" an incident. This suspends the acknowledgement timeout and auto-resolution for a given amount of time.' + /incidents/{id}/status_updates: + post: x-pd-requires-scope: incidents.write tags: - Incidents - operationId: updateIncidentAlert + operationId: createIncidentStatusUpdate description: | - Resolve an alert or associate an alert with a new parent incident. + Create a new status update for the specified incident. Optionally pass `subject` and `html_message` properties in the request body to override the email notification that gets sent. An incident represents a problem or an issue that needs to be addressed and resolved. - When a service sends an event to PagerDuty, an alert and corresponding incident is triggered in PagerDuty. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.write` - summary: Update an alert + summary: Create a status update on an incident parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/alert_id' - $ref: '#/components/parameters/from_header' requestBody: content: @@ -5680,57 +2825,54 @@ paths: schema: type: object properties: - alert: - $ref: '#/components/schemas/Alert' + message: + type: string + description: The message to be posted as a status update. + subject: + type: string + description: The subject to be sent for the custom html email status update. Required if sending custom html email. + html_message: + type: string + description: The html content to be sent for the custom html email status update. Required if sending custom html email. required: - - alert + - message examples: request: summary: Request Example value: - alert: - type: alert - status: resolved - incident: - id: PEYSGVF - type: incident_reference - body: - type: alert_body - contexts: - - type: link - details: - customKey: Server is on fire! - customKey2: Other stuff! - description: The parameters of the alert to update. + message: The server fire is spreading. + subject: Server Fire Update + html_message:

Server is still on fire

responses: '200': - description: The alert that was updated. + description: The new status update for the specified incident. content: application/json: schema: type: object properties: - alert: - $ref: '#/components/schemas/Alert' + status_update: + $ref: '#/components/schemas/StatusUpdate' required: - - alert + - status_update examples: - request: - summary: Request Example + response: + summary: Response Example value: - alert: - type: alert - status: resolved - incident: - id: PEYSGVF - type: incident_reference - body: - type: alert_body - contexts: - - type: link - details: - customKey: Server is on fire! - customKey2: Other stuff! + status_update: + id: PWL7QXS + message: The server fire is spreading. + sender: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + created_at: '2013-03-06T15:28:51-05:00' + html_message:

Server is still on fire

+ subject: Server Fire Update + '400': + $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': @@ -5739,9 +2881,11 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/business_services/{business_service_id}/impacts': - put: - summary: Manually change an Incident's Impact on a Business Service. + description: Create incident status updates. + /incidents/{id}/status_updates/subscribers: + get: + x-pd-requires-scope: subscribers.read + summary: List Notification Subscribers tags: - Incidents responses: @@ -5750,19 +2894,52 @@ paths: content: application/json: schema: - description: '' type: object properties: - relation: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + subscribers: + type: array + items: + $ref: '#/components/schemas/NotificationSubscriberWithContext' + account_id: type: string - enum: - - impacted - - not_impacted + description: The ID of the account belonging to the subscriber entity examples: response: summary: Response Example value: - relation: impacted + limit: 100 + more: false + offset: 0 + subscribers: + - subscriber_id: PD1234 + subscriber_type: user + has_indirect_subscription: false + subscribed_via: null + - subscriber_id: PD1234 + subscriber_type: team + has_indirect_subscription: true + subscribed_via: + - id: PD1234 + type: business_service + account_id: PD1234 + total: 2 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -5773,41 +2950,19 @@ paths: $ref: '#/components/responses/UnprocessableEntity' '429': $ref: '#/components/responses/TooManyRequests' - operationId: putIncidentManualBusinessServiceAssociation - description: |- - Change Impact of an Incident on a Business Service. + operationId: getIncidentNotificationSubscribers + description: | + Retrieve a list of Notification Subscribers on the Incident. - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + > Users must be added through `POST /incident/{id}/status_updates/subscribers` to be returned from this endpoint. + Scoped OAuth requires: `subscribers.read` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/business_service_id' - - $ref: '#/components/parameters/early_access_bis' - requestBody: - content: - application/json: - schema: - description: '' - type: object - properties: - relation: - type: string - enum: - - impacted - - not_impacted - required: - - relation - description: |- - The `impacted` relation will cause the Business Service and any Services that it supports to become impacted by this incident. - - The `not_impacted` relation will remove the Incident's Impact from the specified Business Service. - - The effect of adding or removing Impact to a Business Service in this way will also change the propagation of Impact to other Services supported by that Business Service. - '/incidents/{id}/business_services/impacts': - get: - summary: List Business Services impacted by the given Incident + post: + x-pd-requires-scope: subscribers.write + summary: Add Notification Subscribers + operationId: createIncidentNotificationSubscribers tags: - Incidents responses: @@ -5816,29 +2971,35 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/CursorPagination' - - type: object - properties: - services: - type: array - items: - $ref: '#/components/schemas/Impact' + type: object + properties: + subscriptions: + type: array + items: + $ref: '#/components/schemas/NotificationSubscriptionWithContext' examples: response: summary: Response Example value: - limit: 100 - next_cursor: null - services: - - id: PD1234 - name: Web API - type: business_service - status: impacted - - id: PF9KMXH - name: Analytics Backend - type: business_service - status: impacted + subscriptions: + - account_id: PD1234 + subscribable_id: PD1234 + subscribable_type: incident + subscriber_id: PD1234 + subscriber_type: user + result: success + - account_id: PD1234 + subscribable_id: PD1234 + subscribable_type: incident + subscriber_id: PD1234 + subscriber_type: team + result: duplicate + - account_id: PD1234 + subscribable_id: PD1235 + subscribable_type: incident + subscriber_id: PD1234 + subscriber_type: team + result: unauthorized '400': $ref: '#/components/responses/ArgumentError' '401': @@ -5847,81 +3008,82 @@ paths: $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - operationId: getIncidentImpactedBusinessServices - description: |- - Retrieve a list of Business Services that are being impacted by the given Incident. + description: | + Subscribe the given entities to Incident Status Update Notifications. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/early_access_bis' - '/incidents/{id}/field_values': - get: + requestBody: + content: + application/json: + schema: + type: object + properties: + subscribers: + type: array + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/NotificationSubscriber' + required: + - subscribers + examples: + request: + summary: Request Example + value: + subscribers: + - subscriber_id: PD1234 + subscriber_type: team + - subscriber_id: PD1235 + subscriber_type: team + - subscriber_id: PD1234 + subscriber_type: user + description: The entities to subscribe. + /incidents/{id}/status_updates/unsubscribe: + post: + x-pd-requires-scope: subscribers.write + summary: Remove Notification Subscriber tags: - Incidents - operationId: getIncidentFieldValues - description: | - Get field values for an incident - - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Get Incident Field Values - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/early_access_customfields' responses: '200': - description: The list of field values + description: OK content: application/json: schema: type: object properties: - field_values: - type: array - items: - $ref: '#/components/schemas/CustomFieldsFieldValue' + deleted_count: + type: number + unauthorized_count: + type: number + non_existent_count: + type: number required: - - field_values + - deleted_count + - unauthorized_count + - non_existent_count examples: response: summary: Response Example value: - field_values: - - id: PT4KHEE - type: field_value - name: environment - display_name: Runtime Environment - description: environment where incident occurred - fixed_options: true - datatype: string - multi_value: false - value: production + deleted_count: 1 + unauthorized_count: 1 + non_existent_count: 0 + '401': + $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - put: - tags: - - Incidents - operationId: setIncidentFieldValues + '422': + $ref: '#/components/responses/UnprocessableEntity' + operationId: removeIncidentNotificationSubscribers description: | - Set field values for an incident - - + Unsubscribes the matching Subscribers from Incident Status Update Notifications. - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Set Incident Field Values + Scoped OAuth requires: `subscribers.write` parameters: - $ref: '#/components/parameters/id' requestBody: @@ -5930,1300 +3092,5175 @@ paths: schema: type: object properties: - field_values: - type: array - items: - $ref: '#/components/schemas/CustomFieldsEditableFieldValue' - required: - - field_values - examples: - request: - summary: Request Example + subscribers: + type: array + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/NotificationSubscriber' + required: + - subscribers + examples: + request: + summary: Request Example + value: + subscribers: + - subscriber_id: PD1234 + subscriber_type: team + - subscriber_id: PD1234 + subscriber_type: user + description: The entities to unsubscribe. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Incident: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + incident_number: + type: integer + readOnly: true + description: The number of the incident. This is unique across your account. + title: + type: string + readOnly: false + description: A succinct description of the nature, symptoms, cause, or effect of the incident. + created_at: + type: string + format: date-time + description: The time the incident was first triggered. + example: '2019-12-01T20:00:00Z' + readOnly: true + updated_at: + type: string + format: date-time + example: '2019-12-01T21:02:00Z' + description: The time the incident was last modified. + status: + type: string + description: The current status of the incident. + enum: + - triggered + - acknowledged + - resolved + incident_key: + type: string + readOnly: true + description: The incident's de-duplication key. + service: + description: The service the incident is on. If the `include[]=services` query parameter is provided, the full service definition will be returned. + oneOf: + - $ref: '#/components/schemas/ServiceReference' + - $ref: '#/components/schemas/Service' + assignments: + type: array + description: List of all assignments for this incident. This list will be empty if the `Incident.status` is `resolved`. Returns a user reference for each assignment. Full user definitions will be returned if the `include[]=assignees` query parameter is provided. + items: + $ref: '#/components/schemas/Assignment' + assigned_via: + type: string + description: How the current incident assignments were decided. Note that `direct_assignment` incidents will not escalate up the attached `escalation_policy` + enum: + - escalation_policy + - direct_assignment + readOnly: true + last_status_change_at: + type: string + format: date-time + description: The time the status of the incident last changed. If the incident is not currently acknowledged or resolved, this will be the incident's `updated_at`. + example: '2019-12-01T21:01:00Z' + readOnly: true + resolved_at: + type: string + format: date-time + example: '2019-12-01T21:01:00Z' + description: The time the incident became "resolved" or `null` if the incident is not resolved. + first_trigger_log_entry: + description: The first log entry on the incident. The log entry will be of type `TriggerLogEntry` and will represent information about how the incident was triggered. If the `include[]=first_trigger_log_entries` query parameter is provided, the full log entry definition will be returned. + oneOf: + - $ref: '#/components/schemas/LogEntryReference' + - $ref: '#/components/schemas/TriggerLogEntry' + alert_counts: + $ref: '#/components/schemas/AlertCount' + is_mergeable: + type: boolean + description: Whether the incident is mergeable. Only incidents that have alerts, or that are manually created can be merged. + readOnly: true + incident_type: + description: The incident type of the incident. + type: object + properties: + name: + type: string + description: The name of the Incident Type. + escalation_policy: + description: The escalation policy attached to the service that the incident is on. If the `include[]=escalation_policies` query parameter is provided, the full escalation policy definition will be returned. + oneOf: + - $ref: '#/components/schemas/EscalationPolicyReference' + - $ref: '#/components/schemas/EscalationPolicy' + teams: + type: array + description: The teams involved in the incident’s lifecycle. If the `include[]=teams` query parameter is provided, the full team definitions will be returned. + items: + oneOf: + - $ref: '#/components/schemas/TeamReference' + - $ref: '#/components/schemas/Team' + pending_actions: + type: array + readOnly: true + description: The list of pending_actions on the incident. A pending_action object contains a type of action which can be escalate, unacknowledge, resolve or urgency_change. A pending_action object contains at, the time at which the action will take place. An urgency_change pending_action will contain to, the urgency that the incident will change to. + items: + $ref: '#/components/schemas/IncidentAction' + acknowledgements: + type: array + description: List of all acknowledgements for this incident. This list will be empty if the `Incident.status` is `resolved` or `triggered`. If the `include[]=acknowledgers` query parameter is provided, the full user or service definitions will be returned for each acknowledgement entry. + items: + $ref: '#/components/schemas/Acknowledgement' + alert_grouping: + description: Describes the alert grouping state of this incident. Will be null if the incident has no alerts. + type: object + properties: + grouping_type: + type: string + enum: + - basic + - advanced + - rules + started_at: + type: string + format: date-time + ended_at: + type: string + format: date-time + alert_grouping_active: + type: boolean + last_status_change_by: + description: The entity that last changed the status of the incident. If the `include[]=agents` query parameter is provided, the full user/service/integration definition will be returned. + oneOf: + - $ref: '#/components/schemas/AgentReference' + - $ref: '#/components/schemas/User' + - $ref: '#/components/schemas/Service' + priority: + $ref: '#/components/schemas/Priority' + resolve_reason: + $ref: '#/components/schemas/ResolveReason' + conference_bridge: + description: The conference bridge information attached to the incident. Only returned if the `include[]=conference_bridge` query parameter is provided. + type: object + properties: + conference_number: + type: string + description: 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. + conference_url: + type: string + format: url + description: An URL for the conference bridge. This could be a link to a web conference or Slack channel. + incidents_responders: + description: The responders on the incident. Only returned if the account has access to the [responder requests](https://support.pagerduty.com/docs/add-responders) feature. + type: array + readOnly: true + items: + $ref: '#/components/schemas/IncidentsRespondersReference' + responder_requests: + description: Previous responder requests made on this incident. Only returned if the account has access to the [responder requests](https://support.pagerduty.com/docs/add-responders) feature. + type: array + readOnly: true + items: + $ref: '#/components/schemas/ResponderRequest' + urgency: + type: string + enum: + - high + - low + description: The current urgency of the incident. + body: + description: The additional incident body details. Only returned if the `include[]=body` query parameter is provided. + type: object + properties: + details: + type: string + description: Additional incident details. (opaque JSON object) + required: + - type + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentTypeReference: + type: object + properties: + id: + type: string + readOnly: true + name: + type: string + description: The name of the Incident Type. + EscalationPolicyReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ConferenceBridge: + type: object + properties: + conference_number: + type: string + description: 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. + conference_url: + type: string + format: url + description: An URL for the conference bridge. This could be a link to a web conference or Slack channel. + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + PriorityReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentBody: + type: object + properties: + details: + type: string + description: Additional incident details. (opaque JSON object) + required: + - type + Alert: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: The date/time the alert was first triggered. + status: + type: string + description: The current status of the alert. + enum: + - triggered + - resolved + alert_key: + type: string + readOnly: true + description: The alert's de-duplication key. + service: + $ref: '#/components/schemas/ServiceReference' + first_trigger_log_entry: + $ref: '#/components/schemas/LogEntryReference' + incident: + $ref: '#/components/schemas/IncidentReference' + suppressed: + type: boolean + readOnly: true + description: Whether or not an alert is suppressed. Suppressed alerts are not created with a parent incident. + default: false + severity: + type: string + readOnly: true + description: The magnitude of the problem as reported by the monitoring tool. + enum: + - info + - warning + - error + - critical + integration: + $ref: '#/components/schemas/IntegrationReference' + body: + type: object + readOnly: true + description: A JSON object containing data describing the alert. + title: Body + properties: + type: + type: string + description: The type of the body. + enum: + - alert_body + contexts: + type: array + readOnly: true + description: Contexts to be included with the body such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + details: + type: string + readOnly: true + description: An arbitrary JSON object or string containing any data explaining the nature of the alert. (opaque JSON object) + required: + - type + example: + type: alert + status: resolved + incident: + id: PEYSGVF + type: incident_reference + body: + type: alert_body + contexts: + - type: link + details: + customKey: Server is on fire! + customKey2: Other stuff! + AlertUpdate: + type: object + x-examples: + Example 1: + status: resolved + incident: + id: string + type: incident_reference + properties: + status: + type: string + enum: + - resolved + - triggered + incident: + $ref: '#/components/schemas/AlertUpdateIncidentReference' + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + Impact: + title: Impact + type: object + properties: + id: + type: string + readOnly: true + name: + type: string + readOnly: true + type: + type: string + description: The kind of object that has been impacted + enum: + - business_service + status: + type: string + description: The current impact status of the object + enum: + - impacted + - not_impacted + additional_fields: + type: object + properties: + highest_impacting_priority: + type: object + nullable: true + description: Priority information for the highest priority level that is affecting the impacted object. + properties: + id: + type: string + readOnly: true + order: + type: integer + readOnly: true + CustomFieldsFieldValue: + type: object + properties: + id: + type: string + description: Id of the field. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + description: Determines the type of the reference. + enum: + - field_value + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + value: + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + required: + - id + - type + - name + - value + - display_name + - data_type + - field_type + - description + CustomFieldsEditableFieldValue: + title: Custom Field Value + type: object + properties: + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + value: + oneOf: + - type: object + title: Boolean + properties: value: - field_values: - - name: environment - value: production - responses: - '201': - description: Field values were updated - content: - application/json: - schema: - type: object - properties: - field_values: - type: array - items: - $ref: '#/components/schemas/CustomFieldsFieldValue' - required: - - field_values - examples: - response: - summary: Response Example - value: - field_values: - - id: PT4KHEE - type: field_value - name: environment - display_name: Runtime Environment - description: environment where incident occurred - fixed_options: true - datatype: string - multi_value: false - value: production - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - '/incidents/{id}/field_values/schema': - get: - tags: - - Incidents - operationId: getSchemaForIncident - description: | - Get detailed information about a Schema for an incident. - - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - summary: Get Incident's Schema - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_customfields_incident_schema' - - $ref: '#/components/parameters/early_access_customfields' - responses: - '200': - description: The schema requested. - content: - application/json: - schema: - type: object - properties: - schema: - $ref: '#/components/schemas/CustomFieldsIncidentSchema' - required: - - schema - examples: - response1: - summary: 'Example: No query parameters' - value: - schema: - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: Security Incident - description: Default schema to use for security incidents - field_configurations: - - id: PT4KHEE - type: field_configuration - field: - id: PT4KZZZ - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - display_name: Environment - description: null - datatype: string - multi_value: true - fixed_options: true - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - response2: - summary: 'Example: Using include[]=field_options' - value: - schema: - id: PT20YPA - type: schema - self: 'https://api.pagerduty.com/customfields/schemas/PT20YPA' - summary: Security Incident - title: Security Incident - description: Default schema to use for security incidents' - field_configurations: - - id: PT4KHEE - type: field_configuration - field: - id: PT4KZZZ - type: field - self: 'https://api.pagerduty.com/customfields/fields/PT4KZZZ' - summary: environment - name: environment - display_name: Environment - description: null - datatype: string - multi_value: true - fixed_options: true - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-07-01T21:30:42Z' - field_options: - - id: PT4KHEE - type: field_option - data: - datatype: string - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - required: true - default_value: - datatype: string - multi_value: true - value: - - prod - - stg - created_at: '2021-06-01T21:30:42Z' - updated_at: '2021-06-01T21:30:42Z' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - '/incidents/{id}/log_entries': - get: - x-pd-requires-scope: incidents.read - tags: - - Incidents - operationId: listIncidentLogEntries - description: | - List log entries for the specified incident. - - An incident represents a problem or an issue that needs to be addressed and resolved. - - A Log Entry are a record of all events on your account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - - Scoped OAuth requires: `incidents.read` - summary: List log entries for an incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/since' - - $ref: '#/components/parameters/until' - - $ref: '#/components/parameters/log_entry_is_overview' - - $ref: '#/components/parameters/include_log_entry' - responses: - '200': - description: A paginated array of the incident's log entries. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - log_entries: - type: array - items: - oneOf: - - $ref: '#/components/schemas/AcknowledgeLogEntry' - - $ref: '#/components/schemas/AnnotateLogEntry' - - $ref: '#/components/schemas/AssignLogEntry' - - $ref: '#/components/schemas/DelegateLogEntry' - - $ref: '#/components/schemas/EscalateLogEntry' - - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' - - $ref: '#/components/schemas/NotifyLogEntry' - - $ref: '#/components/schemas/ReachAckLimitLogEntry' - - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' - - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' - - $ref: '#/components/schemas/ResolveLogEntry' - - $ref: '#/components/schemas/SnoozeLogEntry' - - $ref: '#/components/schemas/TriggerLogEntry' - - $ref: '#/components/schemas/UnacknowledgeLogEntry' - - $ref: '#/components/schemas/UrgencyChangeLogEntry' - required: - - log_entries - examples: - response: - summary: Response Example - value: - log_entries: - - id: Q02JTSNZWHSEKV - type: trigger_log_entry - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - created_at: '2015-11-07T00:14:20Z' - agent: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - channel: - type: api - incident: - id: PT4KHLK - type: incident_reference - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - contexts: [] - event_details: - description: 'Tasks::SFDCValidator - PD_Data__c - duplicates' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/merge': - put: - tags: - - Incidents - x-pd-requires-scope: incidents.write - operationId: mergeIncidents - description: | - Merge a list of source incidents into this incident. - - An incident represents a problem or an issue that needs to be addressed and resolved. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - - Scoped OAuth requires: `incidents.write` - summary: Merge incidents - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: + type: boolean + nullable: true + - type: object + title: Float + properties: + value: + type: number + nullable: true + - type: object + title: Integer + properties: + value: + type: integer + nullable: true + - type: object + title: String + properties: + value: + oneOf: + - type: string + maxLength: 200 + nullable: true + - type: array + items: + type: string + maxLength: 200 + maxItems: 10 + uniqueItems: true + nullable: true + - type: object + title: Datetime + properties: + value: + type: string + nullable: true + format: date-time + - type: object + title: Url + properties: + value: + type: string + format: uri + maxLength: 200 + nullable: true + id: + type: string + description: The ID of the Field. + AcknowledgeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + acknowledgement_timeout: + type: integer + description: Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set. + AnnotateLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + AssignLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + DelegateLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + EscalateLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + ExhaustEscalationPathLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + NotifyLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + user: + $ref: '#/components/schemas/UserReference' + ReachAckLimitLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + ReachTriggerLimitLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + RepeatEscalationPathLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + ResolveLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + SnoozeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + changed_actions: + type: array + items: + $ref: '#/components/schemas/IncidentAction' + TriggerLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UnacknowledgeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UrgencyChangeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + FieldValueChangeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + CustomFieldValueChangeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + IncidentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentNote: + type: object + properties: + id: + type: string + readOnly: true + user: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + channel: + type: object + readOnly: true + description: The means by which this Note was created. Has different formats depending on type. + properties: + summary: + type: string + description: A string describing the source of the Note. + readOnly: true + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + html_url: + type: string + format: url + description: a URL at which the entity is uniquely displayed in the Web app + readOnly: true + required: + - summary content: - application/json: - schema: - type: object - properties: - source_incidents: - type: array - description: The source incidents that will be merged into the target incident and resolved. - items: - $ref: '#/components/schemas/IncidentReference' - required: - - source_incidents - examples: - request: - summary: Request Example - value: - source_incidents: - - id: P8JOGX7 - type: incident_reference - - id: PPVZH9X - type: incident_reference - responses: - '200': - description: 'The target incident, which now contains all the alerts from the source incident.' - content: - application/json: - schema: - type: object - properties: - incident: - $ref: '#/components/schemas/IncidentReference' - required: - - incident - examples: - response: - summary: Response Example - value: - incident: - id: PT4KHLK - type: incident_reference - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/notes': - get: - x-pd-requires-scope: incidents.read - tags: - - Incidents - operationId: listIncidentNotes - description: | - List existing notes for the specified incident. - - An incident represents a problem or an issue that needs to be addressed and resolved. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - - Scoped OAuth requires: `incidents.read` - summary: List notes for an incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: An array of notes. - content: - application/json: - schema: - type: object - properties: - notes: - type: array - items: - $ref: '#/components/schemas/IncidentNote' - required: - - notes - examples: - response: - summary: Response Example - value: - notes: - - id: PWL7QXS - user: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - channel: - summary: The PagerDuty website or APIs - content: Firefighters are on the scene. - created_at: '2013-03-06T15:28:51-05:00' - - id: PCQC25 - user: - id: PXPGF42 - type: bot_user_reference - summary: A Global Event Rule - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/event-rules/global/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - channel: - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - type: event_rule_reference - summary: A Global Event Rule - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - html_url: 'https://subdomain.pagerduty.com/event-rules/global/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - content: Initial alert information indicates a 1-alarm fire - created_at: '2013-03-06T15:28:42-05:00' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - tags: - - Incidents - x-pd-requires-scope: incidents.write - operationId: createIncidentNote + type: string + description: The note content + created_at: + type: string + format: date-time + description: The time at which the note was submitted + readOnly: true + updated_at: + type: string + format: date-time + description: The time at which the note was last updated + readOnly: true + required: + - content + example: + content: Firefighters are on the scene. + RelatedIncidentMachineLearningRelationship: + type: object description: | - Create a new note for the specified incident. + The data for a type of relationship where the Incident is related due to our machine learning algorithm. + properties: + grouping_classification: + type: string + description: | + The classification for why this Related Incident was grouped into this group. + Values can be one of: [similar_contents, prior_feedback], where: + similar_contents - The Related Incident was due to similar contents of the Incidents. + prior_feedback - The Related Incident was determined to be related, based on User feedback or Incident merge/unmerge actions. + enum: + - similar_contents + - prior_feedback + user_feedback: + type: object + description: The feedback provided from Users to influence the machine learning algorithm for future Related Incidents. + properties: + positive_feedback_count: + type: integer + description: The total number of times Users agreed that the Incidents are related. + negative_feedback_count: + type: integer + description: The total number of times Users disagreed that the Incidents are related. + RelatedIncidentServiceDependencyRelationship: + type: object + description: | + The data for a type of relationship where the Incident is related due to Business or Technical Service dependencies. - An incident represents a problem or an issue that needs to be addressed and resolved. + Both `dependent_services` and `supporting_services` are returned to signify the dependencies between the Services + that the Incident and Related Incident belong to. - A maximum of 2000 notes can be added to an incident. + Each Service reference returned in the list of supporting and dependent Services has a type of: + [business_service_reference, technical_service_reference]. + properties: + dependent_services: + type: array + items: + $ref: '#/components/schemas/RelatedIncidentServiceDependencyBase' + supporting_services: + type: array + items: + $ref: '#/components/schemas/RelatedIncidentServiceDependencyBase' + ResponderRequestTargetReference: + type: object + properties: + type: + type: string + description: The type of target (either a user or an escalation policy) + id: + type: string + description: The id of the user or escalation policy + summary: + type: string + incident_responders: + type: array + description: An array of responders associated with the specified incident + items: + $ref: '#/components/schemas/IncidentsRespondersReference' + ResponderRequest: + type: object + properties: + id: + type: string + description: The ID of the responder request + incident: + $ref: '#/components/schemas/IncidentReference' + requester: + $ref: '#/components/schemas/UserReference' + requested_at: + type: string + description: The time the request was made + message: + type: string + description: The message sent with the responder request + responder_request_targets: + type: array + description: The array of targets the responder request is being sent to + items: + $ref: '#/components/schemas/ResponderRequestTargetReference' + StatusUpdate: + type: object + properties: + id: + type: string + message: + type: string + description: The message of the status update. + created_at: + type: string + description: The date/time when this status update was created. + sender: + $ref: '#/components/schemas/UserReference' + subject: + type: string + description: The subject of the custom html email status update. Present if included in request body. + html_message: + type: string + description: The html content of the custom html email status update. Present if included in request body. + NotificationSubscriberWithContext: + title: NotificationSubscriberWithContext + description: A reference of a subscriber entity with additional subscription context. + type: object + example: + subscriber_id: PD1234 + subscriber_type: user + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + description: The type of the entity being subscribed + enum: + - user + - team + has_indirect_subscription: + type: boolean + description: If this subcriber has an indirect subscription to this incident via another object + subscribed_via: + nullable: true + type: array + items: + type: object + properties: + id: + type: string + description: The id of the object this subscriber is subscribed via + name: + type: string + description: The type of the object this subscriber is subscribed via + NotificationSubscriptionWithContext: + title: NotificationSubscriptionWithContext + type: object + description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. + x-examples: + example-1: + subscriber_id: string + subscriber_type: user + subscribable_id: string + subscribable_type: incident + account_id: string + result: success + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + enum: + - user + - team + description: The type of the entity being subscribed + subscribable_id: + type: string + description: The ID of the entity being subscribed to + subscribable_type: + type: string + enum: + - incident + - business_service + description: The type of the entity being subscribed to + account_id: + type: string + description: The type of the entity being subscribed to + result: + type: string + enum: + - success + - duplicate + - unauthorized + description: The resulting status of the subscription + NotificationSubscriber: + title: NotificationSubscriber + description: A reference of a subscriber entity. + type: object + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + description: The type of the entity being subscribed + enum: + - user + - team + example: + subscriber_id: PD1234 + subscriber_type: user + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + Service: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the service. + description: + type: string + description: The user-provided description of the service. + auto_resolve_timeout: + type: integer + description: Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 14400 + acknowledgement_timeout: + type: integer + description: Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 1800 + created_at: + type: string + format: date-time + description: The date/time when this service was created + readOnly: true + status: + type: string + description: | + The current state of the Service. Valid statuses are: - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - Scoped OAuth requires: `incidents.write` - summary: Create a note on an incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object + - `active`: The service is enabled and has no open incidents. This is the only status a service can be created with. + - `warning`: The service is enabled and has one or more acknowledged incidents. + - `critical`: The service is enabled and has one or more triggered incidents. + - `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode. + - `disabled`: The service is disabled and will not have any new triggered incidents. + enum: + - active + - warning + - critical + - maintenance + - disabled + default: active + last_incident_timestamp: + type: string + format: date-time + description: The date/time when the most recent incident was created for this service. + readOnly: true + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + response_play: + deprecated: true + description: Response plays associated with this service. + teams: + type: array + description: The set of teams associated with this service. + items: + $ref: '#/components/schemas/TeamReference' + readOnly: true + integrations: + type: array + description: An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references. + items: + $ref: '#/components/schemas/IntegrationReference' + readOnly: true + incident_urgency_rule: + $ref: '#/components/schemas/IncidentUrgencyRule' + support_hours: + $ref: '#/components/schemas/SupportHours' + scheduled_actions: + type: array + description: An array containing scheduled actions for the service. + items: + $ref: '#/components/schemas/ScheduledAction' + addons: + type: array + description: The array of Add-ons associated with this service. + items: + $ref: '#/components/schemas/AddonReference' + readOnly: true + alert_creation: + type: string + deprecated: true + description: | + Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging. + * "create_incidents" - The service will create one incident and zero alerts for each incoming event. + * "create_alerts_and_incidents" - The service will create one incident and one associated alert for each incoming event. + This attribute has been deprecated as all services will be migrated to use alerts and incidents. Afterward, the incident only service setting will no longer be available. For details, please refer to the knowledge base: https://support.pagerduty.com/docs/alerts#enable-and-disable-alerts-on-a-service. + enum: + - create_incidents + - create_alerts_and_incidents + default: create_alerts_and_incidents + alert_grouping_parameters: + description: Alert Grouping Parameters + deprecated: true + oneOf: + - $ref: '#/components/schemas/AlertGroupingParameters' + - type: object + title: Alert Grouping Settings Reference + deprecated: true + description: When a service uses alert grouping configuration that is unsupported via the services api, and can only be configured via the [Alert Grouping Settings API](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting). The reference object includes the new location details for the service's Alert Grouping Setting. When an `alert_grouping_settings_reference` is included in a create or update request it will be ignored and no changes are applied to the service. properties: - note: - type: object - properties: - content: - type: string - description: The note content - required: - - content - required: - - note - examples: - request: - summary: Request Example - value: - note: - content: Firefighters are on the scene. - responses: - '200': - description: The new note. - content: - application/json: - schema: - type: object - properties: - note: - $ref: '#/components/schemas/IncidentNote' - required: - - note - examples: - response: - summary: Response Example - value: - note: - id: PWL7QXS - user: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - channel: - summary: The PagerDuty website or APIs - content: Firefighters are on the scene. - created_at: '2013-03-06T15:28:51-05:00' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/outlier_incident': - get: - x-pd-requires-scope: incidents.read - tags: - - Incidents - operationId: getOutlierIncident - description: | - Gets Outlier Incident information for a given Incident on its Service. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#outlier-incident) + id: + type: string + readOnly: true + description: id of the related alert grouping setting + type: + readOnly: true + type: string + description: type of reference eg. alert_grouping_setting_reference + summary: + readOnly: true + type: string + description: an explanation of this reference + self: + readOnly: true + type: string + description: link to api endpoint for this setting + html_url: + readOnly: true + type: string + description: link to the ui page to edit the setting + alert_grouping: + type: string + deprecated: true + description: | + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options: + * null - No alert grouping on the service. Each alert will create a separate incident; + * "time" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans; + * "intelligent" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans - Scoped OAuth requires: `incidents.read` - summary: Get Outlier Incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/since' - - $ref: '#/components/parameters/additional_details' - responses: - '200': - description: Outlier Incident information calculated over the same Service as the given Incident. - content: - application/json: - schema: - description: '' - type: object - properties: - outlier_incident: - type: object - description: Outlier Incident information calculated over the same Service as the given Incident. - properties: - incident: - $ref: '#/components/schemas/Incident' - incident_template: - type: object - properties: - id: - type: string - readOnly: true - cluster_id: - type: string - readOnly: true - description: The cluster the Incident Template pattern belongs to - mined_text: - type: string - readOnly: true - description: The Incident Template mined pattern text - examples: - response: - summary: Response Example - value: - outlier_incident: - incident: - id: PR2P3RW - created_at: '2020-11-18T13:08:14Z' - self: 'https://api.pagerduty.com/incidents/PR2P3RW' - title: '[LINUX]Used disk space is more than 5 GB on volume /var/log : PROBLEM for ce51323' - occurrence: - count: 10 - frequency: 0.04 - category: rare - since: '2020-09-23T13:08:14Z' - until: '2021-01-18T13:08:14Z' - incident_template: - id: PX3P1PX - cluster_id: P2B3X5 - mined_text: '[LINUX]Used disk space is more than on volume <*> : PROBLEM for <*>' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/incidents/{id}/past_incidents': - get: - x-pd-requires-scope: incidents.read - summary: Get Past Incidents - tags: - - Incidents - responses: - '200': - description: OK - content: - application/json: - schema: - description: '' - type: object - properties: - past_incidents: - type: array - description: Aggregate of past incidents - items: - type: object - properties: - incident: - type: object - description: Incident model reference - properties: - id: - type: string - description: The globally unique identifier of the incident - created_at: - type: string - description: The date/time the incident was first triggered - self: - type: string - description: The URL at which the object is accessible - title: - type: string - description: 'The description of the nature, symptoms, cause, or effect of the incident' - score: - type: number - description: 'The computed similarity score associated with the incident and parent incident ' - total: - type: number - description: The total number of Past Incidents if the total parameter was set in the request - limit: - type: number - description: The maximum number of Incidents requested - examples: - response: - summary: Response Example - value: - past_incidents: - - incident: - id: PFBE9I2 - created_at: '2020-11-04T16:08:15Z' - self: 'https://api.pagerduty.com/incidents/PFBE9I2' - title: Things are so broken! - score: 46.8249 - - incident: - id: P1J6V6M - created_at: '2020-10-22T17:18:14Z' - self: 'https://api.pagerduty.com/incidents/P1J6V6M' - title: Things are so broken! - score: 46.8249 - - incident: - id: P6HPX5N - created_at: '2020-10-06T22:01:13Z' - self: 'https://api.pagerduty.com/incidents/P6HPX5N' - title: You forgot to feed the cat! - score: 0 - total: 3 - limit: 5 - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - operationId: getPastIncidents - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - description: | - Past Incidents returns Incidents within the past 6 months that have similar metadata and were generated on the same Service as the parent Incident. By default, 5 Past Incidents are returned. Note: This feature is currently available as part of the Event Intelligence package or Digital Operations plan only. + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + enum: + - time + - intelligent + alert_grouping_timeout: + type: integer + deprecated: true + description: | + The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#past_incidents) + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + auto_pause_notifications_parameters: + $ref: '#/components/schemas/AutoPauseNotificationsParameters' + required: + - type + - escalation_policy + example: + id: PSI2I2O + summary: string + type: service + self: string + html_url: string + name: My Web App + description: My cool web application that does things. + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + Assignment: + type: object + properties: + at: + type: string + format: date-time + description: Time at which the assignment was created. + assignee: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. - Scoped OAuth requires: `incidents.read` - '/incidents/{id}/related_incidents': - get: - x-pd-requires-scope: incidents.read - tags: - - Incidents - operationId: getRelatedIncidents - description: | - Returns the 20 most recent Related Incidents that are impacting other Responders and Services. Note: This feature is currently available as part of the Event Intelligence package or Digital Operations plan only. + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#related_incidents) + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + required: + - type + - id + - name + - email + description: (opaque JSON object) + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + required: + - at + - assignee + LogEntryReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AlertCount: + type: object + properties: + triggered: + type: integer + description: The count of triggered alerts grouped into this incident + resolved: + type: integer + description: The count of resolved alerts grouped into this incident + all: + type: integer + description: The total count of alerts grouped into this incident + EscalationPolicy: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the escalation policy. + description: + type: string + description: Escalation policy description. + num_loops: + type: integer + description: The number of times the escalation policy will repeat after reaching the end of its escalation. + default: 0 + minimum: 0 + on_call_handoff_notifications: + type: string + description: Determines how on call handoff notifications will be sent for users on the escalation policy. Defaults to "if_has_services". + enum: + - if_has_services + - always + escalation_rules: + type: array + items: + $ref: '#/components/schemas/EscalationRule' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + minLength: 0 + readOnly: true + teams: + type: array + description: Team associated with the policy. Account must have the `teams` ability to use this parameter. Only one team may be associated with the policy. + items: + $ref: '#/components/schemas/TeamReference' + minLength: 0 + required: + - type + - name + - escalation_rules + example: + id: PQIL2IX + type: escalation_policy + name: Engineering Escalation Policy + escalation_rules: + - escalation_delay_in_minutes: 30 + targets: + - id: PEYSGVF + type: user_reference + escalation_rule_assignment_strategy: + - type: round_robin + services: + - id: PIJ90N7 + type: service_reference + num_loops: 2 + on_call_handoff_notifications: if_has_services + teams: + - id: PQ9K7I8 + type: team_reference + description: Here is the ep for the engineering team. + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Team: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the team. + maxLength: 100 + description: + type: string + description: The description of the team. + maxLength: 1024 + default_role: + type: string + description: The team is private if the value is "none", or public if it is "manager" (the default permissions for a non-member of the team are either "none", or their base role up until "manager"). + default: manager + enum: + - manager + - none + required: + - name + - type + example: + type: team + name: Engineering + description: The engineering team + IncidentAction: + description: An incident action is a pending change to an incident that will automatically happen at some future time. + type: object + properties: + type: + type: string + enum: + - unacknowledge + - escalate + - resolve + - urgency_change + at: + type: string + format: date-time + to: + description: The urgency that the incident will change to. This field is only present when the type is `urgency_change`. + type: string + enum: + - high + discriminator: + propertyName: type + required: + - type + - at + Acknowledgement: + type: object + properties: + at: + type: string + format: date-time + description: Time at which the acknowledgement was created. + acknowledger: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. - Scoped OAuth requires: `incidents.read` - summary: Get Related Incidents - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/additional_details' - responses: - '200': - description: A list of Related Incidents and their relationships. - content: - application/json: - schema: - description: '' - type: object - properties: - related_incidents: - type: array - description: A list of Related Incidents and their relationships. - items: - type: object - properties: - incident_details: - $ref: '#/components/schemas/Incident' - description: Details of the incident. - relationship_details: - type: array - description: A list of reasons for why the Incident is considered related. - items: - type: object - properties: - relationship_type: - type: string - description: The type of relationship. A relationship outlines the reason why two Incidents are considered related. - relationship_metadata: - description: Metadata associated with the relationship. - anyOf: - - $ref: '#/components/schemas/RelatedIncidentMachineLearningRelationship' - - $ref: '#/components/schemas/RelatedIncidentServiceDependencyRelationship' - examples: - response: - summary: Response Example - value: - related_incidents: - - incident: - id: PR2P3RW - created_at: '2020-11-18T13:08:14Z' - self: 'https://api.pagerduty.com/incidents/PR2P3RW' - title: The server is on fire. - relationships: - - type: machine_learning_inferred - metadata: - grouping_classification: similar_contents - user_feedback: - positive_feedback_count: 12 - negative_feedback_count: 3 - - type: service_dependency - metadata: - dependent_services: - id: P1L1YEE - type: business_service_reference - self: 'https://api.pagerduty.com/business_services/P1L1YEE' - supporting_services: - id: PNGCNV2 - type: technical_service_reference - self: 'https://api.pagerduty.com/services/PNGCNV2' - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/incidents/{id}/responder_requests': - post: - x-pd-requires-scope: incidents.write - tags: - - Incidents - operationId: createIncidentResponderRequest - description: | - Send a new responder request for the specified incident. + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. - An incident represents a problem or an issue that needs to be addressed and resolved. + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + auto_resolve_timeout: + type: integer + description: Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 14400 + acknowledgement_timeout: + type: integer + description: Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 1800 + created_at: + type: string + format: date-time + description: The date/time when this service was created + readOnly: true + status: + type: string + description: | + The current state of the Service. Valid statuses are: - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - Scoped OAuth requires: `incidents.write` - summary: Create a responder request for an incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - requester_id: - type: string - description: The user id of the requester. - message: - type: string - description: The message sent with the responder request. - responder_request_targets: - description: The array of targets the responder request is sent to. - items: - $ref: '#/components/schemas/ResponderRequestTargetReference' - required: - - requester_id - - message - - responder_request_targets - examples: - request: - summary: Request Example - value: - requester_id: PL1JMK5 - message: Please help with issue - join bridge at +1(234)-567-8910 - responder_request_targets: - - responder_request_target: - id: PJ25ZYX - type: user_reference - responses: - '200': - description: The new responder request for the given incident. - content: - application/json: - schema: - type: object - properties: - responder_request: - $ref: '#/components/schemas/ResponderRequest' - required: - - responder_request - examples: - response: - summary: Response Example - value: - responder_request: - incident: - id: PXP12GZ - type: incident_reference - summary: Ongoing Incident in Mailroom - self: 'https://api.pagerduty.com/incidents/PXP12GZ' - html_url: 'https://subdomain.pagerduty.com/incidents/PXP12GZ' - requester: - id: P09TT3C - type: user_reference - summary: Jane Doe - self: 'https://api.pagerduty.com/users/P09TT3C' - html_url: 'https://subdomain.pagerduty.com/users/P09TT3C' - requested_at: '2018-08-16T14:55:17-07:00' - message: Please help with issue - join bridge at +1(234)-567-8910 - responder_request_targets: - - responder_request_target: - type: user - id: PL7A2O4 - incidents_responders: - - state: pending - user: - id: PL7A2O4 - type: user_reference - summary: Lee Turner - self: 'https://api.pagerduty.com/users/PL7A2O4' - html_url: 'https://subdomain.pagerduty.com/users/PL7A2O4' - avatar_url: 'https://secure.gravatar.com/avatar/51c673f51f6b483b24c889bbafbd2a67.png?d=mm&r=PG' - incident: - id: PXP12GZ - type: incident_reference - summary: Ongoing Incident in Mailroom - self: 'https://api.pagerduty.com/incidents/PXP12GZ' - html_url: 'https://subdomain.pagerduty.com/incidents/PXP12GZ' - updated_at: '2018-08-09T14:40:48-07:00' - message: Please help with issue - join bridge at +1(234)-567-8910 - requester: - id: P09TT3C - type: user_reference - summary: Jane Doe - self: 'https://api.pagerduty.com/users/P09TT3C' - html_url: 'https://subdomain.pagerduty.com/users/P09TT3C' - avatar_url: 'https://secure.gravatar.com/avatar/1c747247b75acc1f724e2784c838b3f8.png?d=mm&r=PG' - requested_at: '2018-08-09T21:40:49Z' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/snooze': - post: - tags: - - Incidents - x-pd-requires-scope: incidents.write - operationId: createIncidentSnooze + - `active`: The service is enabled and has no open incidents. This is the only status a service can be created with. + - `warning`: The service is enabled and has one or more acknowledged incidents. + - `critical`: The service is enabled and has one or more triggered incidents. + - `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode. + - `disabled`: The service is disabled and will not have any new triggered incidents. + enum: + - active + - warning + - critical + - maintenance + - disabled + default: active + last_incident_timestamp: + type: string + format: date-time + description: The date/time when the most recent incident was created for this service. + readOnly: true + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + response_play: + deprecated: true + description: Response plays associated with this service. + integrations: + type: array + description: An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references. + items: + $ref: '#/components/schemas/IntegrationReference' + readOnly: true + incident_urgency_rule: + $ref: '#/components/schemas/IncidentUrgencyRule' + support_hours: + $ref: '#/components/schemas/SupportHours' + scheduled_actions: + type: array + description: An array containing scheduled actions for the service. + items: + $ref: '#/components/schemas/ScheduledAction' + addons: + type: array + description: The array of Add-ons associated with this service. + items: + $ref: '#/components/schemas/AddonReference' + readOnly: true + alert_creation: + type: string + deprecated: true + description: | + Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging. + * "create_incidents" - The service will create one incident and zero alerts for each incoming event. + * "create_alerts_and_incidents" - The service will create one incident and one associated alert for each incoming event. + This attribute has been deprecated as all services will be migrated to use alerts and incidents. Afterward, the incident only service setting will no longer be available. For details, please refer to the knowledge base: https://support.pagerduty.com/docs/alerts#enable-and-disable-alerts-on-a-service. + enum: + - create_incidents + - create_alerts_and_incidents + default: create_alerts_and_incidents + alert_grouping_parameters: + description: Alert Grouping Parameters + deprecated: true + oneOf: + - $ref: '#/components/schemas/AlertGroupingParameters' + - type: object + title: Alert Grouping Settings Reference + deprecated: true + description: When a service uses alert grouping configuration that is unsupported via the services api, and can only be configured via the [Alert Grouping Settings API](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting). The reference object includes the new location details for the service's Alert Grouping Setting. When an `alert_grouping_settings_reference` is included in a create or update request it will be ignored and no changes are applied to the service. + properties: + id: + type: string + readOnly: true + description: id of the related alert grouping setting + type: + readOnly: true + type: string + description: type of reference eg. alert_grouping_setting_reference + summary: + readOnly: true + type: string + description: an explanation of this reference + self: + readOnly: true + type: string + description: link to api endpoint for this setting + html_url: + readOnly: true + type: string + description: link to the ui page to edit the setting + alert_grouping: + type: string + deprecated: true + description: | + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options: + * null - No alert grouping on the service. Each alert will create a separate incident; + * "time" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans; + * "intelligent" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + enum: + - time + - intelligent + alert_grouping_timeout: + type: integer + deprecated: true + description: | + The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`. + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + auto_pause_notifications_parameters: + $ref: '#/components/schemas/AutoPauseNotificationsParameters' + required: + - type + - id + - name + - email + - escalation_policy + description: (opaque JSON object) + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + id: PSI2I2O + summary: string + self: string + html_url: string + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + required: + - at + - acknowledger + AgentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + readOnly: true + User: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + required: + - name + - email + - type + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + Priority: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The user-provided short name of the priority. + description: + type: string + description: The user-provided description of the priority. + ResolveReason: + type: object + properties: + type: + type: string + description: The reason the incident was resolved. The only reason currently supported is merge. + default: merge_resolve_reason + enum: + - merge_resolve_reason + incident: + $ref: '#/components/schemas/IncidentReference' + IncidentsRespondersReference: + type: object + properties: + state: + type: string + description: The status of the responder being added to the incident + enum: + - pending + - joined + - declined + - user_cancelled + example: pending + user: + $ref: '#/components/schemas/UserReference' + incident: + $ref: '#/components/schemas/IncidentReference' + updated_at: + type: string + message: + type: string + description: The message sent with the responder request + requester: + $ref: '#/components/schemas/UserReference' + requested_at: + type: string + escalation_policy_requests: + type: array + description: Names of escalation policies that this responder was requested through, if applicable + items: + type: string + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IntegrationReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Context: + type: object + discriminator: + propertyName: type + properties: + type: + type: string + description: The type of context being attached to the incident. + enum: + - link + - image + href: + type: string + description: The link's target url + src: + type: string + description: The image's source url + text: + type: string + description: The alternate display for an image + required: + - type + AlertUpdateIncidentReference: + type: object + x-examples: + Example 1: + id: string + type: incident_reference + properties: + id: + type: string + type: + type: string + enum: + - incident_reference + required: + - id + LogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + RelatedIncidentServiceDependencyBase: + type: object + properties: + id: + type: string + description: The ID of the Service referenced. + readOnly: true + type: + type: string + description: The type of the related Service. + enum: + - business_service_reference + - technical_service_reference + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible. + IncidentUrgencyRule: + type: object + properties: + type: + type: string + description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' + default: constant + enum: + - constant + - use_support_hours + urgency: + type: string + description: The incidents' urgency, if type is constant. + default: high + enum: + - low + - high + - severity_based + during_support_hours: + $ref: '#/components/schemas/IncidentUrgencyType' + outside_support_hours: + $ref: '#/components/schemas/IncidentUrgencyType' + SupportHours: + type: object + properties: + type: + type: string + description: The type of support hours + default: fixed_time_per_day + enum: + - fixed_time_per_day + time_zone: + type: string + format: activesupport-time-zone + description: The time zone for the support hours + days_of_week: + type: array + readOnly: true + items: + type: integer + readOnly: true + description: The days of the week (1 through 7, for Monday through Sunday) + start_time: + type: string + format: time + description: The support hours' starting time of day (date portion is ignored) + end_time: + type: string + format: time + description: The support hours' ending time of day (date portion is ignored) + ScheduledAction: + type: object + properties: + type: + type: string + description: The type of schedule action. Must be set to urgency_change. + enum: + - urgency_change + at: + type: object + description: Represents when scheduled action will occur. + properties: + type: + type: string + description: Must be set to named_time. + enum: + - named_time + name: + type: string + description: Designates either the start or the end of support hours. + enum: + - support_hours_start + - support_hours_end + required: + - type + - name + to_urgency: + type: string + description: Urgency level. Must be set to high. + enum: + - high + required: + - type + - at + - to_urgency + AddonReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + src: + type: string + format: url + description: The URL source of the Addon + name: + type: string + description: The user entered name of the Addon. + required: + - type + - id + description: (opaque JSON object) + AlertGroupingParameters: + type: object + title: Alert Grouping Parameters + deprecated: true description: | - Snooze an incident. - - An incident represents a problem or an issue that needs to be addressed and resolved. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - - Scoped OAuth requires: `incidents.write` - summary: Snooze an incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. To turn grouping off set the type to null. + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + properties: + type: + type: string + nullable: true + enum: + - time + - intelligent + - content_based + - null + config: + type: object + title: Intelligent Alert Grouping + description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. + properties: + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + timeout: + type: integer + minimum: 1 + maximum: 1440 + description: The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + AutoPauseNotificationsParameters: + title: AutoPauseNotificationsParameters + type: object + description: Defines how alerts on this service are automatically suspended for a period of time before triggering, when identified as likely being transient. Note that automatically pausing notifications is only available on certain plans. + properties: + enabled: + type: boolean + default: false + description: Indicates whether alerts should be automatically suspended when identified as transient + timeout: + type: integer + enum: + - 0 + - 120 + - 180 + - 300 + - 600 + - 900 + description: Indicates in seconds how long alerts should be suspended before triggering. To automatically select the recommended timeout for a service, set this value to `0`. + recommended_timeout: + type: integer + enum: + - 120 + - 180 + - 300 + - 600 + - 900 + description: The recommended timeout setting for this service based on prior alert patterns. + example: + enabled: true + timeout: 300 + EscalationRule: + type: object + properties: + id: + type: string + readOnly: true + escalation_delay_in_minutes: + type: integer + description: The number of minutes before an unacknowledged incident escalates away from this rule. + targets: + type: array + minItems: 1 + maxItems: 10 + description: The targets an incident should be assigned to upon reaching this rule. + items: + $ref: '#/components/schemas/EscalationTargetReference' + escalation_rule_assignment_strategy: + type: string + description: The strategy used to assign the escalation rule to an incident. + enum: + - round_robin + - assign_to_everyone + required: + - escalation_delay_in_minutes + - targets + example: + escalation_delay_in_minutes: 30 + targets: + - id: PAM4FGS + type: user_reference + - id: PI7DH85 + type: schedule_reference + AcknowledgerReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ContactMethodReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + NotificationRuleReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Channel: + type: object + description: Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`. + properties: + type: + type: string + description: type + user: + type: string + description: (opaque JSON object) + team: + type: string + description: (opaque JSON object) + notification: + $ref: '#/components/schemas/Notification' + channel: + type: string + description: channel (opaque JSON object) + changeset: + type: object + description: Changeset present in CustomFieldsValueChange and FieldValueChange log entries. + properties: + customer_fields: + type: array + description: Customer Fields present in CustomFieldsValueChange and FieldValueChange log entries. + items: + type: object + properties: + id: + type: string + example: PDB5RLI + name: + type: string + example: serial_number_hardware + value: + oneOf: + - type: integer + - type: array + items: + type: string + namespace: + type: string + example: incidents + old_value: + type: string + nullable: true + example: null + application_fields: + type: array + description: Application Fields present in CustomFieldsValueChange and FieldValueChange log entries. + items: + type: object + properties: + id: + type: string + example: PIJ90N7 + name: + type: string + example: service + value: + oneOf: + - type: string + example: PIZW265 + - type: integer + example: 130 + - type: array + items: + type: string + namespace: + type: string + example: incidents + old_value: + type: string + nullable: true + example: null + custom_attributes: + type: object + description: Custom attributes for the changeset. + additionalProperties: + type: string + customer_schema: type: object properties: - duration: - type: integer - description: 'The number of seconds to snooze the incident for. After this number of seconds has elapsed, the incident will return to the "triggered" state.' - required: - - duration - examples: - request: - summary: Request Example - value: - duration: 3600 - responses: - '201': - description: The incident that was successfully snoozed. - content: - application/json: - schema: + old_value: + type: string + nullable: true + example: null + summary: + type: string + description: Same as `host` + host: + type: string + description: Nagios host + service: + type: string + description: Nagios service that created the event, if applicable + state: + type: string + description: State that caused the event + details: + type: string + description: Additional details of the incident (opaque JSON object) + service_key: + type: string + description: API service key + description: + type: string + description: Description of the event + incident_key: + type: string + description: Incident deduping string + to: + type: string + description: To address of the email + from: + type: string + description: From address of the email + subject: + type: string + description: Subject of the email + body: + type: string + description: Body of the email + body_content_type: + type: string + description: Content type of the email body. Will be `text/plain` or `text/html` + raw_url: + type: string + description: URL for raw text of email + html_url: + type: string + description: URL for html rendered version of the email. Only present if `content_type` is `text/html` + duration: + type: integer + description: For `snooze` log entries, this is the number of seconds that the incident was snoozed for. + required: + - type + title: NagiosChannel + IncidentUrgencyType: + type: object + properties: + type: + type: string + description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' + default: constant + enum: + - constant + - use_support_hours + urgency: + type: string + description: The incidents' urgency, if type is constant. + default: high + enum: + - low + - high + - severity_based + FlexibleTimeWindowIntelligentAlertGroupingConfig: + type: object + title: Intelligent Alert Grouping + description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. + properties: + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + TimeBasedAlertGroupingConfiguration: + type: object + title: Time Grouping + description: The configuration for Time Based Alert Grouping + properties: + timeout: + type: integer + minimum: 1 + maximum: 1440 + description: The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + ContentBasedAlertGroupingConfiguration: + type: object + title: Content Only Grouping + description: The configuration for Content Based Alert Grouping + properties: + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + time_window: + type: integer + minimum: 300 + maximum: 86400 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 <= time_window <= 3600 or 86400(i.e. 24 hours). + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + EscalationTargetReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Notification: + type: object + properties: + id: + type: string + readOnly: true + type: + type: string + description: The type of notification. + enum: + - sms_notification + - email_notification + - phone_notification + - push_notification + readOnly: true + started_at: + type: string + format: date-time + description: The time at which the notification was sent + readOnly: true + address: + type: string + description: The address where the notification was sent. This will be null for notification type `push_notification`. + readOnly: true + user: + $ref: '#/components/schemas/UserReference' + conferenceAddress: + type: string + description: The address of the conference bridge + status: + type: string + '': + type: string + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - incident: - $ref: '#/components/schemas/Incident' - required: - - incident - examples: - response: - summary: Response Example - value: - incident: - id: PT4KHLK - type: incident - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - incident_number: 1234 - created_at: '2015-10-06T21:30:42Z' - status: resolved - pending_actions: - - type: unacknowledge - at: '2015-11-10T01:02:52Z' - - type: resolve - at: '2015-11-10T04:31:52Z' - incident_key: baf7cf21b1da41b4b0221008339ff357 - service: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - assigned_via: escalation_policy - assignments: - - at: '2015-11-10T00:31:52Z' - assignee: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - acknowledgements: - - at: '2015-11-10T00:32:52Z' - acknowledger: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - last_status_change_at: '2015-10-06T21:38:23Z' - last_status_change_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - first_trigger_log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry_reference - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - urgency: high - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/status_updates': - post: - x-pd-requires-scope: incidents.write - tags: - - Incidents - operationId: createIncidentStatusUpdate + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Create a new status update for the specified incident. Optionally pass `subject` and `html_message` properties in the request body to override the email notification that gets sent. - - An incident represents a problem or an issue that needs to be addressed and resolved. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#incidents) - - Scoped OAuth requires: `incidents.write` - summary: Create a status update on an incident - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - message: - type: string - description: The message to be posted as a status update. - subject: - type: string - description: The subject to be sent for the custom html email status update. Required if sending custom html email. - html_message: - type: string - description: The html content to be sent for the custom html email status update. Required if sending custom html email. - required: - - message - examples: - request: - summary: Request Example - value: - message: The server fire is spreading. - subject: Server Fire Update - html_message:

Server is still on fire

- responses: - '200': - description: The new status update for the specified incident. - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - status_update: - $ref: '#/components/schemas/StatusUpdate' - required: - - status_update - examples: - response: - summary: Response Example - value: - status_update: - id: PWL7QXS - message: The server fire is spreading. - sender: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - created_at: '2013-03-06T15:28:51-05:00' - html_message:

Server is still on fire

- subject: Server Fire Update - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/incidents/{id}/status_updates/subscribers': - get: - x-pd-requires-scope: subscribers.read - summary: List Notification Subscribers - tags: - - Incidents - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - subscribers: - type: array - items: - $ref: '#/components/schemas/NotificationSubscriberWithContext' - - type: object - properties: - account_id: - type: string - description: The ID of the account belonging to the subscriber entity - examples: - response: - summary: Response Example - value: - limit: 100 - more: false - offset: 0 - subscribers: - - subscriber_id: PD1234 - subscriber_type: user - has_indirect_subscription: false - subscribed_via: null - - subscriber_id: PD1234 - subscriber_type: team - has_indirect_subscription: true - subscribed_via: - - id: PD1234 - type: business_service - account_id: PD1234 - total: 2 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - operationId: getIncidentNotificationSubscribers + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Retrieve a list of Notification Subscribers on the Incident. - - - > Users must be added through `POST /incident/{id}/status_updates/subscribers` to be returned from this endpoint. - Scoped OAuth requires: `subscribers.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - post: - x-pd-requires-scope: subscribers.write - summary: Add Notification Subscribers - operationId: createIncidentNotificationSubscribers - tags: - - Incidents - responses: - '200': - description: OK - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + RequestEntityTooLarge: + description: Caller provided a request that is too large to process. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - subscriptions: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/NotificationSubscriptionWithContext' - examples: - response: - summary: Response Example - value: - subscriptions: - - account_id: PD1234 - subscribable_id: PD1234 - subscribable_type: incident - subscriber_id: PD1234 - subscriber_type: user - result: success - - account_id: PD1234 - subscribable_id: PD1234 - subscribable_type: incident - subscriber_id: PD1234 - subscriber_type: team - result: duplicate - - account_id: PD1234 - subscribable_id: PD1235 - subscribable_type: incident - subscriber_id: PD1234 - subscriber_type: team - result: unauthorized - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - description: | - Subscribe the given entities to Incident Status Update Notifications. - - Scoped OAuth requires: `subscribers.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - subscribers: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/NotificationSubscriber' - required: - - subscribers - examples: - request: - summary: Request Example - value: - subscribers: - - subscriber_id: PD1234 - subscriber_type: team - - subscriber_id: PD1235 - subscriber_type: team - - subscriber_id: PD1234 - subscriber_type: user - description: The entities to subscribe. - '/incidents/{id}/status_updates/unsubscribe': - post: - x-pd-requires-scope: subscribers.write - summary: Remove Notification Subscriber - tags: - - Incidents - responses: - '200': - description: OK - content: - application/json: - schema: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + UnprocessableEntity: + description: Unprocessable Entity. Some arguments failed validation checks. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - deleted_count: - type: number - unauthorized_count: - type: number - non_existent_count: - type: number - required: - - deleted_count - - unauthorized_count - - non_existent_count - examples: - response: - summary: Response Example - value: - deleted_count: 1 - unauthorized_count: 1 - non_existent_count: 0 - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '422': - $ref: '#/components/responses/UnprocessableEntity' - operationId: removeIncidentNotificationSubscribers + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + incident_list_limit: + name: limit + in: query + required: false + description: The number of results per page. Maximum of 100. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Unsubscribes the matching Subscribers from Incident Status Update Notifications. + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `subscribers.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - subscribers: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/NotificationSubscriber' - required: - - subscribers - examples: - request: - summary: Request Example - value: - subscribers: - - subscriber_id: PD1234 - subscriber_type: team - - subscriber_id: PD1234 - subscriber_type: user - description: The entities to unsubscribe. + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + date_range: + name: date_range + in: query + description: When set to all, the since and until parameters and defaults are ignored. + schema: + type: string + enum: + - all + incident_key: + name: incident_key + in: query + description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. + schema: + type: string + incident_services: + name: service_ids[] + in: query + description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + incident_assigned_to_user: + name: user_ids[] + in: query + description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + incident_urgencies: + name: urgencies[] + in: query + description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. + explode: true + schema: + type: string + enum: + - high + - low + uniqueItems: true + incident_list_time_zone: + name: time_zone + in: query + description: Time zone used to render timestamps and to interpret `since/until` values before filtering. Rendering defaults to UTC if omitted. `since/until` default to the account's time zone if omitted. + schema: + type: string + format: tzinfo + statuses_incidents: + name: statuses[] + in: query + description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' + explode: true + schema: + type: string + enum: + - triggered + - acknowledged + - resolved + uniqueItems: true + sort_by_incidents: + name: sort_by + in: query + description: Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency. + style: form + explode: false + schema: + type: array + items: + type: string + maxItems: 2 + uniqueItems: true + include_incidents: + name: include[] + description: Array of additional details to include. + explode: true + in: query + schema: + type: string + enum: + - acknowledgers + - agents + - assignees + - conference_bridge + - escalation_policies + - first_trigger_log_entries + - priorities + - services + - teams + - users + uniqueItems: true + since_incidents: + schema: + type: string + in: query + name: since + description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. + until_incidents: + schema: + type: string + in: query + name: until + description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + from_header: + name: From + in: header + description: The email address of a valid user associated with the account making the request. + required: false + schema: + type: string + format: email + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + include_incident: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - acknowledgers + - agents + - assignees + - conference_bridge + - custom_fields + - escalation_policies + - first_trigger_log_entries + - priorities + - services + - teams + - users + uniqueItems: true + alert_key: + name: alert_key + in: query + description: Alert de-duplication key. + schema: + type: string + statuses_incident_alerts: + name: statuses[] + in: query + description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) + explode: true + schema: + type: string + enum: + - triggered + - resolved + uniqueItems: true + sort_by_incident_alerts: + name: sort_by + in: query + description: Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. + style: form + explode: false + schema: + type: string + enum: + - created_at + - resolved_at + - created_at:asc + - created_at:desc + - resolved_at:asc + - resolved_at:desc + maxItems: 2 + uniqueItems: true + include_incident_alerts: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - services + - first_trigger_log_entries + - incidents + uniqueItems: true + alert_id: + name: alert_id + in: path + description: The id of the alert to retrieve. + required: true + schema: + type: string + business_service_id: + name: business_service_id + in: path + description: The business service ID. + required: true + schema: + type: string + time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the account time zone. + schema: + type: string + format: tzinfo + since: + name: since + in: query + description: The start of the date range over which you want to search. + schema: + type: string + format: date-time + until: + name: until + in: query + description: The end of the date range over which you want to search. + schema: + type: string + format: date-time + log_entry_is_overview: + name: is_overview + in: query + description: If `true`, will return a subset of log entries that show only the most important changes to the incident. + required: false + schema: + type: boolean + default: false + include_log_entry: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - incidents + - services + - channels + - teams + uniqueItems: true + note_id: + name: note_id + in: path + description: The id of the note. + required: true + schema: + type: string + additional_details: + name: additional_details[] + in: query + description: Array of additional attributes to any of the returned incidents for related incidents. + explode: true + schema: + type: string + enum: + - incident + uniqueItems: true + past_incidents_limit: + name: limit + in: query + required: false + description: The number of results to be returned in the response. + schema: + type: integer + default: 5 + minimum: 1 + maximum: 999 + past_incidents_total: + name: total + in: query + required: false + description: | + By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. + schema: + type: boolean + default: false + x-stackQL-resources: + incidents: + id: pagerduty.incidents.incidents + name: incidents + title: Incidents + methods: + list: + operation: + $ref: '#/paths/~1incidents/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.incidents + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + update_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents/put' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1incidents~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.incident + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + merge: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1merge/put' + response: + mediaType: application/json + openAPIDocKey: '200' + snooze: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1snooze/post' + response: + mediaType: application/json + openAPIDocKey: '201' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/incidents/methods/get' + - $ref: '#/components/x-stackQL-resources/incidents/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/incidents/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/incidents/methods/update' + delete: [] + replace: [] + alerts: + id: pagerduty.incidents.alerts + name: alerts + title: Alerts + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1alerts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.alerts + config: + queryParamPushdown: + orderBy: + paramName: sort_by + syntax: suffix + supportedColumns: + - created_at + - resolved_at + top: + paramName: limit + maxValue: 100 + update_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1alerts/put' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1incidents~1{id}~1alerts~1{alert_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.alert + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1alerts~1{alert_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/alerts/methods/get' + - $ref: '#/components/x-stackQL-resources/alerts/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/alerts/methods/update' + delete: [] + replace: [] + business_service_impacts: + id: pagerduty.incidents.business_service_impacts + name: business_service_impacts + title: Business Service Impacts + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1business_services~1{business_service_id}~1impacts/put' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1business_services~1impacts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/business_service_impacts/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/business_service_impacts/methods/update' + delete: [] + replace: [] + custom_field_values: + id: pagerduty.incidents.custom_field_values + name: custom_field_values + title: Custom Field Values + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1custom_fields~1values/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.custom_fields + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1custom_fields~1values/put' + response: + mediaType: application/json + openAPIDocKey: '201' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/custom_field_values/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/custom_field_values/methods/update' + delete: [] + replace: [] + log_entries: + id: pagerduty.incidents.log_entries + name: log_entries + title: Log Entries + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1log_entries/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.log_entries + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/log_entries/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + notes: + id: pagerduty.incidents.notes + name: notes + title: Notes + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1notes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.notes + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1notes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1notes~1{note_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1incidents~1{id}~1notes~1{note_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/notes/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/notes/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/notes/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/notes/methods/delete' + replace: [] + outlier_incidents: + id: pagerduty.incidents.outlier_incidents + name: outlier_incidents + title: Outlier Incidents + methods: + get: + operation: + $ref: '#/paths/~1incidents~1{id}~1outlier_incident/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.outlier_incident + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/outlier_incidents/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + past_incidents: + id: pagerduty.incidents.past_incidents + name: past_incidents + title: Past Incidents + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1past_incidents/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.past_incidents + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 999 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/past_incidents/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + related_incidents: + id: pagerduty.incidents.related_incidents + name: related_incidents + title: Related Incidents + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1related_incidents/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.related_incidents + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/related_incidents/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + responder_requests: + id: pagerduty.incidents.responder_requests + name: responder_requests + title: Responder Requests + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1responder_requests/post' + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1responder_requests~1cancel/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/responder_requests/methods/create' + update: [] + delete: [] + replace: [] + status_updates: + id: pagerduty.incidents.status_updates + name: status_updates + title: Status Updates + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1status_updates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/status_updates/methods/create' + update: [] + delete: [] + replace: [] + status_update_subscribers: + id: pagerduty.incidents.status_update_subscribers + name: status_update_subscribers + title: Status Update Subscribers + methods: + list: + operation: + $ref: '#/paths/~1incidents~1{id}~1status_updates~1subscribers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.subscribers + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1status_updates~1subscribers/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unsubscribe: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1incidents~1{id}~1status_updates~1unsubscribe/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/status_update_subscribers/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/status_update_subscribers/methods/create' + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/ip_allow_lists.yaml b/providers/src/pagerduty/v00.00.00000/services/ip_allow_lists.yaml new file mode 100644 index 00000000..3eb6b5cd --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/ip_allow_lists.yaml @@ -0,0 +1,1162 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Ip Allow Lists + description: IP allow lists (early access). + version: 2.0.0 +paths: + /ip_allow_lists: + post: + x-pd-requires-scope: ip_allow_lists.write + tags: + - IP Allow Lists + summary: Create an IP allow list + operationId: createIpAllowList + description: | + + + > ### Early Access + > This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + + Create the account's IP allow list. + + Only Account Owners, Global Admins, and Account API Keys can call this endpoint. + + Scoped OAuth requires: `ip_allow_lists.write` + parameters: + - $ref: '#/components/parameters/ip_allow_list_early_access' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - ip_allow_list + properties: + ip_allow_list: + $ref: '#/components/schemas/IpAllowList' + examples: + basic: + summary: Create an enabled allow list + value: + ip_allow_list: + type: ip_allow_list + state: enabled + cidr_entries: + - cidr: 192.168.1.0/24 + description: Office VPN + responses: + '201': + description: IP allow list created. + content: + application/json: + schema: + type: object + required: + - ip_allow_list + properties: + ip_allow_list: + $ref: '#/components/schemas/IpAllowList' + examples: + response: + $ref: '#/components/examples/IpAllowListResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + get: + x-pd-requires-scope: ip_allow_lists.read + tags: + - IP Allow Lists + summary: List IP allow lists + operationId: listIpAllowLists + description: | + + + > ### Early Access + > This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + + Return all IP allow lists for the account. + + Only Account Owners, Global Admins, and Account API Keys can call this endpoint. + + Scoped OAuth requires: `ip_allow_lists.read` + parameters: + - $ref: '#/components/parameters/ip_allow_list_early_access' + responses: + '200': + description: IP allow lists retrieved successfully. + content: + application/json: + schema: + type: object + required: + - ip_allow_lists + properties: + ip_allow_lists: + type: array + maxItems: 1 + items: + $ref: '#/components/schemas/IpAllowList' + examples: + response: + summary: Example response + value: + ip_allow_lists: + - id: AGIS47HYOV6BDODBTMQKMPQPHU + type: ip_allow_list + state: enabled + cidr_entries: + - cidr: 192.168.1.0/24 + description: Office VPN + - cidr: 10.0.0.0/24 + description: Data Center + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage the account's IP Allow List. + /ip_allow_lists/{id}: + get: + x-pd-requires-scope: ip_allow_lists.read + tags: + - IP Allow Lists + summary: Get an IP allow list + operationId: getIpAllowList + description: | + + + > ### Early Access + > This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + + Return the IP allow list with the given `id`. + + Only Account Owners, Global Admins, and Account API Keys can call this endpoint. + + Scoped OAuth requires: `ip_allow_lists.read` + parameters: + - $ref: '#/components/parameters/ip_allow_list_early_access' + - $ref: '#/components/parameters/id' + responses: + '200': + description: IP allow list retrieved successfully. + content: + application/json: + schema: + type: object + required: + - ip_allow_list + properties: + ip_allow_list: + $ref: '#/components/schemas/IpAllowList' + examples: + response: + $ref: '#/components/examples/IpAllowListResponse' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + put: + x-pd-requires-scope: ip_allow_lists.write + tags: + - IP Allow Lists + summary: Update an IP allow list + operationId: updateIpAllowList + description: | + + + > ### Early Access + > This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + + Update the IP allow list with the given `id`. The request body fully replaces the writable fields. + + Only Account Owners, Global Admins, and Account API Keys can call this endpoint. + + Scoped OAuth requires: `ip_allow_lists.write` + parameters: + - $ref: '#/components/parameters/ip_allow_list_early_access' + - $ref: '#/components/parameters/id' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - ip_allow_list + properties: + ip_allow_list: + $ref: '#/components/schemas/IpAllowList' + examples: + update: + summary: Replace the allow list entries + value: + ip_allow_list: + type: ip_allow_list + state: enabled + cidr_entries: + - cidr: 192.168.1.0/24 + description: Office VPN + - cidr: 10.0.0.0/24 + description: Data Center + responses: + '200': + description: IP allow list updated successfully. + content: + application/json: + schema: + type: object + required: + - ip_allow_list + properties: + ip_allow_list: + $ref: '#/components/schemas/IpAllowList' + examples: + response: + $ref: '#/components/examples/IpAllowListResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + x-pd-requires-scope: ip_allow_lists.write + tags: + - IP Allow Lists + summary: Delete an IP allow list + operationId: deleteIpAllowList + description: | + + + > ### Early Access + > This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + + Delete the IP allow list with the given `id`. Subsequent `GET` and `PUT` requests for the same `id` will return `404`. The list is no longer enforced once deleted. + + Only Account Owners, Global Admins, and Account API Keys can call this endpoint. + + Scoped OAuth requires: `ip_allow_lists.write` + parameters: + - $ref: '#/components/parameters/ip_allow_list_early_access' + - $ref: '#/components/parameters/id' + responses: + '204': + description: IP allow list deleted successfully. No response body. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Manage a specific IP Allow List for the account. + /ip_allow_lists/{id}/audit/records: + get: + x-pd-requires-scope: audit_records.read + tags: + - IP Allow Lists + operationId: listIpAllowListAuditRecords + summary: List audit records for an IP allow list + description: | + + + > ### Early Access + > This API is in Early Access and may change at any time. You must pass the `X-EARLY-ACCESS: ip-allow-lists` header on every request, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + + The response will include audit records with changes that are made to the given IP allow list. + + The returned records are sorted by the `execution_time` from newest to oldest. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/ip_allow_list_early_access' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + summary: Response Example + value: + records: + - id: kRm-tyP + action: delete + actors: + - id: P8AC329 + type: api_key_reference + details: + fields: [] + references: [] + resource: + id: B2KTPSXM5L42BFCNYJ73HRDQML + type: ip_allow_list_reference + execution_context: + request_id: 4e8c2a1f9b3d7e6c5a8b2c9d1e4f7a3b + execution_time: '2026-04-20T18:09:47.563218Z' + method: + type: api_token + root_resource: + id: B2KTPSXM5L42BFCNYJ73HRDQML + type: ip_allow_list_reference + - id: xQ4nVbS + action: update + actors: + - id: P8AC329 + type: api_key_reference + details: + fields: + - name: state + value: enabled + before_value: disabled + references: [] + resource: + id: B2KTPSXM5L42BFCNYJ73HRDQML + type: ip_allow_list_reference + execution_context: + request_id: 7b3a9c1d2e5f8a4b6c9d0e1f2a3b4c5d + execution_time: '2026-04-16T09:51:33.207614Z' + method: + type: api_token + root_resource: + id: B2KTPSXM5L42BFCNYJ73HRDQML + type: ip_allow_list_reference + - id: Hf8-zEm + action: create + actors: + - id: P8AC329 + type: api_key_reference + details: + fields: + - name: state + value: disabled + before_value: null + references: + - name: cidr_entries + added: + - id: 192.0.2.0/24 + summary: Example Office Network + type: cidr_entry + removed: [] + resource: + id: B2KTPSXM5L42BFCNYJ73HRDQML + type: ip_allow_list_reference + execution_context: + request_id: 2c9d1e4f7a3b6c5a8b2c9d1e4f7a3b6c + execution_time: '2026-04-15T14:22:18.412903Z' + method: + type: api_token + root_resource: + id: B2KTPSXM5L42BFCNYJ73HRDQML + type: ip_allow_list_reference + limit: 10 + next_cursor: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records of changes made to the IP allow list. +components: + schemas: + IpAllowList: + type: object + description: | + An IP allow list restricts access to a PagerDuty account's subdomain to a set + of IPv4 CIDR ranges. Enforcement currently applies to web and mobile + application traffic. + properties: + id: + type: string + description: | + Unique identifier for the allow list + (e.g. `AGIS47HYOV6BDODBTMQKMPQPHU`). + readOnly: true + type: + type: string + description: A string that determines the schema of the object. + default: ip_allow_list + enum: + - ip_allow_list + readOnly: true + state: + type: string + description: | + Whether the allow list is enforced for the account. When `enabled`, only + requests from IPs matching one of the `cidr_entries` are permitted to + access the subdomain. When `disabled`, the allow list is stored but not + enforced. + enum: + - enabled + - disabled + cidr_entries: + type: array + description: | + The CIDR ranges that are allowed when the allow list is `enabled`. Must + be non-empty when `state` is `enabled`. + maxItems: 100 + items: + $ref: '#/components/schemas/CidrEntry' + required: + - state + - cidr_entries + example: + id: AGIS47HYOV6BDODBTMQKMPQPHU + type: ip_allow_list + state: enabled + cidr_entries: + - cidr: 192.168.1.0/24 + description: Office VPN + - cidr: 10.0.0.0/24 + description: Data Center + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + CidrEntry: + type: object + description: A single CIDR entry within an IP allow list. + required: + - cidr + properties: + cidr: + type: string + description: An IPv4 CIDR range. Each octet must be `0`-`255` and the mask must be between `1` and `32`. + pattern: ^((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)/([1-9]|[12]\d|3[0-2])$ + example: 192.168.1.0/24 + description: + type: string + nullable: true + description: An optional human-readable description for the entry. Limited to 64 characters. + maxLength: 64 + example: Office VPN + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: + type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned + + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned + + #### Resource deletion + - `before_value` MAY be returned + properties: + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name + value: + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: + type: object + properties: + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + required: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: + description: | + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + ip_allow_list_early_access: + name: X-EARLY-ACCESS + in: header + required: false + description: This API is currently in Early Access. You __MUST__ pass in this header with the value `ip-allow-lists`, and your account must be enrolled in the IP Allow Lists Early Access program. Contact your PagerDuty account team to request access. + schema: + type: string + enum: + - ip-allow-lists + default: ip-allow-lists + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + IpAllowListResponse: + summary: Example response + value: + ip_allow_list: + id: AGIS47HYOV6BDODBTMQKMPQPHU + type: ip_allow_list + state: enabled + cidr_entries: + - cidr: 192.168.1.0/24 + description: Office VPN + - cidr: 10.0.0.0/24 + description: Data Center + x-stackQL-resources: + ip_allow_lists: + id: pagerduty.ip_allow_lists.ip_allow_lists + name: ip_allow_lists + title: Ip Allow Lists + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1ip_allow_lists/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1ip_allow_lists/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.ip_allow_lists + get: + operation: + $ref: '#/paths/~1ip_allow_lists~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.ip_allow_list + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1ip_allow_lists~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1ip_allow_lists~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/ip_allow_lists/methods/get' + - $ref: '#/components/x-stackQL-resources/ip_allow_lists/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/ip_allow_lists/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/ip_allow_lists/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/ip_allow_lists/methods/delete' + replace: [] + audit_records: + id: pagerduty.ip_allow_lists.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1ip_allow_lists~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/licenses.yaml b/providers/src/pagerduty/v00.00.00000/services/licenses.yaml index 24d67feb..f8faf1a2 100644 --- a/providers/src/pagerduty/v00.00.00000/services/licenses.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/licenses.yaml @@ -1,2656 +1,8 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Licenses + description: Licenses and license allocations for the account. version: 2.0.0 - title: PagerDuty API - licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - LicenseWithCounts: - allOf: - - type: object - required: - - id - - description - - name - - valid_roles - properties: - id: - type: string - description: Uniquely identifies the resource - description: - type: string - description: | - Description of the License. May include the names of add-ons associated with - the License, if there are any. - name: - type: string - description: | - Name of the License. - valid_roles: - type: array - description: The roles a User with this License can have - items: - type: string - role_group: - type: string - enum: - - FullUser - - Stakeholder - description: Indicates whether this License is assignable to full or stakeholder Users - example: FullUser - type: - type: string - description: Type of object - self: - type: string - description: API URL to access the License - html_url: - type: string - description: HTML URL to access the License - summary: - type: string - description: Summary of the License - - type: object - properties: - current_value: - type: integer - description: How many of these Licenses are currently allocated to Users - allocations_available: - type: integer - nullable: true - description: | - How many of these licenses are available to be allocated to a user. If this - value is "null" then there is no limit on the number of allocations allowed. - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - license_allocations: - id: pagerduty.licenses.license_allocations - name: license_allocations - title: License Allocations - methods: - list_license_allocations: - operation: - $ref: '#/paths/~1license_allocations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.license_allocations - _list_license_allocations: - operation: - $ref: '#/paths/~1license_allocations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/license_allocations/methods/list_license_allocations' - insert: [] - update: [] - delete: [] - licenses: - id: pagerduty.licenses.licenses - name: licenses - title: Licenses - methods: - list_licenses: - operation: - $ref: '#/paths/~1licenses/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.licenses - _list_licenses: - operation: - $ref: '#/paths/~1licenses/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/licenses/methods/list_licenses' - insert: [] - update: [] - delete: [] paths: /license_allocations: get: @@ -2664,8 +16,6 @@ paths: Scoped OAuth requires: `licenses.read` summary: List License Allocations parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/offset_limit' - $ref: '#/components/parameters/offset_offset' responses: @@ -2674,27 +24,84 @@ paths: content: application/json: schema: - allOf: - - type: object - properties: - license_allocations: - type: array - items: + type: object + properties: + license_allocations: + type: array + items: + type: object + required: + - user + - license + - allocated_at + properties: + user: + $ref: '#/components/schemas/UserReference' + license: type: object required: - - user - - license - - allocated_at + - id + - description + - name + - valid_roles properties: - user: - $ref: '#/components/schemas/UserReference' - license: - $ref: '#/components/schemas/LicenseWithCounts/allOf/0' - allocated_at: + id: + type: string + description: Uniquely identifies the resource + description: type: string - description: Indicates the date and time the License was allocated to the User - format: date-time - - $ref: '#/components/schemas/Pagination' + description: | + Description of the License. May include the names of add-ons associated with + the License, if there are any. + name: + type: string + description: | + Name of the License. + valid_roles: + type: array + description: The roles a User with this License can have + items: + type: string + role_group: + type: string + enum: + - FullUser + - Stakeholder + description: Indicates whether this License is assignable to full or stakeholder Users + example: FullUser + type: + type: string + description: Type of object + self: + type: string + description: API URL to access the License + html_url: + type: string + description: HTML URL to access the License + summary: + type: string + description: Summary of the License + allocated_at: + type: string + description: Indicates the date and time the License was allocated to the User + format: date-time + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true examples: response: summary: Response Example @@ -2730,6 +137,7 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' + description: The Licenses allocated to Users within your Account /licenses: get: x-pd-requires-scope: licenses.read @@ -2741,9 +149,7 @@ paths: Scoped OAuth requires: `licenses.read` summary: List Licenses - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + parameters: [] responses: '200': description: Licenses associated with your Account @@ -2814,3 +220,357 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' + description: The Licenses associated with your Account +components: + schemas: + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + LicenseWithCounts: + type: object + required: + - id + - description + - name + - valid_roles + properties: + id: + type: string + description: Uniquely identifies the resource + description: + type: string + description: | + Description of the License. May include the names of add-ons associated with + the License, if there are any. + name: + type: string + description: | + Name of the License. + valid_roles: + type: array + description: The roles a User with this License can have + items: + type: string + role_group: + type: string + enum: + - FullUser + - Stakeholder + description: Indicates whether this License is assignable to full or stakeholder Users + example: FullUser + type: + type: string + description: Type of object + self: + type: string + description: API URL to access the License + html_url: + type: string + description: HTML URL to access the License + summary: + type: string + description: Summary of the License + current_value: + type: integer + description: How many of these Licenses are currently allocated to Users + allocations_available: + type: integer + nullable: true + description: | + How many of these licenses are available to be allocated to a user. If this + value is "null" then there is no limit on the number of allocations allowed. + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + x-stackQL-resources: + license_allocations: + id: pagerduty.licenses.license_allocations + name: license_allocations + title: License Allocations + methods: + list: + operation: + $ref: '#/paths/~1license_allocations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.license_allocations + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/license_allocations/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + licenses: + id: pagerduty.licenses.licenses + name: licenses + title: Licenses + methods: + list: + operation: + $ref: '#/paths/~1licenses/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.licenses + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/licenses/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/log_entries.yaml b/providers/src/pagerduty/v00.00.00000/services/log_entries.yaml index d470ad3a..94735da0 100644 --- a/providers/src/pagerduty/v00.00.00000/services/log_entries.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/log_entries.yaml @@ -1,121 +1,348 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Log Entries + description: Log entries record everything that happens to an incident. version: 2.0.0 - title: PagerDuty API - log_entries - description: Log_Entries -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /log_entries: + get: + x-pd-requires-scope: incidents.read + tags: + - Log Entries + operationId: listLogEntries + description: | + List all of the incident log entries across the entire account. + + A log of all the events that happen to an Incident, and these are exposed as Log Entries. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#log-entries) + + Scoped OAuth requires: `incidents.read` + summary: List log entries + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/time_zone' + - $ref: '#/components/parameters/since' + - $ref: '#/components/parameters/until' + - $ref: '#/components/parameters/log_entry_is_overview' + - $ref: '#/components/parameters/include_log_entry' + - $ref: '#/components/parameters/team_ids' + responses: + '200': + description: A paginated array of log entries. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + log_entries: + type: array + items: + oneOf: + - $ref: '#/components/schemas/AcknowledgeLogEntry' + - $ref: '#/components/schemas/AnnotateLogEntry' + - $ref: '#/components/schemas/AssignLogEntry' + - $ref: '#/components/schemas/DelegateLogEntry' + - $ref: '#/components/schemas/EscalateLogEntry' + - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' + - $ref: '#/components/schemas/NotifyLogEntry' + - $ref: '#/components/schemas/ReachAckLimitLogEntry' + - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' + - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' + - $ref: '#/components/schemas/ResolveLogEntry' + - $ref: '#/components/schemas/SnoozeLogEntry' + - $ref: '#/components/schemas/TriggerLogEntry' + - $ref: '#/components/schemas/UnacknowledgeLogEntry' + - $ref: '#/components/schemas/UrgencyChangeLogEntry' + required: + - log_entries + examples: + response: + summary: Response Example + value: + log_entries: + - id: Q02JTSNZWHSEKV + type: trigger_log_entry + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + created_at: '2015-11-07T00:14:20Z' + agent: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + channel: + type: api + incident: + id: PT4KHLK + type: incident_reference + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + contexts: [] + event_details: + description: Tasks::SFDCValidator - PD_Data__c - duplicates + limit: 1 + offset: 0 + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List all of the log entries across your account. These can be filtered (for instance, by time or by team), and the results will be paginated. + /log_entries/{id}: + get: + x-pd-requires-scope: incidents.read + tags: + - Log Entries + operationId: getLogEntry + description: | + Get details for a specific incident log entry. This method provides additional information you can use to get at raw event data. + + A log of all the events that happen to an Incident, and these are exposed as Log Entries. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#log-entries) + + Scoped OAuth requires: `incidents.read` + summary: Get a log entry + parameters: + - $ref: '#/components/parameters/time_zone' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_log_entry' + responses: + '200': + description: A single log entry. + content: + application/json: + schema: + type: object + properties: + log_entry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + acknowledgement_timeout: + type: integer + description: Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set. + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + user: + $ref: '#/components/schemas/UserReference' + changed_actions: + type: array + items: + $ref: '#/components/schemas/IncidentAction' + required: + - log_entry + examples: + response: + summary: Response Example + value: + log_entry: + id: Q02JTSNZWHSEKV + type: trigger_log_entry + summary: Triggered through the API + self: https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV + created_at: '2015-11-07T00:14:20Z' + agent: + id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + channel: + type: api + incident: + id: PT4KHLK + type: incident_reference + summary: '[#1234] The server is on fire.' + self: https://api.pagerduty.com/incidents/PT4KHLK + html_url: https://subdomain.pagerduty.com/incidents/PT4KHLK + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + contexts: [] + event_details: + description: Tasks::SFDCValidator - PD_Data__c - duplicates + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get a single log entry by ID. + /log_entries/{id}/channel: + put: + x-pd-requires-scope: incidents.write + tags: + - Log Entries + operationId: updateLogEntryChannel + description: | + Update an existing incident log entry channel. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#log-entries) + + Scoped OAuth requires: `incidents.write` + summary: Update log entry channel information. + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + channel: + type: object + description: The parameters to update. + properties: + details: + type: string + description: New channel details + type: + type: string + description: Channel type. Cannot be changed and must match the present value. + enum: + - web_trigger + - mobile + required: + - type + - details + required: + - channel + examples: + request: + summary: Request Example + value: + channel: + type: web_trigger + details: New channel details + description: The log entry channel to be updated. + responses: + '202': + description: The channel information modification was accepted. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Log entry channel information. components: schemas: Pagination: @@ -139,1860 +366,1638 @@ components: nullable: true readOnly: true AcknowledgeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true properties: - acknowledgement_timeout: - type: integer - description: 'Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set.' - type: + description: type: string - enum: - - acknowledgement_log_entry + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + acknowledgement_timeout: + type: integer + description: Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set. AnnotateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - annotate_log_entry - AssignLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - assign_log_entry - DelegateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - delegate_log_entry - EscalateLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - assignees: - type: array - readOnly: true - description: An array of assigned Users for this log entry - items: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - escalate_log_entry - ExhaustEscalationPathLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - exhaust_escalation_path_log_entry - NotifyLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - created_at: - type: string - format: date-time - readOnly: true - description: Time at which the log entry was created - user: - $ref: '#/components/schemas/UserReference' - type: - type: string - enum: - - notify_log_entry - ReachAckLimitLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - reach_ack_limit_log_entry - ReachTriggerLimitLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - reach_trigger_limit_log_entry - RepeatEscalationPathLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - repeat_escalation_path_log_entry - ResolveLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - resolve_log_entry - SnoozeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - changed_actions: - type: array - items: - $ref: '#/components/schemas/IncidentAction' - type: - type: string - enum: - - snooze_log_entry - TriggerLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - trigger_log_entry - UnacknowledgeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - unacknowledge_log_entry - UrgencyChangeLogEntry: - allOf: - - $ref: '#/components/schemas/LogEntry' - - type: object - properties: - type: - type: string - enum: - - urgency_change_log_entry - LogEntry: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - acknowledge_log_entry - - annotate_log_entry - - assign_log_entry - - delegate_log_entry - - escalate_log_entry - - exhaust_escalation_path_log_entry - - notify_log_entry - - reach_ack_limit_log_entry - - reach_trigger_limit_log_entry - - repeat_escalation_path_log_entry - - resolve_log_entry - - snooze_log_entry - - trigger_log_entry - - unacknowledge_log_entry - - urgency_change_log_entry - created_at: - type: string - format: date-time - readOnly: true - description: Time at which the log entry was created. - channel: - $ref: '#/components/schemas/Channel' - agent: - $ref: '#/components/schemas/AgentReference' - note: - type: string - readOnly: true - description: 'Optional field containing a note, if one was included with the log entry.' - contexts: - type: array - readOnly: true - description: Contexts to be included with the trigger such as links to graphs or images. - items: - $ref: '#/components/schemas/Context' - service: - $ref: '#/components/schemas/ServiceReference' - incident: - $ref: '#/components/schemas/IncidentReference' - teams: - type: array - readOnly: true - description: Will consist of references unless included - items: - $ref: '#/components/schemas/TeamReference' - event_details: - type: object - readOnly: true - properties: - description: - type: string - description: Additional details about the event. - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - IncidentAction: - description: An incident action is a pending change to an incident that will automatically happen at some future time. type: object properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - enum: - - unacknowledge - - escalate - - resolve - - urgency_change - at: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string format: date-time - discriminator: - propertyName: type - required: - - type - - at - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true properties: - type: + description: type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string example: - type: tag - label: Batman - Channel: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + AssignLogEntry: type: object - description: 'Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`. See [below](https://developer.pagerduty.com/documentation/rest/log_entries/show#channel_types) for detailed information about channel formats.' properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - description: type - user: - type: object - team: - type: object - notification: - $ref: '#/components/schemas/Notification' + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: type: object - description: channel - required: - - type - AgentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - description: 'The agent (user, service or integration) that created or modified the Incident Log Entry.' + readOnly: true properties: - type: - enum: - - user_reference - - service_reference - - integration_reference + description: type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array readOnly: true - Context: + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + DelegateLogEntry: type: object - discriminator: - propertyName: type properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - description: The type of context being attached to the incident. - enum: - - link - - image - href: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - description: The link's target url - src: + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: type: string - description: The image's source url - text: + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string - description: The alternate display for an image - required: - - type - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - IncidentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true properties: - type: + description: type: string - enum: - - incident_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + EscalateLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true properties: - type: + description: type: string - enum: - - team_reference - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - Notification: + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + assignees: + type: array + readOnly: true + description: An array of assigned Users for this log entry + items: + $ref: '#/components/schemas/UserReference' + ExhaustEscalationPathLogEntry: type: object properties: id: type: string readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. type: type: string - description: The type of notification. - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification readOnly: true - started_at: + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: type: string format: date-time - description: The time at which the notification was sent readOnly: true - address: + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: type: string - description: The address where the notification was sent. This will be null for notification type `push_notification`. readOnly: true - user: - $ref: '#/components/schemas/UserReference' - conferenceAddress: + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + NotifyLogEntry: + type: object + properties: + id: type: string - description: The address of the conference bridge - status: + readOnly: true + summary: type: string - '': + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: type: string - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + user: + $ref: '#/components/schemas/UserReference' + ReachAckLimitLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + ReachTriggerLimitLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + RepeatEscalationPathLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + ResolveLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + SnoozeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + changed_actions: + type: array + items: + $ref: '#/components/schemas/IncidentAction' + TriggerLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UnacknowledgeLogEntry: + type: object + properties: + id: type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: + readOnly: true + summary: type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UrgencyChangeLogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + LogEntry: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + created_at: + type: string + format: date-time + readOnly: true + description: Time at which the log entry was created. + channel: + $ref: '#/components/schemas/Channel' + agent: + $ref: '#/components/schemas/AgentReference' + note: + type: string + readOnly: true + description: Optional field containing a note, if one was included with the log entry. + contexts: + type: array + readOnly: true + description: Contexts to be included with the trigger such as links to graphs or images. + items: + $ref: '#/components/schemas/Context' + service: + $ref: '#/components/schemas/ServiceReference' + incident: + $ref: '#/components/schemas/IncidentReference' + teams: + type: array + readOnly: true + description: Will consist of references unless included + items: + $ref: '#/components/schemas/TeamReference' + event_details: + type: object + readOnly: true + properties: + description: + type: string + description: Additional details about the event. + changeset: + type: array + description: String record of custom field updates + items: + type: string + example: + - Updated serial_number to 123 + - Updated affected_room to ["Queen West"] + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentAction: + description: An incident action is a pending change to an incident that will automatically happen at some future time. + type: object + properties: + type: + type: string + enum: + - unacknowledge + - escalate + - resolve + - urgency_change + at: + type: string + format: date-time + to: + description: The urgency that the incident will change to. This field is only present when the type is `urgency_change`. + type: string + enum: + - high + discriminator: + propertyName: type + required: + - type + - at + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + Channel: + type: object + description: Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`. + properties: + type: + type: string + description: type + user: + type: string + description: (opaque JSON object) + team: + type: string + description: (opaque JSON object) + notification: + $ref: '#/components/schemas/Notification' + channel: + type: string + description: channel (opaque JSON object) + changeset: + type: object + description: Changeset present in CustomFieldsValueChange and FieldValueChange log entries. + properties: + customer_fields: + type: array + description: Customer Fields present in CustomFieldsValueChange and FieldValueChange log entries. + items: + type: object + properties: + id: + type: string + example: PDB5RLI + name: + type: string + example: serial_number_hardware + value: + oneOf: + - type: integer + - type: array + items: + type: string + namespace: + type: string + example: incidents + old_value: + type: string + nullable: true + example: null + application_fields: + type: array + description: Application Fields present in CustomFieldsValueChange and FieldValueChange log entries. + items: + type: object + properties: + id: + type: string + example: PIJ90N7 + name: + type: string + example: service + value: + oneOf: + - type: string + example: PIZW265 + - type: integer + example: 130 + - type: array + items: + type: string + namespace: + type: string + example: incidents + old_value: + type: string + nullable: true + example: null + custom_attributes: + type: object + description: Custom attributes for the changeset. + additionalProperties: + type: string + customer_schema: + type: object + properties: + old_value: + type: string + nullable: true + example: null + summary: type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: + description: Same as `host` + host: type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: + description: Nagios host + service: type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: + description: Nagios service that created the event, if applicable + state: type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: + description: State that caused the event + details: type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: + description: Additional details of the incident (opaque JSON object) + service_key: + type: string + description: API service key + description: + type: string + description: Description of the event + incident_key: + type: string + description: Incident deduping string + to: + type: string + description: To address of the email + from: + type: string + description: From address of the email + subject: + type: string + description: Subject of the email + body: + type: string + description: Body of the email + body_content_type: + type: string + description: Content type of the email body. Will be `text/plain` or `text/html` + raw_url: + type: string + description: URL for raw text of email + html_url: + type: string + description: URL for html rendered version of the email. Only present if `content_type` is `text/html` + duration: + type: integer + description: For `snooze` log entries, this is the number of seconds that the incident was snoozed for. + required: + - type + title: NagiosChannel + AgentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + readOnly: true + Context: + type: object + discriminator: + propertyName: type + properties: + type: type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: + description: The type of context being attached to the incident. + enum: + - link + - image + href: type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: + description: The link's target url + src: + type: string + description: The image's source url + text: + type: string + description: The alternate display for an image + required: + - type + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Notification: + type: object + properties: + id: + type: string + readOnly: true + type: + type: string + description: The type of notification. + enum: + - sms_notification + - email_notification + - phone_notification + - push_notification + readOnly: true + started_at: + type: string + format: date-time + description: The time at which the notification was sent + readOnly: true + address: + type: string + description: The address where the notification was sent. This will be null for notification type `push_notification`. + readOnly: true + user: + $ref: '#/components/schemas/UserReference' + conferenceAddress: + type: string + description: The address of the conference bridge + status: + type: string + '': type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access responses: ArgumentError: description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Unauthorized: description: | Caller did not supply credentials or did not provide the correct credentials. @@ -2000,7 +2005,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -2008,18 +2035,63 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -2042,912 +2114,156 @@ components: example: message: Not Found code: 2100 - NotFound: - description: The requested resource was not found. + Conflict: + description: The request conflicts with the current state of the server. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the account time zone. + schema: + type: string + format: tzinfo + since: + name: since + in: query + description: The start of the date range over which you want to search. + schema: + type: string + format: date-time + until: + name: until + in: query + description: The end of the date range over which you want to search. + schema: + type: string + format: date-time + log_entry_is_overview: + name: is_overview + in: query + description: If `true`, will return a subset of log entries that show only the most important changes to the incident. + required: false + schema: + type: boolean + default: false + include_log_entry: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - incidents + - services + - channels + - teams + uniqueItems: true + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + from_header: + name: From in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + description: The email address of a valid user associated with the account making the request. + required: false + schema: + type: string + format: email x-stackQL-resources: log_entries: id: pagerduty.log_entries.log_entries name: log_entries title: Log Entries methods: - list_log_entries: + list: operation: $ref: '#/paths/~1log_entries/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.log_entries - _list_log_entries: - operation: - $ref: '#/paths/~1log_entries/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_log_entry: + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: operation: $ref: '#/paths/~1log_entries~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.log_entry - _get_log_entry: - operation: - $ref: '#/paths/~1log_entries~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_log_entry_channel: + update_channel: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1log_entries~1{id}~1channel/put' response: @@ -2955,267 +2271,12 @@ components: openAPIDocKey: '202' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/log_entries/methods/get_log_entry' - - $ref: '#/components/x-stackQL-resources/log_entries/methods/list_log_entries' + - $ref: '#/components/x-stackQL-resources/log_entries/methods/get' + - $ref: '#/components/x-stackQL-resources/log_entries/methods/list' insert: [] update: [] delete: [] -paths: - /log_entries: - get: - x-pd-requires-scope: incidents.read - tags: - - Log Entries - operationId: listLogEntries - description: | - List all of the incident log entries across the entire account. - - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#log-entries) - - Scoped OAuth requires: `incidents.read` - summary: List log entries - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/since' - - $ref: '#/components/parameters/until' - - $ref: '#/components/parameters/log_entry_is_overview' - - $ref: '#/components/parameters/include_log_entry' - - $ref: '#/components/parameters/team_ids' - responses: - '200': - description: A paginated array of log entries. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - log_entries: - type: array - items: - oneOf: - - $ref: '#/components/schemas/AcknowledgeLogEntry' - - $ref: '#/components/schemas/AnnotateLogEntry' - - $ref: '#/components/schemas/AssignLogEntry' - - $ref: '#/components/schemas/DelegateLogEntry' - - $ref: '#/components/schemas/EscalateLogEntry' - - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' - - $ref: '#/components/schemas/NotifyLogEntry' - - $ref: '#/components/schemas/ReachAckLimitLogEntry' - - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' - - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' - - $ref: '#/components/schemas/ResolveLogEntry' - - $ref: '#/components/schemas/SnoozeLogEntry' - - $ref: '#/components/schemas/TriggerLogEntry' - - $ref: '#/components/schemas/UnacknowledgeLogEntry' - - $ref: '#/components/schemas/UrgencyChangeLogEntry' - required: - - log_entries - examples: - response: - summary: Response Example - value: - log_entries: - - id: Q02JTSNZWHSEKV - type: trigger_log_entry - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - created_at: '2015-11-07T00:14:20Z' - agent: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - channel: - type: api - incident: - id: PT4KHLK - type: incident_reference - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - contexts: [] - event_details: - description: 'Tasks::SFDCValidator - PD_Data__c - duplicates' - limit: 1 - offset: 0 - more: true - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/log_entries/{id}': - get: - x-pd-requires-scope: incidents.read - tags: - - Log Entries - operationId: getLogEntry - description: | - Get details for a specific incident log entry. This method provides additional information you can use to get at raw event data. - - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#log-entries) - - Scoped OAuth requires: `incidents.read` - summary: Get a log entry - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_log_entry' - responses: - '200': - description: A single log entry. - content: - application/json: - schema: - type: object - properties: - log_entry: - oneOf: - - $ref: '#/components/schemas/AcknowledgeLogEntry' - - $ref: '#/components/schemas/AnnotateLogEntry' - - $ref: '#/components/schemas/AssignLogEntry' - - $ref: '#/components/schemas/DelegateLogEntry' - - $ref: '#/components/schemas/EscalateLogEntry' - - $ref: '#/components/schemas/ExhaustEscalationPathLogEntry' - - $ref: '#/components/schemas/NotifyLogEntry' - - $ref: '#/components/schemas/ReachAckLimitLogEntry' - - $ref: '#/components/schemas/ReachTriggerLimitLogEntry' - - $ref: '#/components/schemas/RepeatEscalationPathLogEntry' - - $ref: '#/components/schemas/ResolveLogEntry' - - $ref: '#/components/schemas/SnoozeLogEntry' - - $ref: '#/components/schemas/TriggerLogEntry' - - $ref: '#/components/schemas/UnacknowledgeLogEntry' - - $ref: '#/components/schemas/UrgencyChangeLogEntry' - required: - - log_entry - examples: - response: - summary: Response Example - value: - log_entry: - id: Q02JTSNZWHSEKV - type: trigger_log_entry - summary: Triggered through the API - self: 'https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV' - created_at: '2015-11-07T00:14:20Z' - agent: - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - channel: - type: api - incident: - id: PT4KHLK - type: incident_reference - summary: '[#1234] The server is on fire.' - self: 'https://api.pagerduty.com/incidents/PT4KHLK' - html_url: 'https://subdomain.pagerduty.com/incidents/PT4KHLK' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - contexts: [] - event_details: - description: 'Tasks::SFDCValidator - PD_Data__c - duplicates' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/log_entries/{id}/channel': - put: - x-pd-requires-scope: incidents.write - tags: - - Log Entries - operationId: updateLogEntryChannel - description: | - Update an existing incident log entry channel. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#log-entries) - - Scoped OAuth requires: `incidents.write` - summary: Update log entry channel information. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - channel: - type: object - description: The parameters to update. - properties: - details: - type: string - description: New channel details - type: - type: string - description: Channel type. Cannot be changed and must match the present value. - enum: - - web_trigger - - mobile - required: - - type - - details - required: - - channel - examples: - request: - summary: Request Example - value: - channel: - type: web_trigger - details: New channel details - description: The log entry channel to be updated. - responses: - '202': - description: The channel information modification was accepted. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/maintenance_windows.yaml b/providers/src/pagerduty/v00.00.00000/services/maintenance_windows.yaml index 727f194b..621288c8 100644 --- a/providers/src/pagerduty/v00.00.00000/services/maintenance_windows.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/maintenance_windows.yaml @@ -1,2888 +1,216 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Maintenance Windows + description: Maintenance windows temporarily disable incident creation on services. version: 2.0.0 - title: PagerDuty API - maintenance_windows - description: Maintenance_Windows -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - MaintenanceWindow: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of object being created. - default: maintenance_window - enum: - - maintenance_window - sequence_number: - type: integer - readOnly: true - description: The order in which the maintenance window was created. - start_time: - type: string - format: date-time - description: 'This maintenance window''s start time. This is when the services will stop creating incidents. If this date is in the past, it will be updated to be the current time.' - end_time: - type: string - format: date-time - description: This maintenance window's end time. This is when the services will start creating incidents again. This date must be in the future and after the `start_time`. - description: - type: string - description: A description for this maintenance window. - created_by: - $ref: '#/components/schemas/UserReference' - services: - type: array - items: - $ref: '#/components/schemas/ServiceReference' - teams: - type: array - items: - $ref: '#/components/schemas/TeamReference' - readOnly: true - required: - - start_time - - end_time - - services - - type - example: - id: PIJ89JD - type: maintenance_window - start_time: '2015-11-09T20:00:00-05:00' - end_time: '2015-11-09T22:00:00-05:00' - description: Immanentizing the eschaton - services: - - id: PIJ90N7 - type: service_reference - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: +paths: + /maintenance_windows: + get: + x-pd-requires-scope: services.read + tags: + - Maintenance Windows + operationId: listMaintenanceWindows + description: | + List existing maintenance windows, optionally filtered by service and/or team, or whether they are from the past, present or future. + + A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#maintenance-windows) - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `services.read` + summary: List maintenance windows + parameters: + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/services' + - $ref: '#/components/parameters/include_maintenance_window' + - $ref: '#/components/parameters/filter_maintenance_windows' + responses: + '200': + description: A paginated array of maintenance windows. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + maintenance_windows: + type: array + items: + $ref: '#/components/schemas/MaintenanceWindow' + required: + - maintenance_windows + examples: + response: + summary: Response Example + value: + maintenance_windows: + - id: PW98YIO + type: maintenance_window + summary: Immanentizing the eschaton + self: https://api.pagerduty.com/maintenance_windows/PW98YIO + html_url: https://subdomain.pagerduty.com/service-directory/maintenance-windows/PW98YIO + sequence_number: 1 + start_time: '2015-11-09T20:00:00-05:00' + end_time: '2015-11-09T22:00:00-05:00' + description: Immanentizing the eschaton + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + created_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: services.write + tags: + - Maintenance Windows + operationId: createMaintenanceWindow + description: | + Create a new maintenance window for the specified services. No new incidents will be created for a service that is in maintenance. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#maintenance-windows) - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false + Scoped OAuth requires: `services.write` + summary: Create a maintenance window + parameters: + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + maintenance_window: + $ref: '#/components/schemas/MaintenanceWindow' + required: + - maintenance_window + examples: + request: + summary: Request Example + value: + maintenance_window: + type: maintenance_window + start_time: '2015-11-09T20:00:00-05:00' + end_time: '2015-11-09T22:00:00-05:00' + description: Immanentizing the eschaton + services: + - id: PIJ90N7 + type: service_reference + description: The maintenance window object. + responses: + '201': + description: The maintenance window that was created. + content: + application/json: + schema: + type: object + properties: + maintenance_window: + $ref: '#/components/schemas/MaintenanceWindow' + required: + - maintenance_window + examples: + response: + summary: Response Example + value: + maintenance_window: + id: PW98YIO + type: maintenance_window + summary: Immanentizing the eschaton + self: https://api.pagerduty.com/maintenance_windows/PW98YIO + html_url: https://subdomain.pagerduty.com/service-directory/maintenance-windows/PW98YIO + sequence_number: 1 + start_time: '2015-11-09T20:00:00-05:00' + end_time: '2015-11-09T22:00:00-05:00' + description: Immanentizing the eschaton + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + created_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and create maintenance windows. + /maintenance_windows/{id}: + get: + x-pd-requires-scope: services.read + tags: + - Maintenance Windows + operationId: getMaintenanceWindow description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - maintenance_windows: - id: pagerduty.maintenance_windows.maintenance_windows - name: maintenance_windows - title: Maintenance Windows - methods: - list_maintenance_windows: - operation: - $ref: '#/paths/~1maintenance_windows/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.maintenance_windows - _list_maintenance_windows: - operation: - $ref: '#/paths/~1maintenance_windows/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_maintenance_window: - operation: - $ref: '#/paths/~1maintenance_windows/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_maintenance_window: - operation: - $ref: '#/paths/~1maintenance_windows~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.maintenance_window - _get_maintenance_window: - operation: - $ref: '#/paths/~1maintenance_windows~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_maintenance_window: - operation: - $ref: '#/paths/~1maintenance_windows~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_maintenance_window: - operation: - $ref: '#/paths/~1maintenance_windows~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/get_maintenance_window' - - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/list_maintenance_windows' - insert: - - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/create_maintenance_window' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/delete_maintenance_window' -paths: - /maintenance_windows: - get: - x-pd-requires-scope: services.read - tags: - - Maintenance Windows - operationId: listMaintenanceWindows - description: | - List existing maintenance windows, optionally filtered by service and/or team, or whether they are from the past, present or future. - - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#maintenance-windows) - - Scoped OAuth requires: `services.read` - summary: List maintenance windows - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/team_ids' - - $ref: '#/components/parameters/services' - - $ref: '#/components/parameters/include_maintenance_window' - - $ref: '#/components/parameters/filter_maintenance_windows' - responses: - '200': - description: A paginated array of maintenance windows. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - maintenance_windows: - type: array - items: - $ref: '#/components/schemas/MaintenanceWindow' - required: - - maintenance_windows - examples: - response: - summary: Response Example - value: - maintenance_windows: - - id: PW98YIO - type: maintenance_window - summary: Immanentizing the eschaton - self: 'https://api.pagerduty.com/maintenance_windows/PW98YIO' - html_url: 'https://subdomain.pagerduty.com/maintenance_windows#/show/PW98YIO' - sequence_number: 1 - start_time: '2015-11-09T20:00:00-05:00' - end_time: '2015-11-09T22:00:00-05:00' - description: Immanentizing the eschaton - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - created_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: services.write - tags: - - Maintenance Windows - operationId: createMaintenanceWindow - description: | - Create a new maintenance window for the specified services. No new incidents will be created for a service that is in maintenance. - - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#maintenance-windows) - - Scoped OAuth requires: `services.write` - summary: Create a maintenance window - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - maintenance_window: - $ref: '#/components/schemas/MaintenanceWindow' - required: - - maintenance_window - examples: - request: - summary: Request Example - value: - maintenance_window: - type: maintenance_window - start_time: '2015-11-09T20:00:00-05:00' - end_time: '2015-11-09T22:00:00-05:00' - description: Immanentizing the eschaton - services: - - id: PIJ90N7 - type: service_reference - description: The maintenance window object. - responses: - '201': - description: The maintenance window that was created. - content: - application/json: - schema: - type: object - properties: - maintenance_window: - $ref: '#/components/schemas/MaintenanceWindow' - required: - - maintenance_window - examples: - response: - summary: Response Example - value: - maintenance_window: - id: PW98YIO - type: maintenance_window - summary: Immanentizing the eschaton - self: 'https://api.pagerduty.com/maintenance_windows/PW98YIO' - html_url: 'https://subdomain.pagerduty.com/maintenance_windows#/show/PW98YIO' - sequence_number: 1 - start_time: '2015-11-09T20:00:00-05:00' - end_time: '2015-11-09T22:00:00-05:00' - description: Immanentizing the eschaton - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - created_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/maintenance_windows/{id}': - get: - x-pd-requires-scope: services.read - tags: - - Maintenance Windows - operationId: getMaintenanceWindow - description: | - Get an existing maintenance window. + Get an existing maintenance window. A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#maintenance-windows) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#maintenance-windows) Scoped OAuth requires: `services.read` summary: Get a maintenance window parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/include_maintenance_window' responses: @@ -2905,8 +233,8 @@ paths: id: PW98YIO type: maintenance_window summary: Immanentizing the eschaton - self: 'https://api.pagerduty.com/maintenance_windows/PW98YIO' - html_url: 'https://subdomain.pagerduty.com/maintenance_windows#/show/PW98YIO' + self: https://api.pagerduty.com/maintenance_windows/PW98YIO + html_url: https://subdomain.pagerduty.com/service-directory/maintenance-windows/PW98YIO sequence_number: 1 start_time: '2015-11-09T20:00:00-05:00' end_time: '2015-11-09T22:00:00-05:00' @@ -2915,20 +243,20 @@ paths: - id: PIJ90N7 type: service_reference summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 teams: - id: PQ9K7I8 type: team_reference summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 created_by: id: PXPGF42 type: user_reference summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 '401': $ref: '#/components/responses/Unauthorized' '403': @@ -2947,13 +275,11 @@ paths: A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#maintenance-windows) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#maintenance-windows) Scoped OAuth requires: `services.write` summary: Delete or end a maintenance window parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '204': @@ -2978,13 +304,11 @@ paths: A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#maintenance-windows) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#maintenance-windows) Scoped OAuth requires: `services.write` summary: Update a maintenance window parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3017,49 +341,627 @@ paths: schema: type: object properties: - maintenance_window: - $ref: '#/components/schemas/MaintenanceWindow' - required: - - maintenance_window - examples: - response: - summary: Response Example - value: - maintenance_window: - id: PW98YIO - type: maintenance_window - summary: Immanentizing the eschaton - self: 'https://api.pagerduty.com/maintenance_windows/PW98YIO' - html_url: 'https://subdomain.pagerduty.com/maintenance_windows#/show/PW98YIO' - sequence_number: 1 - start_time: '2015-11-09T20:00:00-05:00' - end_time: '2015-11-09T22:00:00-05:00' - description: Immanentizing the eschaton - services: - - id: PIJ90N7 - type: service_reference - summary: My Mail Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - created_by: - id: PXPGF42 - type: user_reference - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + maintenance_window: + $ref: '#/components/schemas/MaintenanceWindow' + required: + - maintenance_window + examples: + response: + summary: Response Example + value: + maintenance_window: + id: PW98YIO + type: maintenance_window + summary: Immanentizing the eschaton + self: https://api.pagerduty.com/maintenance_windows/PW98YIO + html_url: https://subdomain.pagerduty.com/service-directory/maintenance-windows/PW98YIO + sequence_number: 1 + start_time: '2015-11-09T20:00:00-05:00' + end_time: '2015-11-09T22:00:00-05:00' + description: Immanentizing the eschaton + services: + - id: PIJ90N7 + type: service_reference + summary: My Mail Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + created_by: + id: PXPGF42 + type: user_reference + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage a maintenance window. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + MaintenanceWindow: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + sequence_number: + type: integer + readOnly: true + description: The order in which the maintenance window was created. + start_time: + type: string + format: date-time + description: This maintenance window's start time. This is when the services will stop creating incidents. If this date is in the past, it will be updated to be the current time. + end_time: + type: string + format: date-time + description: This maintenance window's end time. This is when the services will start creating incidents again. This date must be in the future and after the `start_time`. + description: + type: string + description: A description for this maintenance window. + created_by: + $ref: '#/components/schemas/UserReference' + services: + type: array + items: + $ref: '#/components/schemas/ServiceReference' + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + readOnly: true + required: + - start_time + - end_time + - services + - type + example: + id: PIJ89JD + type: maintenance_window + start_time: '2015-11-09T20:00:00-05:00' + end_time: '2015-11-09T22:00:00-05:00' + description: Immanentizing the eschaton + services: + - id: PIJ90N7 + type: service_reference + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + services: + name: service_ids[] + in: query + description: An array of service IDs. Only results related to these services will be returned. + explode: true + schema: + type: array + items: + type: string + include_maintenance_window: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - teams + - services + - users + uniqueItems: true + filter_maintenance_windows: + name: filter + in: query + description: Only return maintenance windows in a given state. + schema: + type: string + enum: + - past + - future + - ongoing + - open + - all + from_header: + name: From + in: header + description: The email address of a valid user associated with the account making the request. + required: false + schema: + type: string + format: email + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + maintenance_windows: + id: pagerduty.maintenance_windows.maintenance_windows + name: maintenance_windows + title: Maintenance Windows + methods: + list: + operation: + $ref: '#/paths/~1maintenance_windows/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.maintenance_windows + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1maintenance_windows/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1maintenance_windows~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.maintenance_window + delete: + operation: + $ref: '#/paths/~1maintenance_windows~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1maintenance_windows~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/get' + - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/maintenance_windows/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/notifications.yaml b/providers/src/pagerduty/v00.00.00000/services/notifications.yaml index 8e511adc..502b1870 100644 --- a/providers/src/pagerduty/v00.00.00000/services/notifications.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/notifications.yaml @@ -1,122 +1,101 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Notifications + description: Notifications sent to users for incidents in a time window. version: 2.0.0 - title: PagerDuty API - notifications - description: | - A Notification is created when an Incident is triggered or escalated. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /notifications: + get: + x-pd-requires-scope: users:notifications.read + tags: + - Notifications + operationId: listNotifications + description: | + List notifications for a given time range, optionally filtered by type (sms_notification, email_notification, phone_notification, or push_notification). + + A Notification is created when an Incident is triggered or escalated. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#notifications) + + Scoped OAuth requires: `users:notifications.read` + summary: List notifications + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/time_zone' + - $ref: '#/components/parameters/since_notifications' + - $ref: '#/components/parameters/until_notifications' + - $ref: '#/components/parameters/filter_notifications' + - $ref: '#/components/parameters/include_notifications' + responses: + '200': + description: A paginated array of notifications. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + notifications: + type: array + items: + $ref: '#/components/schemas/Notification' + required: + - notifications + examples: + response: + summary: Response Example + value: + notifications: + - id: PWL7QXS + type: phone_notification + started_at: '2013-03-06T15:28:51-05:00' + address: '+15555551234' + user: + id: PT23IWX + type: user_reference + summary: Tim Wright + self: https://api.pagerduty.com/users/PT23IWX + html_url: https://subdomain.pagerduty.com/users/PT23IWX + - id: PKN7NBH + type: push_notification + started_at: '2013-03-06T15:28:51-05:00' + user: + id: PT23IWX + type: user_reference + summary: Tim Wright + self: https://api.pagerduty.com/users/PT23IWX + html_url: https://subdomain.pagerduty.com/users/PT23IWX + limit: 100 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List notifications that have been delivered to responders. components: schemas: Pagination: @@ -173,1502 +152,133 @@ components: '': type: string UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: + type: object + properties: + id: type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: + readOnly: true + summary: type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman responses: ArgumentError: description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Unauthorized: description: | Caller did not supply credentials or did not provide the correct credentials. @@ -1676,7 +286,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -1684,18 +316,63 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Conflict: description: The request conflicts with the current state of the server. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1718,974 +395,101 @@ components: example: message: Not Found code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the account time zone. + schema: + type: string + format: tzinfo + since_notifications: + name: since + in: query + description: The start of the date range over which you want to search. The time element is optional. + required: true + schema: + type: string + format: date-time + until_notifications: + name: until + in: query + description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. + required: true + schema: + type: string + format: date-time + filter_notifications: + name: filter + in: query + description: Return notification of this type only. + schema: + type: string + enum: + - sms_notification + - email_notification + - phone_notification + - push_notification + include_notifications: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - users + uniqueItems: true x-stackQL-resources: notifications: id: pagerduty.notifications.notifications name: notifications title: Notifications methods: - list_notifications: + list: operation: $ref: '#/paths/~1notifications/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.notifications - _list_notifications: - operation: - $ref: '#/paths/~1notifications/get' - response: - mediaType: application/json - openAPIDocKey: '200' + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/notifications/methods/list_notifications' + - $ref: '#/components/x-stackQL-resources/notifications/methods/list' insert: [] update: [] delete: [] -paths: - /notifications: - get: - x-pd-requires-scope: 'users:notifications.read' - tags: - - Notifications - operationId: listNotifications - description: | - List notifications for a given time range, optionally filtered by type (sms_notification, email_notification, phone_notification, or push_notification). - - A Notification is created when an Incident is triggered or escalated. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#notifications) - - Scoped OAuth requires: `users:notifications.read` - summary: List notifications - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/since_notifications' - - $ref: '#/components/parameters/until_notifications' - - $ref: '#/components/parameters/filter_notifications' - - $ref: '#/components/parameters/include_notifications' - responses: - '200': - description: A paginated array of notifications. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - notifications: - type: array - items: - $ref: '#/components/schemas/Notification' - required: - - notifications - examples: - response: - summary: Response Example - value: - notifications: - - id: PWL7QXS - type: phone_notification - started_at: '2013-03-06T15:28:51-05:00' - address: '+15555551234' - user: - id: PT23IWX - type: user_reference - summary: Tim Wright - self: 'https://api.pagerduty.com/users/PT23IWX' - html_url: 'https://subdomain.pagerduty.com/users/PT23IWX' - - id: PKN7NBH - type: push_notification - started_at: '2013-03-06T15:28:51-05:00' - user: - id: PT23IWX - type: user_reference - summary: Tim Wright - self: 'https://api.pagerduty.com/users/PT23IWX' - html_url: 'https://subdomain.pagerduty.com/users/PT23IWX' - limit: 100 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/oauth_delegations.yaml b/providers/src/pagerduty/v00.00.00000/services/oauth_delegations.yaml new file mode 100644 index 00000000..85bfd376 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/oauth_delegations.yaml @@ -0,0 +1,306 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Oauth Delegations + description: OAuth delegation revocation. + version: 2.0.0 +paths: + /oauth_delegations: + delete: + x-pd-requires-scope: oauth_delegations.write + tags: + - OAuth Delegations + operationId: deleteOauthDelegations + description: | + Delete all OAuth delegations as per provided query parameters. + + An OAuth delegation represents an instance of a user or account's authorization to an app (via OAuth) to access their PagerDuty account. + Common apps include the PagerDuty mobile app, Slack, Microsoft Teams, and third-party apps. It also represents a user session in the PagerDuty web app. + + Deleting an OAuth delegation will revoke that instance of an app's access to that user or account. + To grant access again, reauthorization/reauthentication will be required. + + This endpoint supports deleting mobile app OAuth delegations for a given user, which is equivalent to signing users out of the mobile app. It also supports deleting delegations of type web, which is equivalent to signing users out of the web app. + + This is a synchronous API. + + Scoped OAuth requires: `oauth_delegations.write` + summary: Delete all OAuth delegations + parameters: + - $ref: '#/components/parameters/oauth_delegation_user_id' + - $ref: '#/components/parameters/oauth_delegation_type' + responses: + '200': + description: The request to delete delegations has been processed. + content: + application/json: + schema: + type: object + properties: + status: + type: string + example: ok + examples: + response: + summary: Response Example + value: + status: ok + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /oauth_delegations/revocation_requests/status: + get: + x-pd-requires-scope: oauth_delegations.read + tags: + - OAuth Delegations + operationId: getOauthDelegationsRevocationRequestsStatus + description: | + + > ### Deprecated + > This endpoint is deprecated as OAuth token revocation is now synchronous. Please use the [DELETE /oauth_delegations endpoint](https://developer.pagerduty.com/api-reference/ad1161db75db1-delete-all-o-auth-delegations) instead. + + Get the status of all OAuth delegations revocation requests for this account, specifically how many requests are still pending. As all requests are now synchronous, no pending requests will be found. + + This endpoint is limited to account owners and admins. + + Scoped OAuth requires: `oauth_delegations.read` + summary: Get OAuth delegations revocation requests status + deprecated: true + parameters: + - $ref: '#/components/parameters/oauth_delegation_requested_at_end' + responses: + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' +components: + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + oauth_delegation_user_id: + name: user_id + in: query + description: The ID of the user for whom this request is applicable. + schema: + type: string + required: true + oauth_delegation_type: + name: type + in: query + description: The type of OAuth delegations this request should target. Allowed values are 'mobile' (to sign users out of the mobile app) and 'web' (to sign users out of the web app). You can pass one or more types in, separated by commas (e.g., `type=web,mobile`). + schema: + type: string + enum: + - mobile + - web + required: true + oauth_delegation_requested_at_end: + name: requested_at_end + in: query + description: The end of the date range over which you want to search. If not specified, this will default to current time. + schema: + type: string + format: date-time + required: false + x-stackQL-resources: + oauth_delegations: + id: pagerduty.oauth_delegations.oauth_delegations + name: oauth_delegations + title: Oauth Delegations + methods: + revoke: + operation: + $ref: '#/paths/~1oauth_delegations/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/on_calls.yaml b/providers/src/pagerduty/v00.00.00000/services/on_calls.yaml index 1c3d84c5..dcb2b768 100644 --- a/providers/src/pagerduty/v00.00.00000/services/on_calls.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/on_calls.yaml @@ -1,122 +1,115 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - On Calls + description: 'On-calls: who is on call for which escalation policy and schedule.' version: 2.0.0 - title: PagerDuty API - on_calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors +paths: + /oncalls: + get: + tags: + - On-Calls + x-pd-requires-scope: oncalls.read + x-pd-operation-limit: true + operationId: listOnCalls + description: | + List the on-call entries during a given time range. + + An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#on-calls) + + Scoped OAuth requires: `oncalls.read` + + This API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information. + summary: List all of the on-calls + parameters: + - $ref: '#/components/parameters/time_zone' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/include_oncalls' + - $ref: '#/components/parameters/user_ids_oncalls' + - $ref: '#/components/parameters/escalation_policy_ids_oncalls' + - $ref: '#/components/parameters/schedule_ids_oncalls' + - $ref: '#/components/parameters/since_oncalls' + - $ref: '#/components/parameters/until_oncalls' + - $ref: '#/components/parameters/earliest_oncalls' + responses: + '200': + description: A paginated array of on-call objects. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + oncalls: + type: array + items: + $ref: '#/components/schemas/Oncall' + required: + - oncalls + examples: + response: + summary: Response Example + value: + oncalls: + - user: + id: PT23IWX + type: user_reference + summary: Tim Wright + self: https://api.pagerduty.com/users/PT23IWX + html_url: https://subdomain.pagerduty.com/users/PT23IWX + schedule: + id: PI7DH85 + type: schedule_reference + summary: Daily Engineering Rotation + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Engineering Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + escalation_level: 2 + start: '2015-03-06T15:28:51-05:00' + end: '2015-03-07T15:28:51-05:00' + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors + List all of the on-call entries within a given time range for a given set of users, escalation policies, and/or schedules. Each on-call entry includes: + + - the date/time period for the on-call entry; + - the escalation policy, rule, and level; + - the schedule, if the rule targeted a schedule and not a user; and, + - the user on call for the escalation policy rule during that time. components: schemas: Pagination: @@ -147,7 +140,37 @@ components: user: $ref: '#/components/schemas/UserReference' schedule: - $ref: '#/components/schemas/ScheduleReference' + description: The schedule from which this on-call originates. May be a legacy schedule reference or a v3 schedule reference. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + - summary escalation_level: type: integer readOnly: true @@ -156,1549 +179,254 @@ components: type: string format: date-time readOnly: true - description: 'The start of the on-call. If `null`, the on-call is a permanent user on-call.' + description: The start of the on-call. If `null`, the on-call is a permanent user on-call. end: type: string format: date-time readOnly: true - description: 'The end of the on-call. If `null`, the user does not go off-call.' + description: The end of the on-call. If `null`, the user does not go off-call. example: user: id: PT23IWX type: user_reference summary: Tim Wright - self: 'https://api.pagerduty.com/users/PT23IWX' - html_url: 'https://subdomain.pagerduty.com/users/PT23IWX' + self: https://api.pagerduty.com/users/PT23IWX + html_url: https://subdomain.pagerduty.com/users/PT23IWX schedule: id: PI7DH85 type: schedule_reference summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 escalation_policy: id: PT20YPA type: escalation_policy_reference summary: Engineering Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA escalation_level: 2 start: '2015-03-06T15:28:51-05:00' end: '2015-03-07T15:28:51-05:00' EscalationPolicyReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - escalation_policy_reference + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) ScheduleReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - schedule_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + V3ScheduleReference: + type: object + description: | + Lightweight schedule object returned by the list endpoint. + Uses `"type": "schedule_v3_reference"` to distinguish from + legacy schedules (`"type": "schedule_reference"`). + required: + - id + - type + - summary + properties: + id: + type: string + example: PL5FQHC + type: + type: string + enum: + - schedule_v3_reference + summary: + type: string + description: Schedule name + example: Engineering On-Call + self: + type: string + format: uri + example: https://api.pagerduty.com/v3/schedules/PL5FQHC + html_url: + type: string + format: uri + example: https://example.pagerduty.com/schedules/PL5FQHC Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: + type: object + properties: + id: type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman responses: ArgumentError: description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Unauthorized: description: | Caller did not supply credentials or did not provide the correct credentials. @@ -1706,7 +434,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -1714,18 +464,63 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Conflict: description: The request conflicts with the current state of the server. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1748,979 +543,126 @@ components: example: message: Not Found code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + parameters: + time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the account time zone. + schema: + type: string + format: tzinfo + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + include_oncalls: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - escalation_policies + - users + - schedules + uniqueItems: true + user_ids_oncalls: + name: user_ids[] + in: query + description: Filters the results, showing only on-calls for the specified user IDs. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + escalation_policy_ids_oncalls: + name: escalation_policy_ids[] + in: query + description: Filters the results, showing only on-calls for the specified escalation policy IDs. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + schedule_ids_oncalls: + name: schedule_ids[] + in: query + description: Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + since_oncalls: + name: since + in: query + description: The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future. + schema: + type: string + format: date-time + until_oncalls: + name: until + in: query + description: The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time. + schema: + type: string + format: date-time + earliest_oncalls: + name: earliest + in: query + description: This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters. + schema: + type: boolean x-stackQL-resources: - oncalls: - id: pagerduty.on_calls.oncalls - name: oncalls - title: Oncalls + on_calls: + id: pagerduty.on_calls.on_calls + name: on_calls + title: On Calls methods: - list_on_calls: + list: operation: $ref: '#/paths/~1oncalls/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.oncalls - _list_on_calls: - operation: - $ref: '#/paths/~1oncalls/get' - response: - mediaType: application/json - openAPIDocKey: '200' + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/oncalls/methods/list_on_calls' + - $ref: '#/components/x-stackQL-resources/on_calls/methods/list' insert: [] update: [] delete: [] -paths: - /oncalls: - get: - tags: - - On-Calls - x-pd-requires-scope: oncalls.read - operationId: listOnCalls - description: | - List the on-call entries during a given time range. - - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#on-calls) - - Scoped OAuth requires: `oncalls.read` - summary: List all of the on-calls - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/include_oncalls' - - $ref: '#/components/parameters/user_ids_oncalls' - - $ref: '#/components/parameters/escalation_policy_ids_oncalls' - - $ref: '#/components/parameters/schedule_ids_oncalls' - - $ref: '#/components/parameters/since_oncalls' - - $ref: '#/components/parameters/until_oncalls' - - $ref: '#/components/parameters/earliest_oncalls' - responses: - '200': - description: A paginated array of on-call objects. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - oncalls: - type: array - items: - $ref: '#/components/schemas/Oncall' - required: - - oncalls - examples: - response: - summary: Response Example - value: - oncalls: - - user: - id: PT23IWX - type: user_reference - summary: Tim Wright - self: 'https://api.pagerduty.com/users/PT23IWX' - html_url: 'https://subdomain.pagerduty.com/users/PT23IWX' - schedule: - id: PI7DH85 - type: schedule_reference - summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Engineering Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - escalation_level: 2 - start: '2015-03-06T15:28:51-05:00' - end: '2015-03-07T15:28:51-05:00' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/paused_incident_reports.yaml b/providers/src/pagerduty/v00.00.00000/services/paused_incident_reports.yaml index b18b8bb7..7bf58401 100644 --- a/providers/src/pagerduty/v00.00.00000/services/paused_incident_reports.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/paused_incident_reports.yaml @@ -1,2527 +1,8 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. -info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com - version: 2.0.0 - title: PagerDuty API - paused_incident_reports - description: Paused_Incident_Reports -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - alerts: - id: pagerduty.paused_incident_reports.alerts - name: alerts - title: Alerts - methods: - get_paused_incident_report_alerts: - operation: - $ref: '#/paths/~1paused_incident_reports~1alerts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.paused_incident_reporting_alerts - _get_paused_incident_report_alerts: - operation: - $ref: '#/paths/~1paused_incident_reports~1alerts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/alerts/methods/get_paused_incident_report_alerts' - insert: [] - update: [] - delete: [] - counts: - id: pagerduty.paused_incident_reports.counts - name: counts - title: Counts - methods: - get_paused_incident_report_counts: - operation: - $ref: '#/paths/~1paused_incident_reports~1counts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.paused_incident_reporting_counts - _get_paused_incident_report_counts: - operation: - $ref: '#/paths/~1paused_incident_reports~1counts/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/counts/methods/get_paused_incident_report_counts' - insert: [] - update: [] - delete: [] +info: + title: PagerDuty API - Paused Incident Reports + description: Reports on alerts whose incident notifications were paused. + version: 2.0.0 paths: /paused_incident_reports/alerts: get: @@ -2532,13 +13,11 @@ paths: description: | Returns the 5 most recent alerts that were triggered after being paused and the 5 most recent alerts that were resolved after being paused for a given reporting period (maximum 6 months lookback period). Note: This feature is currently available as part of the Event Intelligence package or Digital Operations plan only. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#paused-incident-reports) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#paused-incident-reports) Scoped OAuth requires: `incidents.read` summary: Get Paused Incident Reporting on Alerts parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/since' - $ref: '#/components/parameters/until' - $ref: '#/components/parameters/paused_incident_reports_service_id' @@ -2576,6 +55,7 @@ paths: created_at: type: string description: The date/time the Alert was created + type: object resolved_after_pause_alerts: type: array description: An array of Alerts that were resolved after being paused. @@ -2590,12 +70,13 @@ paths: created_at: type: string description: The date/time the Alert was created + type: object examples: response: summary: Response Example value: paused_incident_reporting_counts: - since: '2021-06-01TT13:08:14Z' + since: 2021-06-01TT13:08:14Z until: '2021-08-01T13:08:14Z' triggered_after_pause_alerts: - id: PR2P3RW @@ -2618,6 +99,7 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' + description: Get reporting on Alerts for paused Incident usage /paused_incident_reports/counts: get: x-pd-requires-scope: incidents.read @@ -2627,13 +109,11 @@ paths: description: | Returns reporting counts for paused Incident usage for a given reporting period (maximum 6 months lookback period). Note: This feature is currently available as part of the Event Intelligence package or Digital Operations plan only. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#paused-incident-reports) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#paused-incident-reports) Scoped OAuth requires: `incidents.read` summary: Get Paused Incident Reporting counts parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/since' - $ref: '#/components/parameters/until' - $ref: '#/components/parameters/paused_incident_reports_service_id' @@ -2649,7 +129,7 @@ paths: properties: paused_incident_reporting_counts: type: object - description: 'A representation of Alerts that were paused, triggered after pause, and resolved after pause.' + description: A representation of Alerts that were paused, triggered after pause, and resolved after pause. properties: since: type: string @@ -2671,7 +151,7 @@ paths: summary: Response Example value: paused_incident_reporting_counts: - since: '2021-06-01TT13:08:14Z' + since: 2021-06-01TT13:08:14Z until: '2021-08-01T13:08:14Z' paused_count: 50 triggered_after_pause_count: 12 @@ -2686,3 +166,248 @@ paths: $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' + description: Get reporting on counts for paused Incident usage +components: + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + since: + name: since + in: query + description: The start of the date range over which you want to search. + schema: + type: string + format: date-time + until: + name: until + in: query + description: The end of the date range over which you want to search. + schema: + type: string + format: date-time + paused_incident_reports_service_id: + name: service_id + in: query + description: Specifies a filter to limit the scope of reporting to a particular service + schema: + type: string + example: P123456 + paused_incident_reports_suspended_by: + name: suspended_by + in: query + description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. + schema: + enum: + - auto_pause + - rules + x-stackQL-resources: + alerts: + id: pagerduty.paused_incident_reports.alerts + name: alerts + title: Alerts + methods: + get: + operation: + $ref: '#/paths/~1paused_incident_reports~1alerts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.paused_incident_reporting_alerts + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/alerts/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + counts: + id: pagerduty.paused_incident_reports.counts + name: counts + title: Counts + methods: + get: + operation: + $ref: '#/paths/~1paused_incident_reports~1counts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.paused_incident_reporting_counts + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/counts/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/priorities.yaml b/providers/src/pagerduty/v00.00.00000/services/priorities.yaml index ba706129..0f0958d0 100644 --- a/providers/src/pagerduty/v00.00.00000/services/priorities.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/priorities.yaml @@ -1,122 +1,109 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Priorities + description: Incident priorities configured on the account. version: 2.0.0 - title: PagerDuty API - priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /priorities: + get: + tags: + - Priorities + x-pd-requires-scope: priorities.read + operationId: listPriorities + description: | + List existing priorities, in order (most to least severe). + + A priority is a label representing the importance and impact of an incident. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#priorities) + + Scoped OAuth requires: `priorities.read` + summary: List priorities + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + responses: + '200': + description: A paginated array of priorities. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + priorities: + type: array + items: + $ref: '#/components/schemas/Priority' + required: + - priorities + examples: + response: + summary: Response Example + value: + priorities: + - id: PSLWBL8 + type: priority + summary: P1 + self: https://api.pagerduty.com/priorities/PSLWBL8 + name: P1 + description: Critical issue that warrants public notification and liaison with executive teams + - id: P53ZZH5 + type: priority + summary: P2 + self: https://api.pagerduty.com/priorities/P53ZZH5 + name: P2 + description: Critical system issue actively impacting many customers' ability to use the product + - id: PGE9YCZ + type: priority + summary: P3 + self: https://api.pagerduty.com/priorities/PGE9YCZ + name: P3 + description: Stability or minor customer-impacting issues that require immediate attention from service owners + - id: PVJPWYW + type: priority + summary: P4 + self: https://api.pagerduty.com/priorities/PVJPWYW + name: P4 + description: Minor issues requiring action, but not affecting customer ability to use the product + - id: P81SUUT + type: priority + summary: P5 + self: https://api.pagerduty.com/priorities/P81SUUT + name: P5 + description: Cosmetic issues or bugs, not affecting customer ability to use the product + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List priorities. components: schemas: Pagination: @@ -126,1511 +113,118 @@ components: type: integer description: Echoes offset pagination property. readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Priority: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - name: - type: string - description: The user-provided short name of the priority. - description: - type: string - description: The user-provided description of the priority. - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Priority: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The user-provided short name of the priority. + description: + type: string + description: The user-provided description of the priority. + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman responses: ArgumentError: description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Unauthorized: description: | Caller did not supply credentials or did not provide the correct credentials. @@ -1638,7 +232,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 PaymentRequired: description: | Account does not have the abilities to perform the action. Please review the response for the required abilities. @@ -1646,7 +262,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -1654,18 +292,63 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Conflict: description: The request conflicts with the current state of the server. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1688,982 +371,57 @@ components: example: message: Not Found code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean x-stackQL-resources: priorities: id: pagerduty.priorities.priorities name: priorities title: Priorities methods: - list_priorities: + list: operation: $ref: '#/paths/~1priorities/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.priorities - _list_priorities: - operation: - $ref: '#/paths/~1priorities/get' - response: - mediaType: application/json - openAPIDocKey: '200' + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/priorities/methods/list_priorities' + - $ref: '#/components/x-stackQL-resources/priorities/methods/list' insert: [] update: [] delete: [] -paths: - /priorities: - get: - tags: - - Priorities - x-pd-requires-scope: priorities.read - operationId: listPriorities - description: | - List existing priorities, in order (most to least severe). - - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#priorities) - - Scoped OAuth requires: `priorities.read` - summary: List priorities - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - responses: - '200': - description: A paginated array of priorities. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - priorities: - type: array - items: - $ref: '#/components/schemas/Priority' - required: - - priorities - examples: - response: - summary: Response Example - value: - priorities: - - id: PSLWBL8 - type: priority - summary: P1 - self: 'https://api.pagerduty.com/priorities/PSLWBL8' - name: P1 - description: Critical issue that warrants public notification and liaison with executive teams - - id: P53ZZH5 - type: priority - summary: P2 - self: 'https://api.pagerduty.com/priorities/P53ZZH5' - name: P2 - description: Critical system issue actively impacting many customers' ability to use the product - - id: PGE9YCZ - type: priority - summary: P3 - self: 'https://api.pagerduty.com/priorities/PGE9YCZ' - name: P3 - description: Stability or minor customer-impacting issues that require immediate attention from service owners - - id: PVJPWYW - type: priority - summary: P4 - self: 'https://api.pagerduty.com/priorities/PVJPWYW' - name: P4 - description: 'Minor issues requiring action, but not affecting customer ability to use the product' - - id: P81SUUT - type: priority - summary: P5 - self: 'https://api.pagerduty.com/priorities/P81SUUT' - name: P5 - description: 'Cosmetic issues or bugs, not affecting customer ability to use the product' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/recommendations.yaml b/providers/src/pagerduty/v00.00.00000/services/recommendations.yaml new file mode 100644 index 00000000..4bb35988 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/recommendations.yaml @@ -0,0 +1,668 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Recommendations + description: Recommended Event Orchestration rules. + version: 2.0.0 +paths: + /recommendations/event_orchestrations/rules: + get: + x-pd-requires-scope: recommendations.read + tags: + - Recommendations + operationId: listRecommendedRules + summary: List recommended rules + description: | + List AI-generated recommended rules available for an account's Service Event Orchestrations. + + Results can be filtered by service or team. Use cursor-based pagination to retrieve large result sets. + + Note: `service_id` and `service_ids[]` cannot be used together in the same request. + + Scoped OAuth requires: `recommendations.read` + parameters: + - $ref: '#/components/parameters/recommendation_service_id_query' + - $ref: '#/components/parameters/recommendation_service_ids' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/recommendation_actions' + - $ref: '#/components/parameters/recommendation_limit' + - $ref: '#/components/parameters/cursor_cursor' + responses: + '200': + $ref: '#/components/responses/RecommendationListResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List AI-generated recommended rules for Event Orchestrations. + /recommendations/event_orchestrations/services/{service_id}/rules/{recommendation_id}/dismiss: + post: + x-pd-requires-scope: recommendations.write + tags: + - Recommendations + operationId: dismissRecommendedRule + summary: Dismiss a recommended rule + description: | + Dismiss a recommended rule for a service, recording feedback on whether the recommendation was useful. + + Scoped OAuth requires: `recommendations.write` + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/recommendation_id' + requestBody: + $ref: '#/components/requestBodies/RecommendationDismissRequest' + responses: + '200': + $ref: '#/components/responses/RecommendationActionResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Dismiss an AI-generated recommended rule with feedback. + /recommendations/event_orchestrations/services/{service_id}/rules/{recommendation_id}/accept: + post: + x-pd-requires-scope: recommendations.write + tags: + - Recommendations + operationId: acceptRecommendedRule + summary: Accept a recommended rule + description: | + Accept a recommended rule and apply it to the service's Event Orchestration. + + Scoped OAuth requires: `recommendations.write` + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/recommendation_id' + responses: + '200': + $ref: '#/components/responses/RecommendationActionResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Accept an AI-generated recommended rule and apply it to the service's Event Orchestration. + /recommendations/event_orchestrations/services/{service_id}/accepted_rules/{rule_id}: + delete: + x-pd-requires-scope: recommendations.write + tags: + - Recommendations + operationId: deleteAcceptedRecommendedRule + summary: Delete an accepted rule + description: | + Remove a previously accepted recommended rule from a service's Event Orchestration. + + Scoped OAuth requires: `recommendations.write` + parameters: + - $ref: '#/components/parameters/service_id' + - $ref: '#/components/parameters/recommendation_rule_id' + responses: + '200': + $ref: '#/components/responses/RecommendationActionResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Remove a previously accepted recommended rule from a service's Event Orchestration. +components: + schemas: + RecommendedRule: + type: object + description: An AI-generated recommended rule for a Service Event Orchestration. + properties: + recommendation_id: + type: string + description: The unique identifier for this recommendation (rule instance hash). + readOnly: true + example: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 + type: + type: string + description: The type of resource this recommendation applies to. + enum: + - service + readOnly: true + status: + type: string + description: The availability status of the recommendation. + enum: + - available + readOnly: true + description: + type: string + description: A human-readable description of what the recommended rule does. + example: Suppress alerts where event.summary matches 'disk usage' + pcl_expr: + type: string + description: The PagerDuty Condition Language (PCL) expression that defines the rule's matching condition. + example: event.summary matches part 'disk usage' + created_at: + type: string + format: date-time + description: The date/time the recommendation was created. + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the recommendation was last updated. + readOnly: true + metrics: + type: object + description: Performance metrics describing the recommendation's historical match rate and effectiveness. + readOnly: true + properties: + num_events_matching_rule: + type: integer + description: Total number of events that match the rule's condition. + num_events_with_action: + type: integer + description: Total number of events that had the recommended action applied. + num_events_with_action_matching_rule: + type: integer + description: Number of events that both match the condition and had the action applied. + precision_metric: + type: number + format: float + description: Fraction of events matching the rule that also had the action applied. Value between 0 and 1. + minimum: 0 + maximum: 1 + recall: + type: number + format: float + description: Fraction of events with the action applied that also match the rule condition. Value between 0 and 1. + minimum: 0 + maximum: 1 + actions: + type: object + description: The action the recommended rule would apply when its condition is matched. One of the following action types will be present. + properties: + suppress: + type: boolean + description: If true, matching events will be suppressed. + severity: + type: string + description: Normalize the severity of matching events to this value. + enum: + - critical + - high + - warning + - info + - low + priority: + type: string + description: The ID of the priority to assign to matching incidents. + parent: + type: object + description: The service this recommendation applies to. + readOnly: true + properties: + id: + type: string + description: The obfuscated ID of the service. + example: P1ABC23 + type: + type: string + description: The type of the parent resource. + enum: + - service_reference + RecommendedRuleDecision: + type: object + description: A decision to dismiss a recommended rule, including feedback on its usefulness. + required: + - decision + properties: + decision: + type: object + required: + - feedback + properties: + feedback: + type: string + description: | + Feedback on whether the recommendation was useful. + - `positive`: The recommendation was relevant and useful. + - `negative`: The recommendation was not relevant or not useful. + enum: + - positive + - negative + responses: + RecommendationListResponse: + description: A list of recommended rules for the account's Service Event Orchestrations. + content: + application/json: + schema: + type: object + properties: + recommended_rules: + type: array + items: + $ref: '#/components/schemas/RecommendedRule' + next_cursor: + type: string + nullable: true + description: Cursor to retrieve the next page of results. Null if there are no more results. + examples: + response: + summary: Response Example + value: + recommended_rules: + - recommendation_id: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4 + type: service + status: available + description: Suppress alerts where event.summary matches 'disk usage' + pcl_expr: event.summary matches part 'disk usage' + created_at: '2026-01-15T10:30:00Z' + updated_at: '2026-01-15T10:30:00Z' + metrics: + num_events_matching_rule: 1200 + num_events_with_action: 950 + num_events_with_action_matching_rule: 900 + precision_metric: 0.75 + recall: 0.95 + actions: + suppress: true + parent: + id: P1ABC23 + type: service_reference + next_cursor: eyJ2ZXJzaW9uIjoxLCJwYWdlIjoyLCJuZXh0X3JlY29tbWVuZGF0aW9uIjpudWxsfQ== + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + RecommendationActionResponse: + description: Successful response confirming the action was applied. + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - ok + examples: + response: + summary: Response Example + value: + status: ok + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + recommendation_service_id_query: + name: service_id + in: query + required: false + description: Filter recommended rules for a single service. Cannot be combined with `service_ids[]`. + schema: + type: string + recommendation_service_ids: + name: service_ids[] + in: query + required: false + description: Filter recommended rules for multiple services. Cannot be combined with `service_id`. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + recommendation_actions: + name: actions[] + in: query + required: false + description: Filter recommended rules by action type. + explode: true + schema: + type: array + items: + type: string + enum: + - suppress + - severity + - priority + uniqueItems: true + recommendation_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + minimum: 1 + maximum: 50 + default: 25 + cursor_cursor: + name: cursor + in: query + required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + service_id: + name: service_id + in: path + description: The service ID + required: true + schema: + type: string + recommendation_id: + name: recommendation_id + in: path + required: true + description: The recommendation ID (rule instance hash). + schema: + type: string + recommendation_rule_id: + name: rule_id + in: path + required: true + description: The ID of the accepted rule. + schema: + type: string + requestBodies: + RecommendationDismissRequest: + description: A request to dismiss a recommended rule with feedback. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RecommendedRuleDecision' + examples: + negative_feedback: + summary: 'Request Example: Dismiss with negative feedback' + value: + decision: + feedback: negative + positive_feedback: + summary: 'Request Example: Dismiss with positive feedback' + value: + decision: + feedback: positive + x-stackQL-resources: + event_orchestration_rules: + id: pagerduty.recommendations.event_orchestration_rules + name: event_orchestration_rules + title: Event Orchestration Rules + methods: + list: + operation: + $ref: '#/paths/~1recommendations~1event_orchestrations~1rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.recommended_rules + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 50 + dismiss: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1recommendations~1event_orchestrations~1services~1{service_id}~1rules~1{recommendation_id}~1dismiss/post' + response: + mediaType: application/json + openAPIDocKey: '200' + accept: + operation: + $ref: '#/paths/~1recommendations~1event_orchestrations~1services~1{service_id}~1rules~1{recommendation_id}~1accept/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_accepted_rule: + operation: + $ref: '#/paths/~1recommendations~1event_orchestrations~1services~1{service_id}~1accepted_rules~1{rule_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_orchestration_rules/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/response_plays.yaml b/providers/src/pagerduty/v00.00.00000/services/response_plays.yaml deleted file mode 100644 index 5af4eb72..00000000 --- a/providers/src/pagerduty/v00.00.00000/services/response_plays.yaml +++ /dev/null @@ -1,3153 +0,0 @@ -openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. -info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com - version: 2.0.0 - title: PagerDuty API - response_plays - description: Response_Plays -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - ResponsePlay: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of object being created. - default: response_play - enum: - - response_play - name: - type: string - description: The name of the response play. - description: - type: string - nullable: true - description: The description of the response play. - maxLength: 349 - team: - oneOf: - - $ref: '#/components/schemas/TeamReference' - - type: object - nullable: true - subscribers: - type: array - nullable: true - description: An array containing the users and/or teams to be added as subscribers to any incident on which this response play is run. - items: - anyOf: - - $ref: '#/components/schemas/UserReference' - - $ref: '#/components/schemas/TeamReference' - discriminator: - propertyName: type - subscribers_message: - type: string - nullable: true - description: 'The content of the notification that will be sent to all incident subscribers upon the running of this response play. Note that this includes any users who may have already been subscribed to the incident prior to the running of this response play. If empty, no notifications will be sent.' - responders: - type: array - description: An array containing the users and/or escalation policies to be requested as responders to any incident on which this response play is run. - items: - anyOf: - - $ref: '#/components/schemas/UserReference' - - $ref: '#/components/schemas/EscalationPolicyReference' - discriminator: - propertyName: type - responders_message: - type: string - nullable: true - description: 'The message body of the notification that will be sent to this response play''s set of responders. If empty, a default response request notification will be sent.' - runnability: - type: string - description: |- - String representing how this response play is allowed to be run. Valid options are: - - `services`: This response play cannot be manually run by any users. It will run automatically for new incidents triggered on any services that are configured with this response play. - - `teams`: This response play can be run manually on an incident only by members of its configured team. This option can only be selected when the `team` property for this response play is not empty. - - `responders`: This response play can be run manually on an incident by any responders in this account. - enum: - - services - - teams - - responders - default: services - conference_number: - type: string - nullable: true - description: The telephone number that will be set as the conference number for any incident on which this response play is run. - conference_url: - type: string - description: The URL that will be set as the conference URL for any incident on which this response play is run. - nullable: true - conference_type: - type: string - description: |- - This field has three possible values and indicates how the response play was created. - - `none` : The response play had no conference_number or conference_url set at time of creation. - - `manual` : The response play had one or both of conference_number and conference_url set at time of creation. - - `zoom` : Customers with the Zoom-Integration Entitelment can use this value to dynamicly configure conference number and url for zoom - enum: - - none - - manual - - zoom - default: none - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - EscalationPolicyReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - escalation_policy_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - IncidentReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - incident_reference - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - response_plays: - id: pagerduty.response_plays.response_plays - name: response_plays - title: Response Plays - methods: - list_response_plays: - operation: - $ref: '#/paths/~1response_plays/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.plays - _list_response_plays: - operation: - $ref: '#/paths/~1response_plays/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_response_play: - operation: - $ref: '#/paths/~1response_plays/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_response_play: - operation: - $ref: '#/paths/~1response_plays~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.response_play - _get_response_play: - operation: - $ref: '#/paths/~1response_plays~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_response_play: - operation: - $ref: '#/paths/~1response_plays~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_response_play: - operation: - $ref: '#/paths/~1response_plays~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - run_response_play: - operation: - $ref: '#/paths/~1response_plays~1{response_play_id}~1run/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/response_plays/methods/get_response_play' - - $ref: '#/components/x-stackQL-resources/response_plays/methods/list_response_plays' - insert: - - $ref: '#/components/x-stackQL-resources/response_plays/methods/create_response_play' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/response_plays/methods/delete_response_play' -paths: - /response_plays: - get: - x-pd-requires-scope: response_plays.read - deprecated: true - tags: - - Response Plays - operationId: listResponsePlays - description: | - List all of the existing Response Plays. - - Response Plays allow you to create packages of Incident Actions that can be applied during an Incident's life cycle. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays) - - When using a Global API token, the `From` header is required. - - Scoped OAuth requires: `response_plays.read` - summary: List Response Plays - parameters: - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/filter_for_manual_run' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/optional_from_header' - responses: - '200': - description: The array of Response Plays returned by the query. - content: - application/json: - schema: - type: object - properties: - response_plays: - type: array - items: - $ref: '#/components/schemas/ResponsePlay' - examples: - response: - summary: Response Example - value: - response_plays: - - type: response_play - team: null - summary: An Existing Response Play For Responders - self: 'https://api.pagerduty.com/response_plays/15b4b27e-2448-adf9-c5a5-85382304ff37' - name: An Existing Response Play For Responders - id: 15b4b27e-2448-adf9-c5a5-85382304ff37 - html_url: null - description: A Response Play that adds responders. - - type: response_play - team: null - summary: An Existing Response Play For Subscribers - self: 'https://api.pagerduty.com/response_plays/15b4b27e-2771-abe5-t6m9-81234304ff37' - name: An Existing Response Play For Subscribers - id: 15b4b27e-2771-abe5-t6m9-81234304ff37 - html_url: null - description: A Response Play that adds subscribers. - limit: null - offset: null - total: 2 - more: false - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - post: - deprecated: true - x-pd-requires-scope: response_plays.write - tags: - - Response Plays - operationId: createResponsePlay - description: | - Creates a new Response Plays. - - Response Plays allow you to create packages of Incident Actions that can be applied during an Incident's life cycle. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays) - - Scoped OAuth requires: `response_plays.write` - summary: Create a Response Play - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - response_play: - $ref: '#/components/schemas/ResponsePlay' - required: - - response_play - examples: - Example1: - summary: Create a Response Play which adds a Escalation Policy and User to an incident when the response play is run - value: - response_play: - type: response_play - team: null - name: Standard NOC-EP - description: A Response Play to add NOC EP on Run - subscribers: [] - subscribers_message: null - responders: - - type: user_reference - id: PROW72A - summary: our team stakeholder - - type: escalation_policy_reference - id: P12TU3X - summary: Network Center Escalation Policy - responders_message: NOC-EP - runnability: services - Example2: - summary: Add a static conference url to an incident when the response play is run - value: - response_play: - type: response_play - name: Basic Fixed URL - description: preset conference url - runnability: services - conference_url: 'https://my.conference.com/our_team/123' - description: The Response Play to be created. - responses: - '201': - description: The Response Play that was created. - content: - application/json: - schema: - type: object - properties: - response_play: - $ref: '#/components/schemas/ResponsePlay' - examples: - response: - summary: Response Example - value: - response_play: - type: response_play - team: null - summary: A New Response Play - subscribers_message: Please view the attached incident. - subscribers: - - type: user_reference - summary: null - self: 'https://api.pagerduty.com/users/PSEJLIN' - id: PSEJLIN - html_url: null - - type: team_reference - summary: null - self: 'https://api.pagerduty.com/teams/P12TU3X' - id: P12TU3X - html_url: null - self: 'https://api.pagerduty.com/response_plays/15b4b27e-2448-adf9-c5a5-85382304ff37' - runnability: services - responders_message: We need executive attention on this incident. - responders: - - type: user_reference - summary: null - self: 'https://api.pagerduty.com/users/PZOW51A' - id: PZOW51A - html_url: null - name: A New Response Play - id: 15b4b27e-2448-adf9-c5a5-85382304ff37 - html_url: null - description: A Response Play that adds subscribers and responders - conference_url: null - conference_number: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '/response_plays/{id}': - get: - deprecated: true - x-pd-requires-scope: response_plays.read - tags: - - Response Plays - operationId: getResponsePlay - description: | - Get details about an existing Response Play. - - Response Plays allow you to create packages of Incident Actions that can be applied during an Incident's life cycle. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays) - - When using a Global API token, the `From` header is required. - Scoped OAuth requires: `response_plays.read` - summary: Get a Response Play - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/optional_from_header' - responses: - '200': - description: The Response Play requested. - content: - application/json: - schema: - type: object - properties: - response_play: - $ref: '#/components/schemas/ResponsePlay' - examples: - response: - summary: Response Example - value: - response_play: - type: response_play - team: null - summary: Email Service Response Play - subscribers_message: null - subscribers: null - self: 'https://api.pagerduty.com/response_plays/15b4b27e-2448-adf9-c5a5-85382304ff37' - runnability: services - responders_message: null - responders: - - type: escalation_policy_reference - summary: null - self: 'https://api.pagerduty.com/escalation_policies/PZOW51A' - id: PZOW51A - html_url: null - name: Email Service Response Play - id: 15b4b27e-2448-adf9-c5a5-85382304ff37 - html_url: null - description: null - conference_url: null - conference_number: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - deprecated: true - x-pd-requires-scope: response_plays.write - tags: - - Response Plays - operationId: updateResponsePlay - description: | - Updates an existing Response Play. - - Response Plays allow you to create packages of Incident Actions that can be applied during an Incident's life cycle. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays) - - Scoped OAuth requires: `response_plays.write` - summary: Update a Response Play - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - response_play: - $ref: '#/components/schemas/ResponsePlay' - required: - - response_play - examples: - request: - summary: Request Example - value: - response_play: - type: response_play - team: null - summary: Test Response Play - subscribers_message: Please view the attached incident. - subscribers: - - type: user_reference - id: PFS9QZZ - self: 'https://api.pagerduty.com/response_plays/153d9e1f-9008-ee4e-fa70-0d70cdf92f27' - runnability: responders - responders_message: null - responders: [] - name: Test Response Play - id: 153d9e1f-9008-ee4e-fa70-0d70cdf92f27 - html_url: null - description: An updated description of this Response Play. - conference_url: null - conference_number: null - description: The Response Play to be updated. - responses: - '200': - description: The Response Play that was updated. - content: - application/json: - schema: - type: object - properties: - response_play: - $ref: '#/components/schemas/ResponsePlay' - examples: - response: - summary: Response Example - value: - response_play: - type: response_play - team: null - summary: Test Response Play - subscribers_message: Please view the attached incident. - subscribers: - - type: user_reference - summary: null - self: 'https://api.pagerduty.com/users/PFS9QZZ' - id: PFS9QZZ - html_url: null - self: 'https://api.pagerduty.com/response_plays/153d9e1f-9008-ee4e-fa70-0d70cdf92f27' - runnability: services - responders_message: null - responders: [] - name: Test Response Play - id: 153d9e1f-9008-ee4e-fa70-0d70cdf92f27 - html_url: null - description: null - conference_url: null - conference_number: null - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - delete: - deprecated: true - x-pd-requires-scope: response_plays.write - tags: - - Response Plays - operationId: deleteResponsePlay - description: | - Delete an existing Response Play. Once the Response Play is deleted, the action cannot be undone. - - WARNING: When the Response Play is deleted, it is also removed from any Services that were using it. - - Response Plays allow you to create packages of Incident Actions that can be applied to an Incident. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays) - - Scoped OAuth requires: `response_plays.write` - summary: Delete a Response Play - parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/from_header' - responses: - '204': - description: The Response Play was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '/response_plays/{response_play_id}/run': - post: - x-pd-requires-scope: response_plays.write - deprecated: true - tags: - - Response Plays - operationId: runResponsePlay - description: | - Run a specified response play on a given incident. - - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays) - - Scoped OAuth requires: `response_plays.write` - summary: Run a response play - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/response_play_id' - - $ref: '#/components/parameters/from_header' - requestBody: - content: - application/json: - schema: - type: object - properties: - incident: - $ref: '#/components/schemas/IncidentReference' - required: - - incident - examples: - request: - summary: Request Example - value: - incident: - id: PWL7QXS - type: incident_reference - responses: - '200': - description: Informs the user if the response play has been run successfully. - content: - application/json: - schema: - type: object - properties: - status: - type: string - required: - - status - examples: - response: - summary: Response Example - value: - status: ok - '400': - $ref: '#/components/responses/ArgumentError' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' diff --git a/providers/src/pagerduty/v00.00.00000/services/rulesets.yaml b/providers/src/pagerduty/v00.00.00000/services/rulesets.yaml index 2586e315..556729ce 100644 --- a/providers/src/pagerduty/v00.00.00000/services/rulesets.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/rulesets.yaml @@ -1,3183 +1,306 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Rulesets + description: Rulesets and event rules (legacy event rules; superseded by Event Orchestrations). version: 2.0.0 - title: PagerDuty API - rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Ruleset: - type: object - properties: - id: - type: string - readOnly: true - description: ID of the Ruleset. - self: - type: string - format: url - description: the API show URL at which the object is accessible - readOnly: true - type: - type: string - readOnly: true - enum: - - global - - default_global - name: - type: string - description: Name of the Ruleset. - routing_keys: - type: array - readOnly: true - description: Routing keys routed to this Ruleset. - items: - type: string - created_at: - type: string - format: date-time - readOnly: true - description: The date the Ruleset was created at. - creator: - type: object - readOnly: true - description: Reference to the user that has created the Ruleset. - properties: - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - updated_at: - type: string - format: date-time - readOnly: true - description: The date the Ruleset was last updated. - updater: - type: object - readOnly: true - description: Reference to the user that has updated the Ruleset last. - properties: - id: - type: string - readOnly: true - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - team: - type: object - description: 'Reference to the team that owns the Ruleset. If none is specified, only admins have access.' - properties: - id: - type: string - type: - type: string - description: A string that determines the schema of the object - readOnly: true - self: - type: string - format: url - description: The API show URL at which the object is accessible - readOnly: true - required: - - id - - type - example: - id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 - name: MySQL Clusters - type: global - routing_keys: - - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0' - created_at: '2019-12-24T21:18:52Z' - creator: - type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' - id: PABO808 - updated_at: '2019-12-25T14:54:23Z' - updater: - type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' - id: PABO808 - team: - type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' - id: P3ZQXDF - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - EventRule: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - description: ID of the Event Rule. - self: - type: string - format: url - description: the API show URL at which the object is accessible. - readOnly: true - disabled: - type: boolean - description: Indicates whether the Event Rule is disabled and would therefore not be evaluated. - conditions: - type: object - description: 'Conditions evaluated to check if an event matches this Event Rule. Is always empty for the catch_all rule, though.' - properties: - operator: - type: string - description: Operator to combine sub-conditions. - enum: - - and - - or - subconditions: - type: array - description: Array of sub-conditions. - items: - type: object - properties: - operator: - type: string - description: The type of operator to apply. - enum: - - exists - - nexists - - equals - - nequals - - contains - - ncontains - - matches - - nmatches - parameters: - type: object - properties: - path: - type: string - description: 'Path to a field in an event, in dot-notation. For Event Rules on a serivce, this will have to be a PD-CEF field.' - value: - type: string - description: Value to apply to the operator. - options: - type: object - description: Options to configure the operator. - required: - - value - - path - required: - - operator - - parameters - required: - - operator - - subconditions - time_frame: - description: Time-based conditions for limiting when the rule is active. +paths: + /rulesets: + get: + x-pd-requires-scope: event_rules.read + tags: + - Rulesets + operationId: listRulesets + description: | + List all Rulesets + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) + + Scoped OAuth requires: `event_rules.read` + summary: List Rulesets + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + responses: + '200': + description: A paginated array of Ruleset objects. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + rulesets: + type: array + items: + $ref: '#/components/schemas/Ruleset' + examples: + response: + summary: Response Example + value: + rulesets: + - id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 + name: MySQL Clusters + type: global + routing_keys: + - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0 + created_at: '2019-12-24T21:18:52Z' + creator: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + updated_at: '2019-12-25T14:54:23Z' + updater: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + team: + type: team_reference + self: https://api.pagerduty.com/teams/P3ZQXDF + id: P3ZQXDF + limit: 25 + offset: 0 + more: false + total: null + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + post: + x-pd-requires-scope: event_rules.write + tags: + - Rulesets + operationId: createRuleset + description: | + Create a new Ruleset. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) + + Scoped OAuth requires: `event_rules.write` + summary: Create a Ruleset + parameters: [] + requestBody: + content: + application/json: + schema: type: object properties: - active_between: - type: object - required: - - start_time - - end_time - description: A fixed window of time during which the rule is active. - properties: - start_time: - type: integer - description: The start time in milliseconds. - end_time: - type: integer - description: End time in milliseconds. - scheduled_weekly: + ruleset: type: object - required: - - start_time - - duration - - timezone - - weekdays - description: 'A reccuring window of time based on the day of the week, during which the rule is active.' properties: - start_time: - type: integer - description: The amount of milliseconds into the day at which the window starts. - duration: - type: integer - description: The duration of the window in milliseconds. - timezone: + id: + type: string + readOnly: true + description: ID of the Ruleset. + self: + type: string + format: url + description: the API show URL at which the object is accessible + readOnly: true + type: type: string - description: The timezone. - weekdays: + readOnly: true + enum: + - global + - default_global + name: + type: string + description: Name of the Ruleset. + routing_keys: type: array - description: 'An array of day values. Ex [1, 3, 5] is Monday, Wednesday, Friday.' + readOnly: true + description: Routing keys routed to this Ruleset. items: - type: integer - variables: - type: array - description: '[Early Access] Populate variables from event payloads and use those variables in other event actions.' - items: - type: object - properties: - type: - type: string - description: The type of operation to populate the variable. - enum: - - regex - name: - type: string - description: The name of the variable. - parameters: - type: object - description: The parameters for performing the operation to populate the - properties: - value: - type: string - description: 'The value for the operation. For example, an RE2 regular expression for regex-type variables.' - path: type: string - description: 'Path to a field in an event, in dot-notation. For Event Rules on a Service, this will have to be a PD-CEF field.' - required: - - value - - path - required: - - type - - name - - parameters - - type: object - properties: - position: - type: integer - description: 'Position/index of the Event Rule in the Ruleset. Starting from position 0 (the first rule), rules are evaluated one-by-one until a matching rule is found.' - catch_all: - type: boolean - readOnly: true - description: Indicates whether the Event Rule is the last Event Rule of the Ruleset that serves as a catch-all. It has limited functionality compared to other rules and always matches. - actions: - description: 'When an event matches this rule, the actions that will be taken to change the resulting alert and incident.' - allOf: - - $ref: '#/components/schemas/EventRuleActionsCommon' - - type: object - properties: - route: - description: Set the service ID of the target service for the resulting alert. You can find the service you want to route to by calling the services endpoint. + created_at: + type: string + format: date-time + readOnly: true + description: The date the Ruleset was created at. + creator: type: object - required: - - value - nullable: true + readOnly: true + description: Reference to the user that has created the Ruleset. properties: - value: + id: type: string - description: The target service's ID. - EventRuleActionsCommon: - type: object - description: 'When an event matches this Event Rule, the actions that will be taken to change the resulting Alert and Incident.' - properties: - annotate: - description: Set a note on the resulting incident. - type: object - nullable: true - required: - - value - properties: - value: - type: string - description: The content of the note. - event_action: - description: Set whether the resulting alert status is trigger or resolve. - type: object - required: - - value - nullable: true - properties: - value: - type: string - enum: - - trigger - - resolve - extractions: - type: array - description: Dynamically extract values to set and modify new and existing PD-CEF fields. - items: - oneOf: - - type: object - required: - - target - - source - - regex - properties: - target: - type: string - description: The PD-CEF field that will be set with the value from the regex. - source: - type: string - description: The path to the event field where the regex will be applied to extract a value. - regex: - type: string - description: 'A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used.' - - type: object - required: - - target - - template + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + updated_at: + type: string + format: date-time + readOnly: true + description: The date the Ruleset was last updated. + updater: + type: object + readOnly: true + description: Reference to the user that has updated the Ruleset last. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + team: + type: object + description: Reference to the team that owns the Ruleset. If none is specified, only admins have access. + properties: + id: + type: string + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + required: + - id + - type + example: + id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 + name: MySQL Clusters + type: global + routing_keys: + - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0 + created_at: '2019-12-24T21:18:52Z' + creator: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + updated_at: '2019-12-25T14:54:23Z' + updater: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + team: + type: team_reference + self: https://api.pagerduty.com/teams/P3ZQXDF + id: P3ZQXDF + required: + - name + description: (opaque JSON object) + required: + - ruleset + examples: + request: + summary: Request Example + value: + ruleset: + name: MySQL Clusters + team: + id: PWL7QXS + type: team_reference + responses: + '201': + description: The Ruleset that was created. + content: + application/json: + schema: + type: object properties: - target: - type: string - description: The PD-CEF field that will be set with the value from the regex. - template: - type: string - description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. - example: 'Error number {{count}} on host {{host}}' - priority: - description: Set the priority ID for the resulting incident. You can find the priority you want by calling the priorities endpoint. - type: object - required: - - value - nullable: true - properties: - value: - type: string - description: The priority ID. - severity: - description: Set the severity of the resulting alert. - type: object - required: - - value - nullable: true - properties: - value: - type: string - enum: - - info - - warning - - error - - critical - suppress: - description: Set whether the resulting alert is suppressed. Can optionally be used with a threshold where resulting alerts will be suppressed until the threshold is met in a window of time. If using a threshold the rule must also set a route action. - type: object - required: - - value - properties: - value: - type: boolean - threshold_value: - type: integer - description: The number of occurences needed during the window of time to trigger the theshold. - threshold_time_unit: - type: string - description: The time unit for the window of time. - enum: - - seconds - - minutes - - hours - threshold_time_amount: - type: integer - description: The amount of time units for the window of time. - suspend: - description: 'Set the length of time to suspend the resulting alert before triggering. Rules with a suspend action must also set a route action, and cannot have a suppress with threshold action' - type: object - required: - - value - nullable: true - properties: - value: - type: integer - description: The amount of time to suspend the alert in seconds. - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + ruleset: + $ref: '#/components/schemas/Ruleset' + examples: + response: + summary: Response Example + value: + rulesets: + id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 + name: MySQL Clusters + type: global + routing_keys: + - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0 + created_at: '2019-12-24T21:18:52Z' + creator: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + updated_at: '2019-12-25T14:54:23Z' + updater: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + team: + type: team_reference + self: https://api.pagerduty.com/teams/P3ZQXDF + id: P3ZQXDF + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: Create, list, update and delete Rulesets. + /rulesets/{id}: + get: + x-pd-requires-scope: event_rules.read + tags: + - Rulesets + operationId: getRuleset + description: | + Get a Ruleset. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotAllowed: - description: 'The request was received and recognized by the server, but its HTTP method was rejected for the requested resource.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - rulesets: - id: pagerduty.rulesets.rulesets - name: rulesets - title: Rulesets - methods: - list_rulesets: - operation: - $ref: '#/paths/~1rulesets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rulesets - _list_rulesets: - operation: - $ref: '#/paths/~1rulesets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_ruleset: - operation: - $ref: '#/paths/~1rulesets/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_ruleset: - operation: - $ref: '#/paths/~1rulesets~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.ruleset - _get_ruleset: - operation: - $ref: '#/paths/~1rulesets~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_ruleset: - operation: - $ref: '#/paths/~1rulesets~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_ruleset: - operation: - $ref: '#/paths/~1rulesets~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/rulesets/methods/get_ruleset' - - $ref: '#/components/x-stackQL-resources/rulesets/methods/list_rulesets' - insert: - - $ref: '#/components/x-stackQL-resources/rulesets/methods/create_ruleset' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/rulesets/methods/delete_ruleset' - rules: - id: pagerduty.rulesets.rules - name: rules - title: Rules - methods: - list_ruleset_event_rules: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rules - _list_ruleset_event_rules: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_ruleset_event_rule: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_ruleset_event_rule: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rule - _get_ruleset_event_rule: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_ruleset_event_rule: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_ruleset_event_rule: - operation: - $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/rules/methods/get_ruleset_event_rule' - - $ref: '#/components/x-stackQL-resources/rules/methods/list_ruleset_event_rules' - insert: - - $ref: '#/components/x-stackQL-resources/rules/methods/create_ruleset_event_rule' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/rules/methods/delete_ruleset_event_rule' -paths: - /rulesets: - get: - x-pd-requires-scope: event_rules.read - tags: - - Rulesets - operationId: listRulesets - description: | - List all Rulesets - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) - - Scoped OAuth requires: `event_rules.read` - summary: List Rulesets - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - responses: - '200': - description: A paginated array of Ruleset objects. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - rulesets: - type: array - items: - $ref: '#/components/schemas/Ruleset' - examples: - response: - summary: Response Example - value: - rulesets: - - id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 - name: MySQL Clusters - type: global - routing_keys: - - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0' - created_at: '2019-12-24T21:18:52Z' - creator: - type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' - id: PABO808 - updated_at: '2019-12-25T14:54:23Z' - updater: - type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' - id: PABO808 - team: - type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' - id: P3ZQXDF - limit: 25 - offset: 0 - more: false - total: null - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - post: - x-pd-requires-scope: event_rules.write - tags: - - Rulesets - operationId: createRuleset - description: | - Create a new Ruleset. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) - - Scoped OAuth requires: `event_rules.write` - summary: Create a Ruleset - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - requestBody: - content: - application/json: - schema: - type: object - properties: - ruleset: - allOf: - - $ref: '#/components/schemas/Ruleset' - - type: object - required: - - name - required: - - ruleset - examples: - request: - summary: Request Example - value: - ruleset: - name: MySQL Clusters - team: - id: PWL7QXS - type: team_reference - responses: - '201': - description: The Ruleset that was created. - content: - application/json: - schema: - type: object - properties: - ruleset: - $ref: '#/components/schemas/Ruleset' - examples: - response: - summary: Response Example - value: - rulesets: - id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 - name: MySQL Clusters - type: global - routing_keys: - - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0' - created_at: '2019-12-24T21:18:52Z' - creator: - type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' - id: PABO808 - updated_at: '2019-12-25T14:54:23Z' - updater: - type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' - id: PABO808 - team: - type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' - id: P3ZQXDF - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '/rulesets/{id}': - get: - x-pd-requires-scope: event_rules.read - tags: - - Rulesets - operationId: getRuleset - description: | - Get a Ruleset. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Scoped OAuth requires: `event_rules.read` summary: Get a Ruleset parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '200': @@ -3199,20 +322,20 @@ paths: type: global routing_keys: - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0' + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0 created_at: '2019-12-24T21:18:52Z' creator: type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' + self: https://api.pagerduty.com/users/PABO808 id: PABO808 updated_at: '2019-12-25T14:54:23Z' updater: type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' + self: https://api.pagerduty.com/users/PABO808 id: PABO808 team: type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' + self: https://api.pagerduty.com/teams/P3ZQXDF id: P3ZQXDF '400': $ref: '#/components/responses/ArgumentError' @@ -3235,13 +358,11 @@ paths: Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Scoped OAuth requires: `event_rules.write` summary: Update a Ruleset parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3286,20 +407,20 @@ paths: type: global routing_keys: - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0' + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0 created_at: '2019-12-24T21:18:52Z' creator: type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' + self: https://api.pagerduty.com/users/PABO808 id: PABO808 updated_at: '2019-12-25T14:54:23Z' updater: type: user_reference - self: 'https://api.pagerduty.com/users/PABO808' + self: https://api.pagerduty.com/users/PABO808 id: PABO808 team: type: team_reference - self: 'https://api.pagerduty.com/teams/P3ZQXDF' + self: https://api.pagerduty.com/teams/P3ZQXDF id: P3ZQXDF '400': $ref: '#/components/responses/ArgumentError' @@ -3326,13 +447,11 @@ paths: Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Scoped OAuth requires: `event_rules.write` summary: Delete a Ruleset parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '204': @@ -3349,7 +468,8 @@ paths: $ref: '#/components/responses/NotAllowed' '409': $ref: '#/components/responses/Conflict' - '/rulesets/{id}/rules': + description: Manage Rulesets. + /rulesets/{id}/rules: get: x-pd-requires-scope: event_rules.read tags: @@ -3363,15 +483,13 @@ paths: Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Note: Create and Update on rules will accept 'description' or 'summary' interchangeably as an extraction action target. Get and List on rules will always return 'summary' as the target. If you are expecting 'description' please change your automation code to expect 'summary' instead. Scoped OAuth requires: `event_rules.read` summary: List Event Rules parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/offset_limit' - $ref: '#/components/parameters/offset_offset' - $ref: '#/components/parameters/offset_total' @@ -3382,15 +500,30 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - rules: - type: array - description: The paginated list of rules of the Ruleset. - items: - $ref: '#/components/schemas/EventRule' + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + rules: + type: array + description: The paginated list of rules of the Ruleset. + items: + $ref: '#/components/schemas/EventRule' examples: response: summary: Response Example @@ -3400,7 +533,7 @@ paths: position: 0 disabled: false catch_all: false - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b conditions: operator: and subconditions: @@ -3429,7 +562,7 @@ paths: position: 1 disabled: false catch_all: true - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/0d819a5a-b714-4bae-9333-dc73ea0daefb' + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/0d819a5a-b714-4bae-9333-dc73ea0daefb actions: suppress: value: true @@ -3462,15 +595,13 @@ paths: Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Note: Create and Update on rules will accept 'description' or 'summary' interchangeably as an extraction action target. Get and List on rules will always return 'summary' as the target. If you are expecting 'description' please change your automation code to expect 'summary' instead. Scoped OAuth requires: `event_rules.write` summary: Create an Event Rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3534,7 +665,7 @@ paths: position: 0 disabled: false catch_all: false - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b conditions: operator: and subconditions: @@ -3569,7 +700,8 @@ paths: $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' - '/rulesets/{id}/rules/{rule_id}': + description: Create, list, update and delete Event Rules. + /rulesets/{id}/rules/{rule_id}: get: x-pd-requires-scope: event_rules.read tags: @@ -3583,15 +715,13 @@ paths: Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Note: Create and Update on rules will accept 'description' or 'summary' interchangeably as an extraction action target. Get and List on rules will always return 'summary' as the target. If you are expecting 'description' please change your automation code to expect 'summary' instead. Scoped OAuth requires: `event_rules.read` summary: Get an Event Rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/rule_id' responses: @@ -3613,7 +743,7 @@ paths: position: 0 disabled: false catch_all: false - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b conditions: operator: and subconditions: @@ -3656,151 +786,993 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - put: + put: + x-pd-requires-scope: event_rules.write + tags: + - Rulesets + operationId: updateRulesetEventRule + summary: Update an Event Rule + description: | + Update an Event Rule. Note that the endpoint supports partial updates, so any number of the writable fields can be provided. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) + + Note: Create and Update on rules will accept 'description' or 'summary' interchangeably as an extraction action target. Get and List on rules will always return 'summary' as the target. If you are expecting 'description' please change your automation code to expect 'summary' instead. + + Scoped OAuth requires: `event_rules.write` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/rule_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/EventRule' + rule_id: + description: The id of the Event Rule to update. + type: string + required: + - rule_id + examples: + suppress_action: + summary: 'Example: Enable suppress action' + value: + rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 + rule: + actions: + suppress: + value: true + disable_rule: + summary: 'Example: Disable rule' + value: + rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 + rule: + disabled: true + actions: + suppress: + value: true + responses: + '200': + description: The Event Rule that was updated. + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/EventRule' + examples: + response: + summary: Response Example + value: + rule: + id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + position: 0 + disabled: false + catch_all: false + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + conditions: + operator: and + subconditions: + - operator: contains + parameters: + value: mysql + path: details.host + time_frame: + active_between: + start_time: 1577880000000 + end_time: 1580558400000 + actions: + annotate: + value: This incident was created by a Global Event Rule + route: + value: PI2KBWI + priority: + value: PCMUB6F + severity: + value: warning + extractions: + - target: dedup_key + source: details.error_summary + regex: Host (.*) is experiencing errors + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + delete: x-pd-requires-scope: event_rules.write tags: - Rulesets - operationId: updateRulesetEventRule - summary: Update an Event Rule + operationId: deleteRulesetEventRule description: | - Update an Event Rule. Note that the endpoint supports partial updates, so any number of the writable fields can be provided. + Delete an Event Rule. > ### End-of-life > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) - - Note: Create and Update on rules will accept 'description' or 'summary' interchangeably as an extraction action target. Get and List on rules will always return 'summary' as the target. If you are expecting 'description' please change your automation code to expect 'summary' instead. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#rulesets) Scoped OAuth requires: `event_rules.write` + summary: Delete an Event Rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/rule_id' - requestBody: - content: - application/json: - schema: + responses: + '204': + description: The Event Rule was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Manage Event Rules. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Ruleset: + type: object + properties: + id: + type: string + readOnly: true + description: ID of the Ruleset. + self: + type: string + format: url + description: the API show URL at which the object is accessible + readOnly: true + type: + type: string + readOnly: true + enum: + - global + - default_global + name: + type: string + description: Name of the Ruleset. + routing_keys: + type: array + readOnly: true + description: Routing keys routed to this Ruleset. + items: + type: string + created_at: + type: string + format: date-time + readOnly: true + description: The date the Ruleset was created at. + creator: + type: object + readOnly: true + description: Reference to the user that has created the Ruleset. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + updated_at: + type: string + format: date-time + readOnly: true + description: The date the Ruleset was last updated. + updater: + type: object + readOnly: true + description: Reference to the user that has updated the Ruleset last. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + team: + type: object + description: Reference to the team that owns the Ruleset. If none is specified, only admins have access. + properties: + id: + type: string + type: + type: string + description: A string that determines the schema of the object + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + required: + - id + - type + example: + id: 0e84de00-9511-4380-9f4f-a7b568bb49a0 + name: MySQL Clusters + type: global + routing_keys: + - R0212P1QXGEIQE2NMTQ7L7WXD00DWHIN + self: https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0 + created_at: '2019-12-24T21:18:52Z' + creator: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + updated_at: '2019-12-25T14:54:23Z' + updater: + type: user_reference + self: https://api.pagerduty.com/users/PABO808 + id: PABO808 + team: + type: team_reference + self: https://api.pagerduty.com/teams/P3ZQXDF + id: P3ZQXDF + EventRule: + type: object + properties: + id: + type: string + readOnly: true + description: ID of the Event Rule. + self: + type: string + format: url + description: the API show URL at which the object is accessible. + readOnly: true + disabled: + type: boolean + description: Indicates whether the Event Rule is disabled and would therefore not be evaluated. + conditions: + type: object + description: Conditions evaluated to check if an event matches this Event Rule. Is always empty for the catch_all rule, though. + properties: + operator: + type: string + description: Operator to combine sub-conditions. + enum: + - and + - or + subconditions: + type: array + description: Array of sub-conditions. + items: + type: object + properties: + operator: + type: string + description: The type of operator to apply. + enum: + - exists + - nexists + - equals + - nequals + - contains + - ncontains + - matches + - nmatches + parameters: + type: object + properties: + path: + type: string + description: Path to a field in an event, in dot-notation. For Event Rules on a serivce, this will have to be a PD-CEF field. + value: + type: string + description: Value to apply to the operator. + options: + type: string + description: Options to configure the operator. (opaque JSON object) + required: + - value + - path + required: + - operator + - parameters + required: + - operator + - subconditions + time_frame: + description: Time-based conditions for limiting when the rule is active. + type: object + properties: + active_between: + type: object + required: + - start_time + - end_time + description: A fixed window of time during which the rule is active. + properties: + start_time: + type: integer + description: The start time in milliseconds. + end_time: + type: integer + description: End time in milliseconds. + scheduled_weekly: + type: object + required: + - start_time + - duration + - timezone + - weekdays + description: A reccuring window of time based on the day of the week, during which the rule is active. + properties: + start_time: + type: integer + description: The amount of milliseconds into the day at which the window starts. + duration: + type: integer + description: The duration of the window in milliseconds. + timezone: + type: string + description: The timezone. + weekdays: + type: array + description: An array of day values. Ex [1, 3, 5] is Monday, Wednesday, Friday. + items: + type: integer + variables: + type: array + description: '[Early Access] Populate variables from event payloads and use those variables in other event actions.' + items: + type: object + properties: + type: + type: string + description: The type of operation to populate the variable. + enum: + - regex + name: + type: string + description: The name of the variable. + parameters: + type: object + description: The parameters for performing the operation to populate the + properties: + value: + type: string + description: The value for the operation. For example, an RE2 regular expression for regex-type variables. + path: + type: string + description: Path to a field in an event, in dot-notation. For Event Rules on a Service, this will have to be a PD-CEF field. + required: + - value + - path + required: + - type + - name + - parameters + position: + type: integer + description: Position/index of the Event Rule in the Ruleset. Starting from position 0 (the first rule), rules are evaluated one-by-one until a matching rule is found. + catch_all: + type: boolean + readOnly: true + description: Indicates whether the Event Rule is the last Event Rule of the Ruleset that serves as a catch-all. It has limited functionality compared to other rules and always matches. + actions: + description: When an event matches this rule, the actions that will be taken to change the resulting alert and incident. + type: object + properties: + annotate: + description: Set a note on the resulting incident. + type: object + nullable: true + required: + - value + properties: + value: + type: string + description: The content of the note. + event_action: + description: Set whether the resulting alert status is trigger or resolve. + type: object + required: + - value + nullable: true + properties: + value: + type: string + enum: + - trigger + - resolve + extractions: + type: array + description: Dynamically extract values to set and modify new and existing PD-CEF fields. + items: + oneOf: + - type: object + required: + - target + - source + - regex + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + source: + type: string + description: The path to the event field where the regex will be applied to extract a value. + regex: + type: string + description: A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. + - type: object + required: + - target + - template + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + template: + type: string + description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. + example: Error number {{count}} on host {{host}} + priority: + description: Set the priority ID for the resulting incident. You can find the priority you want by calling the priorities endpoint. + type: object + required: + - value + nullable: true + properties: + value: + type: string + description: The priority ID. + severity: + description: Set the severity of the resulting alert. type: object + required: + - value + nullable: true properties: - rule: - $ref: '#/components/schemas/EventRule' - rule_id: - description: The id of the Event Rule to update. + value: type: string + enum: + - info + - warning + - error + - critical + suppress: + description: Set whether the resulting alert is suppressed. Can optionally be used with a threshold where resulting alerts will be suppressed until the threshold is met in a window of time. If using a threshold the rule must also set a route action. + type: object required: - - rule_id - examples: - suppress_action: - summary: 'Example: Enable suppress action' + - value + properties: value: - rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 - rule: - actions: - suppress: - value: true - disable_rule: - summary: 'Example: Disable rule' + type: boolean + threshold_value: + type: integer + description: The number of occurences needed during the window of time to trigger the theshold. + threshold_time_unit: + type: string + description: The time unit for the window of time. + enum: + - seconds + - minutes + - hours + threshold_time_amount: + type: integer + description: The amount of time units for the window of time. + suspend: + description: Set the length of time to suspend the resulting alert before triggering. Rules with a suspend action must also set a route action, and cannot have a suppress with threshold action + type: object + required: + - value + nullable: true + properties: value: - rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 - rule: - disabled: true - actions: - suppress: - value: true - responses: - '200': - description: The Event Rule that was updated. - content: - application/json: - schema: + type: integer + description: The amount of time to suspend the alert in seconds. + route: + description: Set the service ID of the target service for the resulting alert. You can find the service you want to route to by calling the services endpoint. + type: object + required: + - value + nullable: true + properties: + value: + type: string + description: The target service's ID. + EventRuleActionsCommon: + type: object + description: When an event matches this Event Rule, the actions that will be taken to change the resulting Alert and Incident. + properties: + annotate: + description: Set a note on the resulting incident. + type: object + nullable: true + required: + - value + properties: + value: + type: string + description: The content of the note. + event_action: + description: Set whether the resulting alert status is trigger or resolve. + type: object + required: + - value + nullable: true + properties: + value: + type: string + enum: + - trigger + - resolve + extractions: + type: array + description: Dynamically extract values to set and modify new and existing PD-CEF fields. + items: + oneOf: + - type: object + required: + - target + - source + - regex + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + source: + type: string + description: The path to the event field where the regex will be applied to extract a value. + regex: + type: string + description: A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. + - type: object + required: + - target + - template + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + template: + type: string + description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. + example: Error number {{count}} on host {{host}} + priority: + description: Set the priority ID for the resulting incident. You can find the priority you want by calling the priorities endpoint. + type: object + required: + - value + nullable: true + properties: + value: + type: string + description: The priority ID. + severity: + description: Set the severity of the resulting alert. + type: object + required: + - value + nullable: true + properties: + value: + type: string + enum: + - info + - warning + - error + - critical + suppress: + description: Set whether the resulting alert is suppressed. Can optionally be used with a threshold where resulting alerts will be suppressed until the threshold is met in a window of time. If using a threshold the rule must also set a route action. + type: object + required: + - value + properties: + value: + type: boolean + threshold_value: + type: integer + description: The number of occurences needed during the window of time to trigger the theshold. + threshold_time_unit: + type: string + description: The time unit for the window of time. + enum: + - seconds + - minutes + - hours + threshold_time_amount: + type: integer + description: The amount of time units for the window of time. + suspend: + description: Set the length of time to suspend the resulting alert before triggering. Rules with a suspend action must also set a route action, and cannot have a suppress with threshold action + type: object + required: + - value + nullable: true + properties: + value: + type: integer + description: The amount of time to suspend the alert in seconds. + responses: + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotAllowed: + description: The request was received and recognized by the server, but its HTTP method was rejected for the requested resource. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - rule: - $ref: '#/components/schemas/EventRule' - examples: - response: - summary: Response Example - value: - rule: - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - position: 0 - disabled: false - catch_all: false - self: 'https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - conditions: - operator: and - subconditions: - - operator: contains - parameters: - value: mysql - path: details.host - time_frame: - active_between: - start_time: 1577880000000 - end_time: 1580558400000 - actions: - annotate: - value: This incident was created by a Global Event Rule - route: - value: PI2KBWI - priority: - value: PCMUB6F - severity: - value: warning - extractions: - - target: dedup_key - source: details.error_summary - regex: Host (.*) is experiencing errors - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - delete: - x-pd-requires-scope: event_rules.write - tags: - - Rulesets - operationId: deleteRulesetEventRule + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Delete an Event Rule. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#rulesets) + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `event_rules.write` - summary: Delete an Event Rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/rule_id' - responses: - '204': - description: The Event Rule was deleted successfully. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + rule_id: + name: rule_id + in: path + description: The id of the Event Rule to retrieve. + required: true + schema: + type: string + x-stackQL-resources: + rulesets: + id: pagerduty.rulesets.rulesets + name: rulesets + title: Rulesets + methods: + list: + operation: + $ref: '#/paths/~1rulesets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rulesets + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1rulesets/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1rulesets~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.ruleset + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1rulesets~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1rulesets~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rulesets/methods/get' + - $ref: '#/components/x-stackQL-resources/rulesets/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/rulesets/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/rulesets/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/rulesets/methods/delete' + replace: [] + rules: + id: pagerduty.rulesets.rules + name: rules + title: Rules + methods: + list: + operation: + $ref: '#/paths/~1rulesets~1{id}~1rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rules + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1rulesets~1{id}~1rules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rule + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1rulesets~1{id}~1rules~1{rule_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rules/methods/get' + - $ref: '#/components/x-stackQL-resources/rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/rules/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/schedules.yaml b/providers/src/pagerduty/v00.00.00000/services/schedules.yaml index 8aaa81bb..fc515b40 100644 --- a/providers/src/pagerduty/v00.00.00000/services/schedules.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/schedules.yaml @@ -1,3408 +1,434 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Schedules + description: On-call schedules, their overrides, users and audit records. version: 2.0.0 - title: PagerDuty API - schedules - description: | - A Schedule determines the time periods that users are On-Call. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Schedule: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of object being created. - default: schedule - enum: +paths: + /schedules: + get: + tags: + - Schedules + x-pd-requires-scope: schedules.read + operationId: listSchedules + description: | + List the on-call schedules. + + A Schedule determines the time periods that users are On-Call. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) + + Scoped OAuth requires: `schedules.read` + summary: List schedules + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/include_schedules' + - $ref: '#/components/parameters/schedule_list_time_zone' + - $ref: '#/components/parameters/include_next_oncall_for_user' + - $ref: '#/components/parameters/schedule_since' + - $ref: '#/components/parameters/schedule_until' + - $ref: '#/components/parameters/team_ids' + responses: + '200': + description: A paginated array of schedule objects. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + schedules: + type: array + items: + $ref: '#/components/schemas/Schedule' + required: + - schedules + examples: + Basic Example: + value: + schedules: + - id: PI7DH85 + type: schedule + summary: Daily Engineering Rotation + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + name: Daily Engineering Rotation + time_zone: America/New_York + description: Rotation schedule for engineering + escalation_policies: + - id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + users: + - id: PEYSGVF + type: user_reference + summary: PagerDuty Admin + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + limit: 100 + offset: 0 + more: false + total: null + With Schedule Layers: + summary: With Schedule Layers Included + value: + schedules: + - id: PI7DH85 + type: schedule + summary: Daily Engineering Rotation + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + name: Daily Engineering Rotation + time_zone: America/New_York + description: Rotation schedule for engineering + escalation_policies: + - id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + users: + - id: PEYSGVF + type: user_reference + summary: PagerDuty Admin + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + schedule_layers: + - name: Night Shift + start: '2015-11-06T20:00:00-05:00' + end: '2016-11-06T20:00:00-05:00' + rotation_virtual_start: '2015-11-06T20:00:00-05:00' + rotation_turn_length_seconds: 86400 + users: + - user: + id: PEYSGVF + type: user_reference + summary: PagerDuty Admin + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + restrictions: + - type: daily_restriction + start_time_of_day: '08:00:00' + duration_seconds: 32400 + limit: 100 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + tags: + - Schedules + x-pd-requires-scope: schedules.write + operationId: createSchedule + description: | + Create a new on-call schedule. + + A Schedule determines the time periods that users are On-Call. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) + + Scoped OAuth requires: `schedules.write` + summary: Create a schedule + parameters: + - $ref: '#/components/parameters/schedule_overflow' + requestBody: + content: + application/json: + schema: + type: object + properties: + schedule: + $ref: '#/components/schemas/Schedule' + required: - schedule - schedule_layers: - type: array - description: A list of schedule layers. - items: - $ref: '#/components/schemas/ScheduleLayer' - time_zone: - type: string - format: activesupport-time-zone - description: The time zone of the schedule. - name: - type: string - description: The name of the schedule - description: - type: string - description: The description of the schedule - final_schedule: - $ref: '#/components/schemas/SubSchedule' - overrides_subschedule: - $ref: '#/components/schemas/SubSchedule' - escalation_policies: - type: array - readOnly: true - description: An array of all of the escalation policies that uses this schedule. - items: - $ref: '#/components/schemas/EscalationPolicyReference' - users: - type: array - readOnly: true - description: An array of all of the users on the schedule. - items: - $ref: '#/components/schemas/UserReference' - teams: - type: array - readOnly: true - description: An array of all of the teams on the schedule. - items: - $ref: '#/components/schemas/TeamReference' - required: - - time_zone - - type - example: - name: Daily Engineering Rotation - type: schedule - time_zone: America/New_York - description: Rotation schedule for engineering - schedule_layers: - - name: Night Shift - start: '2015-11-06T20:00:00-05:00' - end: '2016-11-06T20:00:00-05:00' - rotation_virtual_start: '2015-11-06T20:00:00-05:00' - rotation_turn_length_seconds: 86400 - users: - - user: - id: PXPGF42 - type: user_reference - restrictions: - - type: daily_restriction - start_time_of_day: '08:00:00' - duration_seconds: 32400 - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - ScheduleLayer: - type: object - properties: - id: - type: string - start: - type: string - format: date-time - description: The start time of this layer. - end: - type: string - format: date-time - description: 'The end time of this layer. If `null`, the layer does not end.' - users: - type: array - description: The ordered list of users on this layer. The position of the user on the list determines their order in the layer. - items: - $ref: '#/components/schemas/ScheduleLayerUser' - restrictions: - type: array - description: An array of restrictions for the layer. A restriction is a limit on which period of the day or week the schedule layer can accept assignments. - items: - $ref: '#/components/schemas/Restriction' - rotation_virtual_start: - type: string - format: date-time - description: The effective start time of the layer. This can be before the start time of the schedule. - rotation_turn_length_seconds: - type: integer - description: The duration of each on-call shift in seconds. - name: - type: string - description: The name of the schedule layer. - rendered_schedule_entries: - type: array - readOnly: true - description: This is a list of entries on the computed layer for the current time range. Since or until must be set in order for this field to be populated. - items: - $ref: '#/components/schemas/ScheduleLayerEntry' - rendered_coverage_percentage: - type: number - readOnly: true - description: The percentage of the time range covered by this layer. Returns null unless since or until are set. - required: - - start - - users - - rotation_virtual_start - - rotation_turn_length_seconds - SubSchedule: - type: object - properties: - name: - type: string - readOnly: true - description: The name of the subschedule - enum: - - Final Schedule - - Overrides - rendered_schedule_entries: - type: array - readOnly: true - description: This is a list of entries on the computed layer for the current time range. Since or until must be set in order for this field to be populated. - items: - $ref: '#/components/schemas/ScheduleLayerEntry' - rendered_coverage_percentage: - type: number - readOnly: true - description: The percentage of the time range covered by this layer. Returns null unless since or until are set. - required: - - name - EscalationPolicyReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - escalation_policy_reference - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - ScheduleLayerUser: - type: object - properties: - user: - $ref: '#/components/schemas/UserReference' - required: - - user - Restriction: - type: object - properties: - type: - type: string - description: Specify the types of `restriction`. - enum: - - daily_restriction - - weekly_restriction - duration_seconds: - type: integer - description: The duration of the restriction in seconds. - start_time_of_day: - type: string - format: partial-time - description: 'The start time in HH:mm:ss format.' - start_day_of_week: - type: integer - description: 'Only required for use with a `weekly_restriction` restriction type. The first day of the weekly rotation schedule as [ISO 8601 day](https://en.wikipedia.org/wiki/ISO_week_date) (1 is Monday, etc.)' - minimum: 1 - maximum: 7 - discriminator: - propertyName: type - required: - - type - - duration_seconds - - start_time_of_day - ScheduleLayerEntry: - type: object - properties: - user: - $ref: '#/components/schemas/UserReference' - start: - type: string - format: date-time - readOnly: true - description: The start time of this entry. - end: - type: string - format: date-time - readOnly: true - description: 'The end time of this entry. If null, the entry does not end.' - required: - - start - - end - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - AuditRecordResponseSchema: - allOf: - - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/AuditRecord' - response_metadata: - nullable: true - anyOf: - - $ref: '#/components/schemas/AuditMetadata' - required: - - records - - $ref: '#/components/schemas/CursorPagination' - AuditRecord: - type: object - readOnly: true - description: An Audit Trail record - properties: - id: - type: string - self: - type: string - nullable: true - description: Record URL. - execution_time: - type: string - format: date-time - description: 'The date/time the action executed, in ISO8601 format and millisecond precision.' - execution_context: - type: object - description: Action execution context - properties: - request_id: - type: string - nullable: true - description: Request Id - remote_address: - type: string - nullable: true - description: remote address - nullable: true - actors: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - method: - type: object - description: The method information - properties: - description: - type: string - nullable: true - truncated_token: - description: Truncated token containing the last 4 chars of the token's actual value. - type: string - nullable: true - example: 3xyz - type: - $ref: '#/components/parameters/audit_method_type/schema' - required: - - type - root_resource: - $ref: '#/components/schemas/Reference' - action: - type: string - example: create - details: - type: object - nullable: true - description: | - Additional details to provide further information about the action or - the resource that has been audited. - properties: - resource: - $ref: '#/components/schemas/Reference' - fields: - description: | - A set of fields that have been affected. - The fields that have not been affected MAY be returned. - type: array - nullable: true - items: - type: object - description: | - Information about the affected field. - When available, field's before and after values are returned: - - #### Resource creation - - `value` MAY be returned - - #### Resource update - - `value` MAY be returned - - `before_value` MAY be returned - - #### Resource deletion - - `before_value` MAY be returned - properties: - name: - type: string - description: Name of the resource field - example: name - description: - type: string - nullable: true - description: Human readable description of the resource field - example: First and Last name - value: - type: string - nullable: true - description: new or updated value of the field - example: Jonathan - before_value: - type: string - nullable: true - description: previous or deleted value of the field - example: John - required: - - name - references: - description: A set of references that have been affected. - type: array - nullable: true - items: + examples: + request: + summary: Request Example + value: + schedule: + name: Daily Engineering Rotation + type: schedule + time_zone: America/New_York + description: Rotation schedule for engineering + schedule_layers: + - name: Night Shift + start: '2015-11-06T20:00:00-05:00' + rotation_virtual_start: '2015-11-06T20:00:00-05:00' + rotation_turn_length_seconds: 86400 + users: + - user: + id: PXPGF42 + type: user_reference + restrictions: + - type: daily_restriction + start_time_of_day: '08:00:00' + duration_seconds: 32400 + description: The schedule to be created. + responses: + '201': + description: The schedule object created. + content: + application/json: + schema: type: object properties: - name: - type: string - description: Name of the reference field - example: team_members - description: - type: string - nullable: true - description: Human readable description of the references field - example: First and Last name - added: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - removed: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' + schedule: + $ref: '#/components/schemas/Schedule' required: - - name - required: - - resource - required: - - id - - execution_time - - method - - root_resource - - action - AuditMetadata: - type: object - properties: - messages: - type: array - nullable: true - items: - type: string - example: Message about the result - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - Override: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - id: - type: string - readOnly: true - start: - description: The start date and time for the override. - type: string - format: date-time - end: - description: The end date and time for the override. - type: string - format: date-time - user: - $ref: '#/components/schemas/UserReference' - required: - - start - - end - - user - example: - start: '2012-07-01T00:00:00-04:00' - end: '2012-07-02T00:00:00-04:00' - user: - id: PEYSGVF - type: user_reference - User: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - name: - type: string - description: The name of the user. - maxLength: 100 - type: - type: string - description: The type of object being created. - default: user - enum: - - user - email: - type: string - format: email - description: The user's email address. - minLength: 6 - maxLength: 100 - time_zone: - type: string - format: tzinfo - description: 'The preferred time zone name. If null, the account''s time zone will be used.' - color: - type: string - description: The schedule color. - role: - description: 'The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`.' - type: string - enum: - - admin - - limited_user - - observer - - owner - - read_only_user - - restricted_access - - read_only_limited_user - - user - avatar_url: - type: string - format: url - description: The URL of the user's avatar. - readOnly: true - description: - type: string - description: The user's bio. - nullable: true - invitation_sent: - type: boolean - readOnly: true - description: 'If true, the user has an outstanding invitation.' - job_title: - type: string - description: The user's title. - maxLength: 100 - teams: - type: array - readOnly: true - description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. - items: - $ref: '#/components/schemas/TeamReference' - contact_methods: - type: array - readOnly: true - description: The list of contact methods for the user. - items: - $ref: '#/components/schemas/ContactMethodReference' - notification_rules: - readOnly: true - type: array - description: The list of notification rules for the user. - items: - $ref: '#/components/schemas/NotificationRuleReference' - license: - description: The License assigned to the User - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - license_reference - required: - - name - - email - - type - example: - type: user - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - job_title: Director of Engineering - avatar_url: 'https://secure.gravatar.com/avatar/1d1a39d4635208d5664082a6c654a73f.png?d=mm&r=PG' - description: I'm the boss - ContactMethodReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - email_contact_method_reference - - phone_contact_method_reference - - push_notification_contact_method_reference - - sms_contact_method_reference - NotificationRuleReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - assignment_notification_rule_reference - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id + - schedule + examples: + response: + summary: Response Example + value: + schedule: + id: PI7DH85 + type: schedule + summary: Daily Engineering Rotation + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + name: Daily Engineering Rotation + time_zone: America/New_York + description: Rotation schedule for engineering + escalation_policies: + - id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + users: + - id: PEYSGVF + type: user_reference + summary: PagerDuty Admin + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + teams: [] + schedule_layers: + - name: Layer 1 + rendered_schedule_entries: [] + id: PG68P1M + start: '2015-11-06T20:00:00-05:00' + rotation_virtual_start: '2015-11-06T20:00:00-05:00' + rotation_turn_length_seconds: 86400 + users: + - user: + id: PEYSGVF + type: user_reference + summary: PagerDuty Admin + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + restrictions: + - type: daily_restriction + start_time_of_day: '08:00:00' + duration_seconds: 32400 + overrides_subschedule: + name: Overrides + rendered_schedule_entries: [] + final_schedule: + name: Final Schedule + rendered_schedule_entries: [] + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and create on-call schedules. + /schedules/{id}: + get: + tags: + - Schedules + x-pd-requires-scope: schedules.read + operationId: getSchedule description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Show detailed information about a schedule, including entries for each layer. + Scoped OAuth requires: `schedules.read` + summary: Get a schedule + parameters: + - $ref: '#/components/parameters/schedule_time_zone' + - $ref: '#/components/parameters/schedule_since' + - $ref: '#/components/parameters/schedule_until' + - $ref: '#/components/parameters/schedule_overflow' + - $ref: '#/components/parameters/include_next_oncall_for_user' + - $ref: '#/components/parameters/schedule_id' + responses: + '200': + description: The schedule object. + content: + application/json: + schema: + type: object + properties: + schedule: + $ref: '#/components/schemas/Schedule' + required: + - schedule + examples: + response: + summary: Response Example + value: + schedule: + id: PI7DH85 + type: schedule + summary: Daily Engineering Rotation + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + name: Daily Engineering Rotation + time_zone: America/New_York + description: Rotation schedule for engineering + escalation_policies: + - id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + users: + - id: PXPGF42 + type: user_reference + summary: Regina Phalange + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + schedule_layers: + - name: Layer 1 + rendered_schedule_entries: + - start: '2015-11-09T08:00:00-05:00' + end: '2015-11-09T17:00:00-05:00' + user: + id: PXPGF42 + type: user_reference + summary: Regina Phalange + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + rendered_coverage_percentage: 37.5 + id: PG68P1M + start: '2015-11-06T21:00:00-05:00' + rotation_virtual_start: '2015-11-06T20:00:00-05:00' + rotation_turn_length_seconds: 86400 + users: + - user: + id: PXPGF42 + type: user_reference + summary: Regina Phalange + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + restrictions: + - type: daily_restriction + start_time_of_day: '08:00:00' + duration_seconds: 32400 + overrides_subschedule: + name: Overrides + rendered_schedule_entries: [] + rendered_coverage_percentage: 0 + final_schedule: + name: Final Schedule + rendered_schedule_entries: + - start: '2015-11-10T08:00:00-05:00' + end: '2015-11-10T17:00:00-05:00' + user: + id: PXPGF42 + type: user_reference + summary: Regina Phalange + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + rendered_coverage_percentage: 37.5 + next_oncall_for_user: + start: '2021-12-27T16:00:00-05:00' + end: '2022-01-03T16:00:00-05:00' + user: + - id: PCQNVHM + type: user_reference + summary: Jim Halpert + self: https://api.pagerduty.com/users/PCQNVHM + html_url: https://subdomain.pagerduty.com/users/PCQNVHM + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + tags: + - Schedules + x-pd-requires-scope: schedules.write + operationId: deleteSchedule description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Delete an on-call schedule. + A Schedule determines the time periods that users are On-Call. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - schedules: - id: pagerduty.schedules.schedules - name: schedules - title: Schedules - methods: - list_schedules: - operation: - $ref: '#/paths/~1schedules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schedules - _list_schedules: - operation: - $ref: '#/paths/~1schedules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_schedule: - operation: - $ref: '#/paths/~1schedules/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_schedule: - operation: - $ref: '#/paths/~1schedules~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.schedule - _get_schedule: - operation: - $ref: '#/paths/~1schedules~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_schedule: - operation: - $ref: '#/paths/~1schedules~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_schedule: - operation: - $ref: '#/paths/~1schedules~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - create_schedule_preview: - operation: - $ref: '#/paths/~1schedules~1preview/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/schedules/methods/get_schedule' - - $ref: '#/components/x-stackQL-resources/schedules/methods/list_schedules' - insert: - - $ref: '#/components/x-stackQL-resources/schedules/methods/create_schedule' - - $ref: '#/components/x-stackQL-resources/schedules/methods/create_schedule_preview' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/schedules/methods/delete_schedule' - audit_records: - id: pagerduty.schedules.audit_records - name: audit_records - title: Audit Records - methods: - list_schedules_audit_records: - operation: - $ref: '#/paths/~1schedules~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.records - _list_schedules_audit_records: - operation: - $ref: '#/paths/~1schedules~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/audit_records/methods/list_schedules_audit_records' - insert: [] - update: [] - delete: [] - overrides: - id: pagerduty.schedules.overrides - name: overrides - title: Overrides - methods: - list_schedule_overrides: - operation: - $ref: '#/paths/~1schedules~1{id}~1overrides/get' - response: - mediaType: application/json - openAPIDocKey: '201' - objectKey: $.overrides - _list_schedule_overrides: - operation: - $ref: '#/paths/~1schedules~1{id}~1overrides/get' - response: - mediaType: application/json - openAPIDocKey: '201' - create_schedule_override: - operation: - $ref: '#/paths/~1schedules~1{id}~1overrides/post' - response: - mediaType: application/json - openAPIDocKey: '201' - delete_schedule_override: - operation: - $ref: '#/paths/~1schedules~1{id}~1overrides~1{override_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/overrides/methods/list_schedule_overrides' - insert: - - $ref: '#/components/x-stackQL-resources/overrides/methods/create_schedule_override' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/overrides/methods/delete_schedule_override' - users: - id: pagerduty.schedules.users - name: users - title: Users - methods: - list_schedule_users: - operation: - $ref: '#/paths/~1schedules~1{id}~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.users - _list_schedule_users: - operation: - $ref: '#/paths/~1schedules~1{id}~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/list_schedule_users' - insert: [] - update: [] - delete: [] -paths: - /schedules: - get: - tags: - - Schedules - x-pd-requires-scope: schedules.read - operationId: listSchedules - description: | - List the on-call schedules. - - A Schedule determines the time periods that users are On-Call. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) - - Scoped OAuth requires: `schedules.read` - summary: List schedules - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/include_schedules' - responses: - '200': - description: A paginated array of schedule objects. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - schedules: - type: array - items: - $ref: '#/components/schemas/Schedule' - required: - - schedules - examples: - Basic Example: - value: - schedules: - - id: PI7DH85 - type: schedule - summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - name: Daily Engineering Rotation - time_zone: America/New_York - description: Rotation schedule for engineering - escalation_policies: - - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - users: - - id: PEYSGVF - type: user_reference - summary: PagerDuty Admin - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' - limit: 100 - offset: 0 - more: false - total: null - With Schedule Layers: - summary: With Schedule Layers Included - value: - schedules: - - id: PI7DH85 - type: schedule - summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - name: Daily Engineering Rotation - time_zone: America/New_York - description: Rotation schedule for engineering - escalation_policies: - - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - users: - - id: PEYSGVF - type: user_reference - summary: PagerDuty Admin - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' - schedule_layers: - - name: Night Shift - start: '2015-11-06T20:00:00-05:00' - end: '2016-11-06T20:00:00-05:00' - rotation_virtual_start: '2015-11-06T20:00:00-05:00' - rotation_turn_length_seconds: 86400 - users: - - user: - id: PEYSGVF - type: user_reference - summary: PagerDuty Admin - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' - restrictions: - - type: daily_restriction - start_time_of_day: '08:00:00' - duration_seconds: 32400 - limit: 100 - offset: 0 - more: false - total: null + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) + + Scoped OAuth requires: `schedules.write` + summary: Delete a schedule + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The schedule was deleted successfully. '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - post: + put: tags: - Schedules x-pd-requires-scope: schedules.write - operationId: createSchedule + operationId: updateSchedule description: | - Create a new on-call schedule. + Update an existing on-call schedule. A Schedule determines the time periods that users are On-Call. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) Scoped OAuth requires: `schedules.write` - summary: Create a schedule + summary: Update a schedule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/schedule_overflow' requestBody: content: @@ -3426,6 +452,7 @@ paths: schedule_layers: - name: Night Shift start: '2015-11-06T20:00:00-05:00' + end: '2016-11-06T20:00:00-05:00' rotation_virtual_start: '2015-11-06T20:00:00-05:00' rotation_turn_length_seconds: 86400 users: @@ -3436,10 +463,10 @@ paths: - type: daily_restriction start_time_of_day: '08:00:00' duration_seconds: 32400 - description: The schedule to be created. + description: The schedule to be updated. responses: - '201': - description: The schedule object created. + '200': + description: The updated schedule. content: application/json: schema: @@ -3457,8 +484,8 @@ paths: id: PI7DH85 type: schedule summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 name: Daily Engineering Rotation time_zone: America/New_York description: Rotation schedule for engineering @@ -3466,15 +493,20 @@ paths: - id: PT20YPA type: escalation_policy_reference summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA users: - - id: PEYSGVF + - id: PXPGF42 type: user_reference - summary: PagerDuty Admin - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' - teams: [] + summary: Regina Phalange + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 schedule_layers: - name: Layer 1 rendered_schedule_entries: [] @@ -3484,11 +516,11 @@ paths: rotation_turn_length_seconds: 86400 users: - user: - id: PEYSGVF + id: PXPGF42 type: user_reference - summary: PagerDuty Admin - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' + summary: Regina Phalange + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 restrictions: - type: daily_restriction start_time_of_day: '08:00:00' @@ -3505,111 +537,209 @@ paths: $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage an on-call schedule. + /schedules/{id}/audit/records: + get: + x-pd-requires-scope: audit_records.read + tags: + - Schedules + operationId: listSchedulesAuditRecords + summary: List audit records for a schedule + description: | + The returned records are sorted by the `execution_time` from newest to oldest. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/schedule_id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordScheduleResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/schedules/{id}': + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records of changes made to the schedule. + /schedules/{id}/overrides: get: tags: - Schedules x-pd-requires-scope: schedules.read - operationId: getSchedule + operationId: listScheduleOverrides description: | - Show detailed information about a schedule, including entries for each layer and sub-schedule. + List overrides for a given time range. + + A Schedule determines the time periods that users are On-Call. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) + Scoped OAuth requires: `schedules.read` - summary: Get a schedule + summary: List overrides parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/schedule_since' - - $ref: '#/components/parameters/schedule_until' - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/schedule_id' + - $ref: '#/components/parameters/since_schedules' + - $ref: '#/components/parameters/until_schedules' + - $ref: '#/components/parameters/editable_schedules' + - $ref: '#/components/parameters/overflow_schedules' responses: - '200': - description: The schedule object. + '201': + description: The collection of override objects returned by the query. content: application/json: schema: type: object properties: - schedule: - $ref: '#/components/schemas/Schedule' + overrides: + type: array + items: + $ref: '#/components/schemas/Override' required: - - schedule + - overrides examples: response: summary: Response Example value: - schedule: - id: PI7DH85 - type: schedule - summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - name: Daily Engineering Rotation - time_zone: America/New_York - description: Rotation schedule for engineering - escalation_policies: - - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - users: - - id: PXPGF42 + overrides: + - id: PQ47DCP + start: '2012-07-01T00:00:00-04:00' + end: '2012-07-02T00:00:00-04:00' + user: + id: PEYSGVF + type: user_reference + summary: Aurelio Rice + self: https://api.pagerduty.com/users/PEYSGVF + html_url: https://subdomain.pagerduty.com/users/PEYSGVF + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + tags: + - Schedules + x-pd-requires-scope: schedules.write + operationId: createScheduleOverride + description: | + Create one or more overrides, each for a specific user covering a specified time range. If you create an override on top of an existing override, the last created override will have priority. + + A Schedule determines the time periods that users are On-Call. + + Note: An older implementation of this endpoint only supported creating a single ocverride per request. That functionality is still supported, but deprecated and may be removed in the future. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) + + Scoped OAuth requires: `schedules.write` + summary: Create one or more overrides + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + description: '' + type: object + properties: + overrides: + type: array + items: + $ref: '#/components/schemas/Override' + examples: + request: + summary: Request Example + value: + overrides: + - start: '2012-07-01T00:00:00-04:00' + end: '2012-07-02T00:00:00-04:00' + user: + id: PEYSGVA + type: user_reference + time_zone: UTC + - start: '2012-07-03T00:00:00-04:00' + end: '2012-07-04T00:00:00-04:00' + user: + id: PEYSGVF + type: user_reference + time_zone: UTC + description: The overrides to be created + required: true + responses: + '201': + description: A list of overrides requested and a status code indicating whether they were created or rejected + content: + application/json: + schema: + $ref: '#/components/schemas/CreateScheduleOverrideResponse' + examples: + response: + summary: Response Example + value: + - status: 201 + override: + start: '2021-03-09T05:00:00Z' + end: '2021-03-09T17:00:00Z' + user: + id: P37CSDJ + type: user_reference + summary: Scott + self: https://api.pd-staging.com/users/P37CSDJ + html_url: https://pdt-braythwayt.pd-staging.com/users/P37CSDJ + id: Q3X6MJ1LUKD6QW + - status: 201 + override: + start: '2021-03-10T05:00:00Z' + end: '2021-03-10T17:00:00Z' + user: + id: P37CSDJ + type: user_reference + summary: Scott + self: https://api.pd-staging.com/users/P37CSDJ + html_url: https://pdt-braythwayt.pd-staging.com/users/P37CSDJ + id: Q37A85CJZP1DTT + - status: 400 + errors: + - Override must end after its start + override: + start: '2021-03-11T05:00:00Z' + end: '2021-03-11T05:00:00Z' + user: + id: P37CSDJ type: user_reference - summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - schedule_layers: - - name: Layer 1 - rendered_schedule_entries: - - start: '2015-11-09T08:00:00-05:00' - end: '2015-11-09T17:00:00-05:00' - user: - id: PXPGF42 - type: user_reference - summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - rendered_coverage_percentage: 37.5 - id: PG68P1M - start: '2015-11-06T21:00:00-05:00' - rotation_virtual_start: '2015-11-06T20:00:00-05:00' - rotation_turn_length_seconds: 86400 - users: - - user: - id: PXPGF42 - type: user_reference - summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - restrictions: - - type: daily_restriction - start_time_of_day: '08:00:00' - duration_seconds: 32400 - overrides_subschedule: - name: Overrides - rendered_schedule_entries: [] - rendered_coverage_percentage: 0 - final_schedule: - name: Final Schedule - rendered_schedule_entries: - - start: '2015-11-10T08:00:00-05:00' - end: '2015-11-10T17:00:00-05:00' - user: - id: PXPGF42 - type: user_reference - summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - rendered_coverage_percentage: 37.5 + summary: Scott + self: https://api.pd-staging.com/users/P37CSDJ + html_url: https://pdt-braythwayt.pd-staging.com/users/P37CSDJ '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3620,27 +750,146 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' + description: List and create schedule overrides. + /schedules/{id}/overrides/{override_id}: delete: tags: - Schedules x-pd-requires-scope: schedules.write - operationId: deleteSchedule + operationId: deleteScheduleOverride description: | - Delete an on-call schedule. + Remove an override. + + You cannot remove a past override. + + If the override start time is before the current time, but the end time is after the current time, the override will be truncated to the current time. + + If the override is truncated, the status code will be 200 OK, as opposed to a 204 No Content for a successful delete. A Schedule determines the time periods that users are On-Call. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) Scoped OAuth requires: `schedules.write` - summary: Delete a schedule + summary: Delete an override parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/schedule_override_id' responses: + '200': + description: The override was truncated. '204': - description: The schedule was deleted successfully. + description: The override was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Delete a schedule override. + /schedules/{id}/users: + get: + tags: + - Schedules + x-pd-requires-scope: users.read + operationId: listScheduleUsers + description: | + List all of the users on call in a given schedule for a given time range. + + A Schedule determines the time periods that users are On-Call. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) + + Scoped OAuth requires: `users.read` + summary: List users on call. + parameters: + - $ref: '#/components/parameters/schedule_id' + - $ref: '#/components/parameters/since' + - $ref: '#/components/parameters/until' + responses: + '200': + description: The users on the given schedule. + content: + application/json: + schema: + type: object + properties: + users: + type: array + readOnly: true + items: + $ref: '#/components/schemas/User' + required: + - users + examples: + response: + summary: Response Example + value: + users: + - id: PAM4FGS + type: user + summary: Kyler Kuhn + self: https://api.pagerduty.com/users/PAM4FGS + html_url: https://subdomain.pagerduty.com/users/PAM4FGS + name: Kyler Kuhn + email: 126_dvm_kyler_kuhn@beahan.name + time_zone: Asia/Hong_Kong + color: red + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: Engineer based in HK + invitation_sent: false + contact_methods: + - id: PVMGSML + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PAM4FGS/contact_methods/PVMGSMLL + notification_rules: + - id: P8GRWKZ + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PAM4FGS/notification_rules/P8GRWKZ + html_url: null + job_title: Senior Engineer + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + - id: PXPGF42 + type: user + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + invitation_sent: false + contact_methods: + - id: PTDVERC + type: email_contact_method_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK + html_url: null + job_title: Director of Engineering + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3651,24 +900,25 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - put: + description: List the users on call for a given schedule. + /schedules/preview: + post: tags: - Schedules x-pd-requires-scope: schedules.write - operationId: updateSchedule + operationId: createSchedulePreview description: | - Update an existing on-call schedule. + Preview what an on-call schedule would look like without saving it. A Schedule determines the time periods that users are On-Call. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#schedules) Scoped OAuth requires: `schedules.write` - summary: Update a schedule + summary: Preview a schedule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/since' + - $ref: '#/components/parameters/until' - $ref: '#/components/parameters/schedule_overflow' requestBody: content: @@ -3703,10 +953,10 @@ paths: - type: daily_restriction start_time_of_day: '08:00:00' duration_seconds: 32400 - description: The schedule to be updated. + description: The schedule to be previewed. responses: '200': - description: The updated schedule. + description: What the schedule will look like if posted. content: application/json: schema: @@ -3724,29 +974,24 @@ paths: id: PI7DH85 type: schedule summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' + self: https://api.pagerduty.com/schedules/PI7DH85 + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 name: Daily Engineering Rotation time_zone: America/New_York description: Rotation schedule for engineering - escalation_policies: - - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' + escalation_policies: [] users: - id: PXPGF42 type: user_reference summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 teams: - id: PQ9K7I8 type: team_reference summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 schedule_layers: - name: Layer 1 rendered_schedule_entries: [] @@ -3759,8 +1004,8 @@ paths: id: PXPGF42 type: user_reference summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 restrictions: - type: daily_restriction start_time_of_day: '08:00:00' @@ -3777,515 +1022,1571 @@ paths: $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/schedules/{id}/audit/records': - get: - x-pd-requires-scope: audit_records.read - tags: - - Schedules - operationId: listSchedulesAuditRecords - summary: List audit records for a schedule - description: | - The returned records are sorted by the `execution_time` from newest to oldest. + description: Preview what an on-call schedule would look like without saving it. This works the same as the update or create actions, except that the result is not persisted. Preview optionally takes two additional arguments, since and until, delimiting the span of the preview. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Schedule: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + schedule_layers: + type: array + description: A list of schedule layers. + items: + $ref: '#/components/schemas/ScheduleLayer' + time_zone: + type: string + format: activesupport-time-zone + description: The time zone of the schedule. + name: + type: string + description: The name of the schedule + description: + type: string + description: The description of the schedule + final_schedule: + $ref: '#/components/schemas/SubSchedule' + overrides_subschedule: + $ref: '#/components/schemas/SubSchedule' + escalation_policies: + type: array + readOnly: true + description: An array of all of the escalation policies that uses this schedule. + items: + $ref: '#/components/schemas/EscalationPolicyReference' + users: + type: array + readOnly: true + description: An array of all of the users on the schedule. + items: + $ref: '#/components/schemas/UserReference' + teams: + type: array + readOnly: true + description: An array of all of the teams on the schedule. + items: + $ref: '#/components/schemas/TeamReference' + next_oncall_for_user: + type: object + properties: + start: + type: string + readOnly: true + description: The start date for the User shift + end: + type: string + readOnly: true + description: The end date for the User shift + user: + $ref: '#/components/schemas/Reference' + required: + - time_zone + - type + example: + name: Daily Engineering Rotation + type: schedule + time_zone: America/New_York + description: Rotation schedule for engineering + schedule_layers: + - name: Night Shift + start: '2015-11-06T20:00:00-05:00' + end: '2016-11-06T20:00:00-05:00' + rotation_virtual_start: '2015-11-06T20:00:00-05:00' + rotation_turn_length_seconds: 86400 + users: + - user: + id: PXPGF42 + type: user_reference + restrictions: + - type: daily_restriction + start_time_of_day: '08:00:00' + duration_seconds: 32400 + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + Override: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + start: + description: The start date and time for the override. + type: string + format: date-time + end: + description: The end date and time for the override. + type: string + format: date-time + user: + $ref: '#/components/schemas/UserReference' + required: + - start + - end + - user + example: + start: '2012-07-01T00:00:00-04:00' + end: '2012-07-02T00:00:00-04:00' + user: + id: PEYSGVF + type: user_reference + User: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + required: + - name + - email + - type + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + ScheduleLayer: + type: object + properties: + id: + type: string + start: + type: string + format: date-time + description: The start time of this layer. + end: + type: string + format: date-time + description: The end time of this layer. If `null`, the layer does not end. + users: + type: array + description: The ordered list of users on this layer. The position of the user on the list determines their order in the layer. + items: + $ref: '#/components/schemas/ScheduleLayerUser' + restrictions: + type: array + description: An array of restrictions for the layer. A restriction is a limit on which period of the day or week the schedule layer can accept assignments. Restrictions respect the `time_zone` parameter of the request. + items: + $ref: '#/components/schemas/Restriction' + rotation_virtual_start: + type: string + format: date-time + description: The effective start time of the layer. This can be before the start time of the schedule. + rotation_turn_length_seconds: + type: integer + description: The duration of each on-call shift in seconds. + name: + type: string + description: The name of the schedule layer. + rendered_schedule_entries: + type: array + readOnly: true + description: This is a list of entries on the computed layer for the current time range. Since or until must be set in order for this field to be populated. + items: + $ref: '#/components/schemas/ScheduleLayerEntry' + rendered_coverage_percentage: + type: number + readOnly: true + description: The percentage of the time range covered by this layer. Returns null unless since or until are set. + required: + - start + - users + - rotation_virtual_start + - rotation_turn_length_seconds + SubSchedule: + type: object + properties: + name: + type: string + readOnly: true + description: The name of the subschedule + enum: + - Final Schedule + - Overrides + rendered_schedule_entries: + type: array + readOnly: true + description: This is a list of entries on the computed layer for the current time range. Since or until must be set in order for this field to be populated. + items: + $ref: '#/components/schemas/ScheduleLayerEntry' + rendered_coverage_percentage: + type: number + readOnly: true + description: The percentage of the time range covered by this layer. Returns null unless since or until are set. + required: + - name + EscalationPolicyReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - Scoped OAuth requires: `audit_records.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/audit_since' - - $ref: '#/components/parameters/audit_until' - responses: - '200': - description: Records matching the query criteria. - content: - application/json: - schema: - $ref: '#/components/schemas/AuditRecordResponseSchema' - examples: - response: - $ref: '#/components/examples/AuditRecordScheduleResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/schedules/{id}/overrides': - get: - tags: - - Schedules - x-pd-requires-scope: schedules.read - operationId: listScheduleOverrides - description: | - List overrides for a given time range. + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - A Schedule determines the time periods that users are On-Call. + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: + type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned - Scoped OAuth requires: `schedules.read` - summary: List overrides - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/since_schedules' - - $ref: '#/components/parameters/until_schedules' - - $ref: '#/components/parameters/editable_schedules' - - $ref: '#/components/parameters/overflow_schedules' - responses: - '201': - description: The collection of override objects returned by the query. - content: - application/json: - schema: + #### Resource deletion + - `before_value` MAY be returned + properties: + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name + value: + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: + type: object + properties: + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + required: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + ContactMethodReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + NotificationRuleReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ScheduleLayerUser: + type: object + properties: + user: + $ref: '#/components/schemas/UserReference' + required: + - user + Restriction: + type: object + properties: + type: + type: string + description: Specify the types of `restriction`. + enum: + - daily_restriction + - weekly_restriction + duration_seconds: + type: integer + description: The duration of the restriction in seconds. + start_time_of_day: + type: string + format: partial-time + description: The start time in HH:mm:ss format. + start_day_of_week: + type: integer + description: Only required for use with a `weekly_restriction` restriction type. The first day of the weekly rotation schedule as [ISO 8601 day](https://en.wikipedia.org/wiki/ISO_week_date) (1 is Monday, etc.) + minimum: 1 + maximum: 7 + discriminator: + propertyName: type + required: + - type + - duration_seconds + - start_time_of_day + ScheduleLayerEntry: + type: object + properties: + user: + $ref: '#/components/schemas/UserReference' + start: + type: string + format: date-time + readOnly: true + description: The start time of this entry. + end: + type: string + format: date-time + readOnly: true + description: The end time of this entry. If null, the entry does not end. + required: + - start + - end + CreateScheduleOverrideResponse: + type: object + properties: + create_schedule_override: + type: array + items: + type: object + properties: + status: + type: number + description: HTTP Status Code reflecting the result of creating this specific override, e.g. 201 for success, 400 for invalid parameters. + errors: + type: array + description: If present, an array of strings representing human-readable explanations for errors found. + items: + type: string + override: + $ref: '#/components/schemas/Override' + required: + - override + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - overrides: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/Override' - required: - - overrides - examples: - response: - summary: Response Example - value: - overrides: - - id: PQ47DCP - start: '2012-07-01T00:00:00-04:00' - end: '2012-07-02T00:00:00-04:00' - user: - id: PEYSGVF - type: user_reference - summary: Aurelio Rice - self: 'https://api.pagerduty.com/users/PEYSGVF' - html_url: 'https://subdomain.pagerduty.com/users/PEYSGVF' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - tags: - - Schedules - x-pd-requires-scope: schedules.write - operationId: createScheduleOverride + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Create one or more overrides, each for a specific user covering a specified time range. If you create an override on top of an existing override, the last created override will have priority. - - A Schedule determines the time periods that users are On-Call. - - Note: An older implementation of this endpoint only supported creating a single ocverride per request. That functionality is still supported, but deprecated and may be removed in the future. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) - - Scoped OAuth requires: `schedules.write` - summary: Create one or more overrides - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - description: '' - type: object - properties: - overrides: - type: array - items: - $ref: '#/components/schemas/Override' - examples: - request: - summary: Request Example - value: - overrides: - - start: '2012-07-01T00:00:00-04:00' - end: '2012-07-02T00:00:00-04:00' - user: - id: PEYSGVA - type: user_reference - time_zone: UTC - - start: '2012-07-03T00:00:00-04:00' - end: '2012-07-04T00:00:00-04:00' - user: - id: PEYSGVF - type: user_reference - time_zone: UTC - description: The overrides to be created - required: true - responses: - '201': - description: A list of overrides requested and a status code indicating whether they were created or rejected - content: - application/json: - schema: - type: array - description: '' - minItems: 1 - uniqueItems: true - items: - type: object - properties: - status: - type: number - description: 'HTTP Status Code reflecting the result of creating this specific override, e.g. 201 for success, 400 for invalid parameters.' - errors: - type: array - description: 'If present, an array of strings representing human-readable explanations for errors found.' - items: - type: string - override: - $ref: '#/components/schemas/Override' - required: - - override - examples: - response: - summary: Response Example - value: - - status: 201 - override: - start: '2021-03-09T05:00:00Z' - end: '2021-03-09T17:00:00Z' - user: - id: P37CSDJ - type: user_reference - summary: Scott - self: 'https://api.pd-staging.com/users/P37CSDJ' - html_url: 'https://pdt-braythwayt.pd-staging.com/users/P37CSDJ' - id: Q3X6MJ1LUKD6QW - - status: 201 - override: - start: '2021-03-10T05:00:00Z' - end: '2021-03-10T17:00:00Z' - user: - id: P37CSDJ - type: user_reference - summary: Scott - self: 'https://api.pd-staging.com/users/P37CSDJ' - html_url: 'https://pdt-braythwayt.pd-staging.com/users/P37CSDJ' - id: Q37A85CJZP1DTT - - status: 400 - errors: - - Override must end after its start - override: - start: '2021-03-11T05:00:00Z' - end: '2021-03-11T05:00:00Z' - user: - id: P37CSDJ - type: user_reference - summary: Scott - self: 'https://api.pd-staging.com/users/P37CSDJ' - html_url: 'https://pdt-braythwayt.pd-staging.com/users/P37CSDJ' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/schedules/{id}/overrides/{override_id}': - delete: - tags: - - Schedules - x-pd-requires-scope: schedules.write - operationId: deleteScheduleOverride + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Remove an override. - - You cannot remove a past override. - - If the override start time is before the current time, but the end time is after the current time, the override will be truncated to the current time. - - If the override is truncated, the status code will be 200 OK, as opposed to a 204 No Content for a successful delete. - - A Schedule determines the time periods that users are On-Call. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) - - Scoped OAuth requires: `schedules.write` - summary: Delete an override - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/schedule_override_id' - responses: - '200': - description: The override was truncated. - '204': - description: The override was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/schedules/{id}/users': - get: - tags: - - Schedules - x-pd-requires-scope: users.read - operationId: listScheduleUsers + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - List all of the users on call in a given schedule for a given time range. - - A Schedule determines the time periods that users are On-Call. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) - - Scoped OAuth requires: `users.read` - summary: List users on call. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/since' - - $ref: '#/components/parameters/until' - responses: - '200': - description: The users on the given schedule. - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - users: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array readOnly: true items: - $ref: '#/components/schemas/User' - required: - - users - examples: - response: - summary: Response Example - value: - users: - - id: PAM4FGS - type: user - summary: Kyler Kuhn - self: 'https://api.pagerduty.com/users/PAM4FGS' - html_url: 'https://subdomain.pagerduty.com/users/PAM4FGS' - name: Kyler Kuhn - email: 126_dvm_kyler_kuhn@beahan.name - time_zone: Asia/Hong_Kong - color: red - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/47857d059adacf9a41dc4030c2e14b0a.png?d=mm&r=PG' - description: Engineer based in HK - invitation_sent: false - contact_methods: - - id: PVMGSML - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PAM4FGS/contact_methods/PVMGSMLL' - notification_rules: - - id: P8GRWKZ - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PAM4FGS/notification_rules/P8GRWKZ' - html_url: null - job_title: Senior Engineer - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - - id: PXPGF42 - type: user - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/a8b714a39626f2444ee05990b078995f.png?d=mm&r=PG' - description: I'm the boss - invitation_sent: false - contact_methods: - - id: PTDVERC - type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK' - html_url: null - job_title: Director of Engineering - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - /schedules/preview: - post: - tags: - - Schedules - x-pd-requires-scope: schedules.write - operationId: createSchedulePreview + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Preview what an on-call schedule would look like without saving it. + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - A Schedule determines the time periods that users are On-Call. + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + include_schedules: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - schedule_layers + - overrides_subschedule + - final_schedule + uniqueItems: true + schedule_list_time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the current user's time zone and then the account's time zone. + schema: + type: string + format: tzinfo + include_next_oncall_for_user: + name: include_next_oncall_for_user + in: query + description: Specify an `user_id`, and the schedule list API will return information about this user's next on-call. + schema: + type: string + schedule_since: + name: since + in: query + description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. Optional parameter. When provided with include[] for schedule types, populates the rendered_schedule_entries fields in the response. + schema: + type: string + format: date-time + schedule_until: + name: until + in: query + description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. Optional parameter. When provided with include[] for schedule types, populates the rendered_schedule_entries fields in the response. + schema: + type: string + format: date-time + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + schedule_overflow: + name: overflow + in: query + description: | + Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. + For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules) - Scoped OAuth requires: `schedules.write` - summary: Preview a schedule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/since' - - $ref: '#/components/parameters/until' - - $ref: '#/components/parameters/schedule_overflow' - requestBody: - content: - application/json: - schema: - type: object - properties: - schedule: - $ref: '#/components/schemas/Schedule' - required: - - schedule - examples: - request: - summary: Request Example - value: - schedule: - name: Daily Engineering Rotation - type: schedule - time_zone: America/New_York - description: Rotation schedule for engineering - schedule_layers: - - name: Night Shift - start: '2015-11-06T20:00:00-05:00' - end: '2016-11-06T20:00:00-05:00' - rotation_virtual_start: '2015-11-06T20:00:00-05:00' - rotation_turn_length_seconds: 86400 - users: - - user: - id: PXPGF42 - type: user_reference - restrictions: - - type: daily_restriction - start_time_of_day: '08:00:00' - duration_seconds: 32400 - description: The schedule to be previewed. - responses: - '200': - description: What the schedule will look like if posted. - content: - application/json: - schema: - type: object - properties: - schedule: - $ref: '#/components/schemas/Schedule' - required: - - schedule - examples: - response: - summary: Response Example - value: - schedule: - id: PI7DH85 - type: schedule - summary: Daily Engineering Rotation - self: 'https://api.pagerduty.com/schedules/PI7DH85' - html_url: 'https://subdomain.pagerduty.com/schedules/PI7DH85' - name: Daily Engineering Rotation - time_zone: America/New_York - description: Rotation schedule for engineering - escalation_policies: [] - users: - - id: PXPGF42 - type: user_reference - summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - schedule_layers: - - name: Layer 1 - rendered_schedule_entries: [] - id: PG68P1M - start: '2015-11-06T20:00:00-05:00' - rotation_virtual_start: '2015-11-06T20:00:00-05:00' - rotation_turn_length_seconds: 86400 - users: - - user: - id: PXPGF42 - type: user_reference - summary: Regina Phalange - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - restrictions: - - type: daily_restriction - start_time_of_day: '08:00:00' - duration_seconds: 32400 - overrides_subschedule: - name: Overrides - rendered_schedule_entries: [] - final_schedule: - name: Final Schedule - rendered_schedule_entries: [] - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' + - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. + - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. + schema: + type: boolean + default: false + schedule_time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the schedule's time zone. + schema: + type: string + format: tzinfo + schedule_id: + name: id + description: The ID of the schedule. + in: path + required: true + schema: + type: string + example: P2LJD7G + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + since_schedules: + name: since + in: query + description: The start of the date range over which you want to search. + required: true + schema: + type: string + format: date-time + example: '2026-04-01T00:00:00Z' + until_schedules: + name: until + in: query + description: The end of the date range over which you want to search. + required: true + schema: + type: string + format: date-time + example: '2026-05-30T00:00:00Z' + editable_schedules: + name: editable + in: query + description: When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable. + schema: + type: boolean + overflow_schedules: + name: overflow + in: query + description: Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false. + schema: + type: boolean + schedule_override_id: + name: override_id + in: path + description: The override ID on the schedule. + required: true + schema: + type: string + example: Q2MCMG5TVIV6LQ + since: + name: since + in: query + description: The start of the date range over which you want to search. + schema: + type: string + format: date-time + until: + name: until + in: query + description: The end of the date range over which you want to search. + schema: + type: string + format: date-time + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + AuditRecordScheduleResponse: + summary: Response Example + value: + records: + - id: PD_ASSIGN_TEAM_TO_SCHEDULE + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + references: + - added: + - id: PD_TEAM123 + summary: Devops + type: team_reference + self: https://api.pagerduty.com/teams/PD_TEAM123 + html_url: https://mydomain.pagerduty.com/teams/PD_TEAM123 + name: teams + resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + execution_context: + request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad + execution_time: '2021-01-05T16:25:41.324Z' + method: + type: browser + root_resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + - id: PD_CREATE_SCHEDULE + action: create + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: name + value: DevOps Schedule + - name: description + value: Our DevOps Team Schedule + - name: time_zone + value: America/New_York + resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + execution_context: + request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad + execution_time: '2021-01-05T16:25:41.315Z' + method: + type: browser + root_resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + limit: 10 + next_cursor: null + x-stackQL-resources: + schedules: + id: pagerduty.schedules.schedules + name: schedules + title: Schedules + methods: + list: + operation: + $ref: '#/paths/~1schedules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schedules + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1schedules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1schedules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schedule + delete: + operation: + $ref: '#/paths/~1schedules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1schedules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + preview: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1schedules~1preview/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schedules/methods/get' + - $ref: '#/components/x-stackQL-resources/schedules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/schedules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/schedules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/schedules/methods/delete' + replace: [] + audit_records: + id: pagerduty.schedules.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1schedules~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + overrides: + id: pagerduty.schedules.overrides + name: overrides + title: Overrides + methods: + list: + operation: + $ref: '#/paths/~1schedules~1{id}~1overrides/get' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.overrides + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1schedules~1{id}~1overrides/post' + response: + mediaType: application/json + openAPIDocKey: '201' + objectKey: $.create_schedule_override + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/CreateScheduleOverrideResponse' + transform: + body: |- + {{- $wrapped := printf "{\"create_schedule_override\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + delete: + operation: + $ref: '#/paths/~1schedules~1{id}~1overrides~1{override_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/overrides/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/overrides/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/overrides/methods/delete' + replace: [] + users: + id: pagerduty.schedules.users + name: users + title: Users + methods: + list: + operation: + $ref: '#/paths/~1schedules~1{id}~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.users + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/schedules_v3.yaml b/providers/src/pagerduty/v00.00.00000/services/schedules_v3.yaml new file mode 100644 index 00000000..f407aeed --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/schedules_v3.yaml @@ -0,0 +1,3390 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Schedules V3 + description: 'The v3 schedules API: schedules, rotations, events, custom shifts and overrides.' + version: 2.0.0 +paths: + /v3/schedules: + get: + tags: + - Schedules_v3 + summary: List schedules + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve a paginated list of schedule references. Returns lightweight + objects without embedded rotations or events. + + Each result is filtered by the caller's read permission; schedules the + caller cannot read are silently excluded. + operationId: listSchedulesV3 + parameters: + - $ref: '#/components/parameters/schedule_v3_limit_schedules' + - $ref: '#/components/parameters/schedule_v3_offset' + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/team_ids' + responses: + '200': + description: Schedules retrieved successfully + content: + application/json: + schema: + type: object + required: + - schedules + properties: + schedules: + type: array + items: + $ref: '#/components/schemas/V3ScheduleReference' + limit: + type: integer + example: 100 + offset: + type: integer + example: 0 + more: + type: boolean + description: Whether additional results exist beyond this page + example: false + examples: + response: + summary: Example response + value: + schedules: + - id: PS1A2B3C + type: schedule_v3_reference + summary: Engineering On-Call + self: https://api.pagerduty.com/v3/schedules/PS1A2B3C + html_url: https://subdomain.pagerduty.com/schedules/PS1A2B3C + limit: 100 + offset: 0 + more: false + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Schedules_v3 + summary: Create a schedule + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Create a new on-call schedule with basic metadata. Rotations and events + must be added via separate API calls after creation. + + **Rejected fields:** `rotations` and `escalation_policies` are not + accepted in the request body and will result in a 400 error. + operationId: createScheduleV3 + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateScheduleRequest' + examples: + basic: + summary: Minimal schedule + value: + schedule: + name: Engineering On-Call + time_zone: America/New_York + withTeams: + summary: Schedule with teams + value: + schedule: + name: Engineering On-Call + time_zone: UTC + description: Engineering team on-call schedule + teams: + - id: PTEAM123 + type: team_reference + responses: + '201': + description: Schedule created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}: + get: + tags: + - Schedules_v3 + summary: Get a schedule + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve a schedule by ID including rotations and events. Optionally + include the computed final schedule for a time range. + + Use `include[]=final_schedule` to get computed on-call assignments. + Use `since` and `until` to specify the time range. + operationId: getScheduleV3 + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_since' + - $ref: '#/components/parameters/schedule_v3_until' + - $ref: '#/components/parameters/schedule_v3_time_zone' + - $ref: '#/components/parameters/schedule_v3_overflow' + - $ref: '#/components/parameters/schedule_v3_include' + responses: + '200': + description: Schedule retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleResponse' + examples: + response: + summary: Example response + value: + schedule: + id: PS1A2B3C + type: schedule_v3 + name: Engineering On-Call + time_zone: America/New_York + self: https://api.pagerduty.com/v3/schedules/PS1A2B3C + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Schedules_v3 + summary: Update a schedule + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Update schedule metadata (name, description, time zone). All fields are + optional — only provided fields are updated. + + To modify rotations or events, use their respective endpoints. + + **Rejected fields:** `rotations` and `escalation_policies` are not + accepted and will result in a 400 error. + operationId: updateScheduleV3 + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateScheduleRequest' + examples: + nameOnly: + summary: Update name only + value: + schedule: + name: New Schedule Name + fullUpdate: + summary: Update multiple fields + value: + schedule: + name: Updated Schedule + time_zone: America/Los_Angeles + description: Updated description + responses: + '200': + description: Schedule updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduleResponse' + examples: + response: + summary: Example response + value: + schedule: + id: PS1A2B3C + type: schedule_v3 + name: Updated Schedule + time_zone: America/Los_Angeles + self: https://api.pagerduty.com/v3/schedules/PS1A2B3C + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Schedules_v3 + summary: Delete a schedule + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Delete a schedule and all associated rotations and events. + + If the schedule is referenced by an active escalation policy, the + deletion will be rejected. + operationId: deleteScheduleV3 + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + responses: + '204': + description: Schedule deleted successfully + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/audit/records: + get: + x-pd-requires-scope: audit_records.read + tags: + - Schedules_v3 + operationId: listSchedulesAuditRecordsV3 + summary: List audit records for a schedule + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + The returned records are sorted by the `execution_time` from newest to oldest. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordScheduleResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records of changes made to the schedule. + /v3/schedules/{id}/custom_shifts: + get: + tags: + - Schedules_v3 + summary: List custom shifts + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve custom shifts for a schedule within a time range. + + **`since` and `until` are required.** + operationId: listCustomShifts + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_since_required' + - $ref: '#/components/parameters/schedule_v3_until_required' + - $ref: '#/components/parameters/schedule_v3_time_zone' + - $ref: '#/components/parameters/schedule_v3_overflow' + - $ref: '#/components/parameters/schedule_v3_limit' + - $ref: '#/components/parameters/schedule_v3_offset' + responses: + '200': + description: Custom shifts retrieved successfully + content: + application/json: + schema: + type: object + required: + - custom_shifts + properties: + custom_shifts: + type: array + items: + $ref: '#/components/schemas/CustomShift' + limit: + type: integer + offset: + type: integer + more: + type: boolean + examples: + response: + summary: Example response + value: + custom_shifts: [] + limit: 25 + offset: 0 + more: false + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Schedules_v3 + summary: Create custom shifts + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Create one or more custom shifts for a schedule. Custom shifts are + ad-hoc one-off coverage periods that exist outside of rotation events. + + Each custom shift requires exactly one assignment. + operationId: createCustomShifts + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCustomShiftsRequest' + example: + custom_shifts: + - type: custom_shift + start_time: '2025-03-15T09:00:00Z' + end_time: '2025-03-15T17:00:00Z' + assignments: + - type: shift_assignment + member: + type: user_member + user_id: PUSER123 + responses: + '201': + description: Custom shifts created successfully + content: + application/json: + schema: + type: object + required: + - custom_shifts + properties: + custom_shifts: + type: array + items: + $ref: '#/components/schemas/CustomShift' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/custom_shifts/{custom_shift_id}: + get: + tags: + - Schedules_v3 + summary: Get a custom shift + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve a single custom shift by ID. + operationId: getCustomShift + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_custom_shift_id' + responses: + '200': + description: Custom shift retrieved successfully + content: + application/json: + schema: + type: object + required: + - custom_shift + properties: + custom_shift: + $ref: '#/components/schemas/CustomShift' + examples: + response: + summary: Example response + value: + custom_shift: + id: ABCDE12345FGHIJ67890KLMNO + type: custom_shift + start_time: '2025-03-15T09:00:00Z' + end_time: '2025-03-15T17:00:00Z' + assignments: + - id: AGOQEAQOOJ3UDGC22OGLXLIRY4 + member: + type: user_member + user_id: PNFNM8M + type: shift_assignment + self: https://api.pagerduty.com/v3/schedules/PI7DH85/custom_shifts/ABCDE12345FGHIJ67890KLMNO + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Schedules_v3 + summary: Update a custom shift + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Update an existing custom shift. + + If the shift has already started, only `end_time` can be modified. + operationId: updateCustomShift + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_custom_shift_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateCustomShiftRequest' + example: + custom_shift: + start_time: '2025-03-15T10:00:00Z' + end_time: '2025-03-15T18:00:00Z' + assignments: + - type: shift_assignment + member: + type: user_member + user_id: PUSER456 + responses: + '200': + description: Custom shift updated successfully + content: + application/json: + schema: + type: object + required: + - custom_shift + properties: + custom_shift: + $ref: '#/components/schemas/CustomShift' + examples: + response: + summary: Example response + value: + custom_shift: + id: ABCDE12345FGHIJ67890KLMNO + type: custom_shift + start_time: '2025-03-15T10:00:00Z' + end_time: '2025-03-15T18:00:00Z' + assignments: + - id: AGOQEAQOOJ3UDGC22OGLXLIRY4 + member: + type: user_member + user_id: PNFNM8M + type: shift_assignment + self: https://api.pagerduty.com/v3/schedules/PI7DH85/custom_shifts/ABCDE12345FGHIJ67890KLMNO + html_url: https://subdomain.pagerduty.com/schedules/PI7DH85 + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Schedules_v3 + summary: Delete a custom shift + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Delete a custom shift by ID. When the shift is not started, it deletes the shift entirely. If the shift is already started, it sets the end_time to now. It returns Bad Request when shift is already ended. + operationId: deleteCustomShift + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_custom_shift_id' + responses: + '204': + description: Custom shift deleted successfully + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/overrides: + get: + tags: + - Schedules_v3 + summary: List overrides + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve overrides for a schedule within a time range. + + **`since` and `until` are required.** + operationId: listOverrides + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_since_required' + - $ref: '#/components/parameters/schedule_v3_until_required' + - $ref: '#/components/parameters/schedule_v3_time_zone' + - $ref: '#/components/parameters/schedule_v3_overflow' + - $ref: '#/components/parameters/schedule_v3_limit' + - $ref: '#/components/parameters/schedule_v3_offset' + responses: + '200': + description: Overrides retrieved successfully + content: + application/json: + schema: + type: object + required: + - overrides + properties: + overrides: + type: array + items: + $ref: '#/components/schemas/OverrideShift' + limit: + type: integer + offset: + type: integer + more: + type: boolean + examples: + response: + summary: Example response + value: + overrides: [] + limit: 25 + offset: 0 + more: false + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Schedules_v3 + summary: Create overrides + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Create one or more overrides for a schedule. An override temporarily + replaces a scheduled on-call member with a different member for a + specific time period. + + Each override must reference either a `rotation_id` or a + `custom_shift_id` (not both). The overriding member must belong to + the account. + + **Note:** The create response wraps the result in an `overrides` array. + Single-resource endpoints (get, update) wrap in `override` (singular). + operationId: createOverrides + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateOverridesRequest' + example: + overrides: + - type: override_shift + rotation_id: ABCDEFGHIJKLMNOPQRSTUVWXY + start_time: '2025-03-15T09:00:00Z' + end_time: '2025-03-15T17:00:00Z' + overridden_member: + type: user_member + user_id: PUSER123 + overriding_member: + type: user_member + user_id: PUSER456 + responses: + '201': + description: Overrides created successfully + content: + application/json: + schema: + type: object + required: + - overrides + properties: + overrides: + type: array + items: + $ref: '#/components/schemas/OverrideShift' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/overrides/{override_id}: + get: + tags: + - Schedules_v3 + summary: Get an override + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve a single override by ID. + operationId: getOverride + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_override_id' + responses: + '200': + description: Override retrieved successfully + content: + application/json: + schema: + type: object + required: + - override + properties: + override: + $ref: '#/components/schemas/OverrideShift' + examples: + response: + summary: Example response + value: + override: + id: ABCDE12345FGHIJ67890KLMNO + type: override_shift + start_time: '2025-03-15T09:00:00Z' + end_time: '2025-03-15T17:00:00Z' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Schedules_v3 + summary: Update an override + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Update an existing override. + operationId: updateOverride + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_override_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateOverrideRequest' + example: + override: + start_time: '2025-03-15T10:00:00Z' + end_time: '2025-03-15T18:00:00Z' + overriding_member: + type: user_member + user_id: PUSER789 + responses: + '200': + description: Override updated successfully + content: + application/json: + schema: + type: object + required: + - override + properties: + override: + $ref: '#/components/schemas/OverrideShift' + examples: + response: + summary: Example response + value: + override: + id: ABCDE12345FGHIJ67890KLMNO + type: override_shift + start_time: '2025-03-15T10:00:00Z' + end_time: '2025-03-15T18:00:00Z' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Schedules_v3 + summary: Delete an override + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Delete an override by ID. + operationId: deleteOverride + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_override_id' + responses: + '204': + description: Override deleted successfully + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/rotations: + get: + tags: + - Schedules_v3 + summary: List rotations + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve all rotations for a schedule. + operationId: listRotations + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_limit' + - $ref: '#/components/parameters/schedule_v3_offset' + responses: + '200': + description: Rotations retrieved successfully + content: + application/json: + schema: + type: object + required: + - rotations + properties: + rotations: + type: array + items: + $ref: '#/components/schemas/Rotation' + limit: + type: integer + offset: + type: integer + more: + type: boolean + examples: + response: + summary: Example response + value: + rotations: + - id: ABCDE12345FGHIJ67890KLMNO + type: rotation + limit: 25 + offset: 0 + more: false + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Schedules_v3 + summary: Create a rotation + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Create a new empty rotation for a schedule. After creating a rotation, + add events to define the on-call pattern. + + **Note:** Rotations have no configuration of their own — all scheduling + logic (recurrence, assignment strategy, members) is specified on events. + The request body must be empty or `{}`. + operationId: createRotation + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + requestBody: + required: false + content: + application/json: + schema: + type: string + description: Empty body — rotations carry no configuration at creation time (opaque JSON object) + responses: + '201': + description: Rotation created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/RotationResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/rotations/{rotation_id}: + get: + tags: + - Schedules_v3 + summary: Get a rotation + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve a rotation by ID including all its events. + operationId: getRotation + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + - $ref: '#/components/parameters/schedule_v3_since' + - $ref: '#/components/parameters/schedule_v3_until' + responses: + '200': + description: Rotation retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/RotationResponse' + examples: + response: + summary: Example response + value: + rotation: + id: ABCDE12345FGHIJ67890KLMNO + type: rotation + schedule: + id: PS1A2B3C + type: schedule_v3_reference + events: [] + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Schedules_v3 + summary: Delete a rotation + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Delete a rotation and all its events. + + On deletion, past events are preserved in the audit history, the current + active event is truncated to the deletion time, and future events are + removed. + operationId: deleteRotation + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + responses: + '204': + description: Rotation deleted successfully + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/rotations/{rotation_id}/events: + get: + tags: + - Schedules_v3 + summary: List events + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve all events for a rotation, ordered by start time. + operationId: listEvents + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + - $ref: '#/components/parameters/schedule_v3_limit' + - $ref: '#/components/parameters/schedule_v3_offset' + responses: + '200': + description: Events retrieved successfully + content: + application/json: + schema: + type: object + required: + - events + properties: + events: + type: array + items: + $ref: '#/components/schemas/Event' + limit: + type: integer + offset: + type: integer + more: + type: boolean + examples: + response: + summary: Example response + value: + events: [] + limit: 25 + offset: 0 + more: false + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + post: + tags: + - Schedules_v3 + summary: Create an event + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Create a new event that defines when and how users are on-call within + a rotation. + + **Constraints:** + - Maximum 5 events per rotation + - Events within a rotation cannot overlap + - `effective_since` must be in the future (past values are clamped to now) + - All users referenced in `assignment_strategy.members` must exist and + belong to the account + operationId: createEvent + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateEventRequest' + examples: + rotatingWeekly: + summary: Rotating weekly event + value: + event: + name: Weekly On-Call + start_time: + date_time: '2025-03-03T09:00:00Z' + time_zone: America/New_York + end_time: + date_time: '2025-03-10T09:00:00Z' + time_zone: America/New_York + effective_since: '2025-03-03T00:00:00Z' + recurrence: + - RRULE:FREQ=WEEKLY + assignment_strategy: + type: rotating_member_assignment_strategy + shifts_per_member: 1 + members: + - type: user_member + user_id: PUSER123 + - type: user_member + user_id: PUSER456 + everyMember: + summary: Every-member event (all members on-call simultaneously) + value: + event: + name: All-Hands Coverage + start_time: + date_time: '2025-03-03T00:00:00Z' + time_zone: UTC + end_time: + date_time: '2025-03-04T00:00:00Z' + time_zone: UTC + effective_since: '2025-03-03T00:00:00Z' + effective_until: '2025-06-01T00:00:00Z' + recurrence: + - RRULE:FREQ=WEEKLY;BYDAY=MO + assignment_strategy: + type: every_member_assignment_strategy + members: + - type: user_member + user_id: PUSER123 + - type: user_member + user_id: PUSER456 + responses: + '201': + description: Event created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/EventResponse' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /v3/schedules/{id}/rotations/{rotation_id}/events/{event_id}: + get: + tags: + - Schedules_v3 + summary: Get an event + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Retrieve a specific event by ID. + operationId: getEvent + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + - $ref: '#/components/parameters/schedule_v3_event_id' + - $ref: '#/components/parameters/schedule_v3_since' + - $ref: '#/components/parameters/schedule_v3_until' + responses: + '200': + description: Event retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/EventResponse' + examples: + response: + summary: Example response + value: + event: + id: ABCDE12345FGHIJ67890KLMNO + type: event + name: Weekly On-Call + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + tags: + - Schedules_v3 + summary: Update an event + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Update an existing event. + + **Restrictions based on event timing:** + - **Past events** (effective_until in the past): Cannot be modified + - **Active events** (currently producing shifts): Can only update + `effective_until` + - **Future events** (effective_since in the future): All fields can + be updated + operationId: updateEvent + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + - $ref: '#/components/parameters/schedule_v3_event_id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateEventRequest' + examples: + extendActive: + summary: Extend an active event's end date + value: + event: + effective_until: '2025-09-01T00:00:00Z' + updateFuture: + summary: Update a future event + value: + event: + name: Updated Weekly On-Call + assignment_strategy: + type: rotating_member_assignment_strategy + shifts_per_member: 1 + members: + - type: user_member + user_id: PUSER789 + responses: + '200': + description: Event updated successfully + content: + application/json: + schema: + $ref: '#/components/schemas/EventResponse' + examples: + response: + summary: Example response + value: + event: + id: ABCDE12345FGHIJ67890KLMNO + type: event + name: Updated Weekly On-Call + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + tags: + - Schedules_v3 + summary: Delete an event + description: | + + + > **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:** + > + > 1. **Update your automations** to use the V3 API for all new shift-based schedules + > 2. **Keep the V2 endpoint** for your existing schedules + > + > An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples). + + Delete an event from a rotation. + operationId: deleteEvent + parameters: + - $ref: '#/components/parameters/schedule_v3_id' + - $ref: '#/components/parameters/schedule_v3_rotation_id' + - $ref: '#/components/parameters/schedule_v3_event_id' + responses: + '204': + description: Event deleted successfully + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' +components: + schemas: + V3ScheduleReference: + type: object + description: | + Lightweight schedule object returned by the list endpoint. + Uses `"type": "schedule_v3_reference"` to distinguish from + legacy schedules (`"type": "schedule_reference"`). + required: + - id + - type + - summary + properties: + id: + type: string + example: PL5FQHC + type: + type: string + enum: + - schedule_v3_reference + summary: + type: string + description: Schedule name + example: Engineering On-Call + self: + type: string + format: uri + example: https://api.pagerduty.com/v3/schedules/PL5FQHC + html_url: + type: string + format: uri + example: https://example.pagerduty.com/schedules/PL5FQHC + CreateScheduleRequest: + type: object + required: + - schedule + properties: + schedule: + type: object + required: + - name + - time_zone + properties: + name: + type: string + minLength: 1 + maxLength: 255 + example: Engineering On-Call + time_zone: + type: string + description: IANA timezone identifier + example: America/New_York + description: + type: string + maxLength: 1024 + example: Primary engineering on-call rotation + teams: + type: array + description: Teams to associate with this schedule + items: + type: object + required: + - id + - type + properties: + id: + type: string + type: + type: string + enum: + - team_reference + ScheduleResponse: + type: object + required: + - schedule + properties: + schedule: + type: object + required: + - id + - type + - name + - time_zone + properties: + id: + type: string + example: PL5FQHC + type: + type: string + enum: + - schedule_v3 + description: | + Always `"schedule_v3"` for schedules created with this API. + Schedules created with the legacy `/schedules` API use `"schedule"`. + name: + type: string + example: Engineering On-Call + time_zone: + type: string + example: America/New_York + description: + type: string + example: Primary engineering on-call rotation + teams: + type: array + items: + $ref: '#/components/schemas/TeamReference' + escalation_policies: + type: array + description: Escalation policies that reference this schedule + items: + $ref: '#/components/schemas/EscalationPolicyReference' + users: + type: array + description: All users referenced in this schedule (only present when include[]=users) + items: + $ref: '#/components/schemas/UserReference' + rotations: + type: array + description: Rotations in this schedule + items: + $ref: '#/components/schemas/Rotation' + final_schedule: + $ref: '#/components/schemas/FinalSchedule' + http_cal_url: + type: string + format: uri + description: iCal HTTP feed URL for this schedule + web_cal_url: + type: string + format: uri + description: iCal webcal URL for this schedule + self: + type: string + format: uri + html_url: + type: string + format: uri + UpdateScheduleRequest: + type: object + required: + - schedule + properties: + schedule: + type: object + properties: + name: + type: string + minLength: 1 + maxLength: 255 + example: Updated Schedule Name + time_zone: + type: string + example: America/Los_Angeles + description: + type: string + maxLength: 1024 + example: Updated description + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + CustomShift: + type: object + description: An ad-hoc one-off shift outside of rotation events + required: + - id + - type + - start_time + - end_time + - assignments + properties: + id: + type: string + type: + type: string + enum: + - custom_shift + start_time: + type: string + format: date-time + example: '2025-03-15T09:00:00Z' + end_time: + type: string + format: date-time + example: '2025-03-15T17:00:00Z' + assignments: + type: array + minItems: 1 + maxItems: 1 + description: Exactly one assignment per custom shift + items: + $ref: '#/components/schemas/ShiftAssignment' + self: + type: string + format: uri + html_url: + type: string + format: uri + CreateCustomShiftsRequest: + type: object + required: + - custom_shifts + properties: + custom_shifts: + type: array + minItems: 1 + items: + type: object + required: + - type + - start_time + - end_time + - assignments + properties: + type: + type: string + enum: + - custom_shift + start_time: + type: string + format: date-time + end_time: + type: string + format: date-time + assignments: + type: array + minItems: 1 + maxItems: 1 + items: + type: object + required: + - type + - member + properties: + type: + type: string + enum: + - shift_assignment + member: + $ref: '#/components/schemas/ShiftMember' + UpdateCustomShiftRequest: + type: object + required: + - custom_shift + properties: + custom_shift: + type: object + description: | + If the shift has already started, + only `end_time` can be modified. + properties: + start_time: + type: string + format: date-time + end_time: + type: string + format: date-time + assignments: + type: array + minItems: 1 + maxItems: 1 + items: + type: object + required: + - type + - member + properties: + type: + type: string + enum: + - shift_assignment + member: + $ref: '#/components/schemas/ShiftMember' + OverrideShift: + type: object + description: | + Temporarily replaces a scheduled on-call member for a specific + time period. References either a `rotation_id` or a `custom_shift_id` + to identify the source shift being overridden (not both). + required: + - id + - type + - start_time + - end_time + - overridden_member + - overriding_member + properties: + id: + type: string + type: + type: string + enum: + - override_shift + rotation_id: + type: string + description: ID of the rotation whose shift is being overridden (mutually exclusive with custom_shift_id) + example: ABCDEFGHIJKLMNOPQRSTUVWXY2 + custom_shift_id: + type: string + description: ID of the custom shift being overridden (mutually exclusive with rotation_id) + start_time: + type: string + format: date-time + example: '2025-03-15T09:00:00Z' + end_time: + type: string + format: date-time + example: '2025-03-15T17:00:00Z' + overridden_member: + $ref: '#/components/schemas/ShiftMember' + overriding_member: + $ref: '#/components/schemas/ShiftMember' + self: + type: string + format: uri + html_url: + type: string + format: uri + CreateOverridesRequest: + type: object + required: + - overrides + properties: + overrides: + type: array + minItems: 1 + items: + type: object + required: + - type + - start_time + - end_time + - overridden_member + - overriding_member + properties: + type: + type: string + enum: + - override_shift + rotation_id: + type: string + description: Mutually exclusive with custom_shift_id + custom_shift_id: + type: string + description: Mutually exclusive with rotation_id + start_time: + type: string + format: date-time + end_time: + type: string + format: date-time + overridden_member: + $ref: '#/components/schemas/ShiftMember' + overriding_member: + $ref: '#/components/schemas/ShiftMember' + UpdateOverrideRequest: + type: object + required: + - override + properties: + override: + type: object + properties: + start_time: + type: string + format: date-time + end_time: + type: string + format: date-time + overriding_member: + $ref: '#/components/schemas/ShiftMember' + Rotation: + type: object + description: | + A rotation within a schedule. All scheduling logic (recurrence, + assignment strategy, members) is defined on the rotation's events. + required: + - id + - type + properties: + id: + type: string + example: ABCDEFGHIJKLMNOPQRSTUVWXY2 + type: + type: string + enum: + - schedule_rotation + events: + type: array + description: Events in this rotation + items: + $ref: '#/components/schemas/Event' + self: + type: string + format: uri + html_url: + type: string + format: uri + RotationResponse: + type: object + required: + - rotation + properties: + rotation: + $ref: '#/components/schemas/Rotation' + Event: + type: object + description: | + An event defines when and how users are on-call within a rotation. + It combines a recurring time window (`start_time`, `end_time`, + `recurrence`) with an assignment strategy and an effective date range + (`effective_since`, `effective_until`). + required: + - id + - type + - name + - start_time + - end_time + - effective_since + - recurrence + - assignment_strategy + properties: + id: + type: string + example: ABCDEFGHIJKLMNOPQRSTUVWXY2 + type: + type: string + enum: + - schedule_event + name: + type: string + description: Display name for this event + example: Weekly On-Call + start_time: + $ref: '#/components/schemas/ZonedDateTime' + end_time: + $ref: '#/components/schemas/ZonedDateTime' + effective_since: + type: string + format: date-time + description: When this event starts producing shifts (UTC) + example: '2025-03-03T00:00:00Z' + effective_until: + type: string + format: date-time + nullable: true + description: When this event stops producing shifts (UTC). Null means indefinite. + example: '2025-09-01T00:00:00Z' + recurrence: + type: array + description: 'RFC 5545 recurrence rules defining the repeating pattern. This must be an array containing:
- Exactly one RRULE
- Zero or more EXDATE
- Zero or more RDATE' + items: + type: string + example: + - RRULE:FREQ=WEEKLY + assignment_strategy: + $ref: '#/components/schemas/EventAssignmentStrategy' + self: + type: string + format: uri + html_url: + type: string + format: uri + CreateEventRequest: + type: object + required: + - event + properties: + event: + type: object + required: + - name + - start_time + - end_time + - effective_since + - recurrence + - assignment_strategy + properties: + name: + type: string + maxLength: 255 + start_time: + $ref: '#/components/schemas/ZonedDateTime' + end_time: + $ref: '#/components/schemas/ZonedDateTime' + effective_since: + type: string + format: date-time + description: | + When this event starts producing shifts. Values in the past are + clamped to the current time. + effective_until: + type: string + format: date-time + nullable: true + description: When this event stops producing shifts. Omit or null for indefinite. + recurrence: + type: array + items: + type: string + description: | + RFC 5545 recurrence rules. Must be an array containing exactly + one RRULE, zero or more EXDATE, and zero or more RDATE. + + **UI editor constraints:** The shift-based schedule editor can + only load an event when the RRULE satisfies all of the following: + 1. A `FREQ` parameter is present. + 2. `FREQ` is one of `WEEKLY`, `DAILY`, `MONTHLY`, or `HOURLY`. + 3. All `BYDAY` values are standard two-letter day codes + (`MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`). + + Events that violate any condition display a + "can't be edited in the UI" modal and must be managed via the API. + assignment_strategy: + $ref: '#/components/schemas/EventAssignmentStrategy' + EventResponse: + type: object + required: + - event + properties: + event: + $ref: '#/components/schemas/Event' + UpdateEventRequest: + type: object + description: | + Which fields can be updated depends on the + event's current state: + - Active events (already started): only `effective_until` can be changed + - Future events: all fields can be changed + - Past events: no fields can be changed (returns 400) + required: + - event + properties: + event: + type: object + properties: + name: + type: string + maxLength: 255 + start_time: + $ref: '#/components/schemas/ZonedDateTime' + end_time: + $ref: '#/components/schemas/ZonedDateTime' + effective_since: + type: string + format: date-time + effective_until: + type: string + format: date-time + nullable: true + recurrence: + type: array + items: + type: string + description: | + RFC 5545 recurrence rules. Must be an array containing exactly + one RRULE, zero or more EXDATE, and zero or more RDATE. + + **UI editor constraints:** The shift-based schedule editor can + only load an event when the RRULE satisfies all of the following: + 1. A `FREQ` parameter is present. + 2. `FREQ` is one of `WEEKLY`, `DAILY`, `MONTHLY`, or `HOURLY`. + 3. All `BYDAY` values are standard two-letter day codes + (`MO`, `TU`, `WE`, `TH`, `FR`, `SA`, `SU`). + + Events that violate any condition display a + "can't be edited in the UI" modal and must be managed via the API. + assignment_strategy: + $ref: '#/components/schemas/EventAssignmentStrategy' + V3ErrorResponse: + type: object + required: + - error + properties: + error: + type: object + required: + - message + - code + properties: + message: + type: string + example: Invalid request + code: + type: integer + example: 2001 + errors: + type: object + description: | + Map of field path to list of validation messages for that field. + Field paths use dot notation prefixed by the resource type + (e.g. `event.effective_since`, `rotation.events`). + additionalProperties: + type: array + items: + type: string + example: + event.effective_since: + - Date cannot be more than 12 months in the future + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + EscalationPolicyReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + FinalSchedule: + type: object + description: | + Computed on-call assignments for the requested time range. + Only present when `include[]=final_schedule` is specified and + `since`/`until` are provided. + required: + - type + - rendered_coverage_percentage + - computed_shift_assignments + properties: + type: + type: string + enum: + - final_schedule + rendered_coverage_percentage: + type: number + format: double + description: Percentage of the requested time range that has on-call coverage (0–100) + example: 100 + computed_shift_assignments: + type: array + items: + $ref: '#/components/schemas/ComputedShiftAssignment' + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: + type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned + + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned + + #### Resource deletion + - `before_value` MAY be returned + properties: + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name + value: + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: + type: object + properties: + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + required: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + ShiftAssignment: + type: object + description: Assigns a member to a shift + required: + - id + - type + - member + properties: + id: + type: string + description: Assignment ID + type: + type: string + enum: + - shift_assignment + member: + $ref: '#/components/schemas/ShiftMember' + ShiftMember: + type: object + description: A member (user) assigned to a shift or rotation slot + required: + - type + properties: + type: + type: string + enum: + - user_member + - empty_member + description: | + `user_member` — a specific user is assigned. + `empty_member` — the slot is intentionally unassigned. + user_id: + type: string + description: The ID of the user. Required when type is `user_member`. + example: PUSER123 + ZonedDateTime: + type: object + description: | + A time-of-day value with an explicit time zone. Used for event + `start_time` and `end_time` to define the recurring window of coverage + (e.g., 9 AM–5 PM every Monday in New York). + required: + - date_time + - time_zone + properties: + date_time: + type: string + format: date-time + description: The date and time + example: '2025-03-03T09:00:00Z' + time_zone: + type: string + description: IANA timezone identifier + example: America/New_York + EventAssignmentStrategy: + type: object + description: | + Defines how users are assigned on-call within an event's time window. + + - `rotating_member_assignment_strategy`: users rotate in sequence. + `shifts_per_member` controls how many consecutive shift periods each + member covers before rotating. + - `every_member_assignment_strategy`: all listed members are on-call + simultaneously for every occurrence. + required: + - type + - members + properties: + type: + type: string + enum: + - rotating_member_assignment_strategy + - every_member_assignment_strategy + shifts_per_member: + type: integer + minimum: 1 + description: | + Required for `rotating_member_assignment_strategy`. Number of + consecutive shift occurrences each member covers before the + next member takes over. + + **UI editor constraint:** When `recurrence` uses `FREQ=WEEKLY`, + `shifts_per_member` must be evenly divisible by the number of days + listed in the RRULE `BYDAY` parameter. Events that violate this + are fully functional via the API but cannot be loaded in the + web schedule editor. + example: 1 + members: + type: array + minItems: 1 + maxItems: 20 + items: + $ref: '#/components/schemas/ShiftMember' + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ComputedShiftAssignment: + type: object + description: A single computed on-call assignment within the final schedule + required: + - type + - start_time + - end_time + - member + - source + properties: + type: + type: string + enum: + - computed_shift_assignment + start_time: + type: string + format: date-time + example: '2025-01-06T09:00:00Z' + end_time: + type: string + format: date-time + example: '2025-01-13T09:00:00Z' + member: + $ref: '#/components/schemas/ShiftMember' + source: + $ref: '#/components/schemas/ShiftSource' + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + ShiftSource: + type: object + description: Where a computed shift assignment originated + required: + - type + properties: + type: + type: string + enum: + - schedule_rotation + - custom_shift + - schedule_rotation_override + - custom_shift_override + rotation_id: + type: string + description: Present for schedule_rotation and schedule_rotation_override sources + example: ABCDEFGHIJKLMNOPQRSTUVWXY2 + shift_id: + type: string + description: Present for custom_shift and custom_shift_override sources + override_id: + type: string + description: Present for schedule_rotation_override and custom_shift_override sources + responses: + BadRequest: + description: Bad Request — The request contains invalid parameters or data + content: + application/json: + schema: + $ref: '#/components/schemas/V3ErrorResponse' + example: + error: + message: Invalid Request + code: 2001 + errors: + event.effective_since: + - Date cannot be more than 12 months in the future + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: + description: | + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + schedule_v3_limit_schedules: + name: limit + in: query + description: Maximum number of schedules to return + schema: + type: integer + minimum: 1 + maximum: 1000 + default: 100 + schedule_v3_offset: + name: offset + in: query + schema: + type: integer + minimum: 0 + default: 0 + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + schedule_v3_id: + name: id + in: path + required: true + description: The ID of the schedule. + schema: + type: string + example: PSJUKNI + schedule_v3_since: + name: since + in: query + description: Start of time range (ISO 8601) + schema: + type: string + format: date-time + example: '2025-01-01T00:00:00Z' + schedule_v3_until: + name: until + in: query + description: End of time range (ISO 8601) + schema: + type: string + format: date-time + example: '2025-01-31T23:59:59Z' + schedule_v3_time_zone: + name: time_zone + in: query + description: | + IANA timezone identifier for rendering shift times. Defaults to the + schedule's configured time zone. + schema: + type: string + example: America/New_York + schedule_v3_overflow: + name: overflow + in: query + description: Include shifts that extend beyond the requested time range boundaries + schema: + type: boolean + default: false + schedule_v3_include: + name: include[] + in: query + description: | + Additional data to include in the schedule response: + - `final_schedule`: computed on-call assignments for the time range + schema: + type: array + items: + type: string + enum: + - final_schedule + style: form + explode: true + example: + - final_schedule + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + schedule_v3_since_required: + name: since + in: query + required: true + description: Start of time range (ISO 8601) + schema: + type: string + format: date-time + example: '2026-06-01T00:00:00Z' + schedule_v3_until_required: + name: until + in: query + required: true + description: End of time range (ISO 8601) + schema: + type: string + format: date-time + example: '2026-06-28T23:59:59Z' + schedule_v3_limit: + name: limit + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 25 + schedule_v3_custom_shift_id: + name: custom_shift_id + in: path + required: true + description: The ID of the custom shift. + schema: + type: string + example: AGO4624VGZ44ZJDFTW5NSZ2CG4 + schedule_v3_override_id: + name: override_id + in: path + required: true + description: The ID of the override. + schema: + type: string + example: AGO4642RBB5RBGG65Q6I5X34VI + schedule_v3_rotation_id: + name: rotation_id + in: path + required: true + description: The ID of the rotation. + schema: + type: string + example: AGO462IDT5ZMNFBVSROUDT6B4M + schedule_v3_event_id: + name: event_id + in: path + required: true + description: The ID of the event. + schema: + type: string + example: AGO462IDT55XVGN74FDAQUUNHY + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + AuditRecordScheduleResponse: + summary: Response Example + value: + records: + - id: PD_ASSIGN_TEAM_TO_SCHEDULE + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + references: + - added: + - id: PD_TEAM123 + summary: Devops + type: team_reference + self: https://api.pagerduty.com/teams/PD_TEAM123 + html_url: https://mydomain.pagerduty.com/teams/PD_TEAM123 + name: teams + resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + execution_context: + request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad + execution_time: '2021-01-05T16:25:41.324Z' + method: + type: browser + root_resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + - id: PD_CREATE_SCHEDULE + action: create + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: name + value: DevOps Schedule + - name: description + value: Our DevOps Team Schedule + - name: time_zone + value: America/New_York + resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + execution_context: + request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad + execution_time: '2021-01-05T16:25:41.315Z' + method: + type: browser + root_resource: + id: PD_SCHEDULE_ID + summary: DevOps Schedule + type: schedule_reference + self: https://api.pagerduty.com/schedules/PD_SCHEDULE_ID + html_url: https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID + limit: 10 + next_cursor: null + x-stackQL-resources: + schedules: + id: pagerduty.schedules_v3.schedules + name: schedules + title: Schedules + methods: + list: + operation: + $ref: '#/paths/~1v3~1schedules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schedules + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 1000 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.schedule + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schedules/methods/get' + - $ref: '#/components/x-stackQL-resources/schedules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/schedules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/schedules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/schedules/methods/delete' + replace: [] + audit_records: + id: pagerduty.schedules_v3.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + custom_shifts: + id: pagerduty.schedules_v3.custom_shifts + name: custom_shifts + title: Custom Shifts + methods: + list: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1custom_shifts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.custom_shifts + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1custom_shifts/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1custom_shifts~1{custom_shift_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.custom_shift + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1custom_shifts~1{custom_shift_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1custom_shifts~1{custom_shift_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/custom_shifts/methods/get' + - $ref: '#/components/x-stackQL-resources/custom_shifts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/custom_shifts/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/custom_shifts/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/custom_shifts/methods/delete' + replace: [] + overrides: + id: pagerduty.schedules_v3.overrides + name: overrides + title: Overrides + methods: + list: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1overrides/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.overrides + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1overrides/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1overrides~1{override_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.override + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1overrides~1{override_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1overrides~1{override_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/overrides/methods/get' + - $ref: '#/components/x-stackQL-resources/overrides/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/overrides/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/overrides/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/overrides/methods/delete' + replace: [] + rotations: + id: pagerduty.schedules_v3.rotations + name: rotations + title: Rotations + methods: + list: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rotations + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rotation + delete: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rotations/methods/get' + - $ref: '#/components/x-stackQL-resources/rotations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/rotations/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/rotations/methods/delete' + replace: [] + events: + id: pagerduty.schedules_v3.events + name: events + title: Events + methods: + list: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.events + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}~1events/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}~1events~1{event_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.event + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}~1events~1{event_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v3~1schedules~1{id}~1rotations~1{rotation_id}~1events~1{event_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/events/methods/get' + - $ref: '#/components/x-stackQL-resources/events/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/events/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/events/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/events/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/service_dependencies.yaml b/providers/src/pagerduty/v00.00.00000/services/service_dependencies.yaml index 90eab596..62849d61 100644 --- a/providers/src/pagerduty/v00.00.00000/services/service_dependencies.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/service_dependencies.yaml @@ -1,2536 +1,8 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. -info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com - version: 2.0.0 - title: PagerDuty API - service_dependencies - description: Service_Dependencies -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - technical_services: - id: pagerduty.service_dependencies.technical_services - name: technical_services - title: Technical Services - methods: - create_service_dependency: - operation: - $ref: '#/paths/~1service_dependencies~1associate/post' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_service_dependency: - operation: - $ref: '#/paths/~1service_dependencies~1disassociate/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_technical_service_service_dependencies: - operation: - $ref: '#/paths/~1service_dependencies~1technical_services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.relationships - _get_technical_service_service_dependencies: - operation: - $ref: '#/paths/~1service_dependencies~1technical_services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/technical_services/methods/get_technical_service_service_dependencies' - insert: - - $ref: '#/components/x-stackQL-resources/technical_services/methods/create_service_dependency' - update: [] - delete: [] - business_services: - id: pagerduty.service_dependencies.business_services - name: business_services - title: Business Services - methods: - get_business_service_service_dependencies: - operation: - $ref: '#/paths/~1service_dependencies~1business_services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.relationships - _get_business_service_service_dependencies: - operation: - $ref: '#/paths/~1service_dependencies~1business_services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/business_services/methods/get_business_service_service_dependencies' - insert: [] - update: [] - delete: [] +info: + title: PagerDuty API - Service Dependencies + description: Dependencies between business services and technical services. + version: 2.0.0 paths: /service_dependencies/associate: post: @@ -2546,12 +18,10 @@ paths: A service can have a maximum of 2,000 dependencies with a depth limit of 100. If the limit is reached, the API will respond with an error. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + parameters: [] requestBody: content: application/json: @@ -2660,7 +130,8 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/service_dependencies/business_services/{id}': + description: Associate dependencies of services. + /service_dependencies/business_services/{id}: get: x-pd-requires-scope: services.read tags: @@ -2672,12 +143,10 @@ paths: Business Services model capabilities that span multiple technical services and that may be owned by several different teams. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.read` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '200': @@ -2742,6 +211,7 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' + description: Get the dependencies of a given Business Service. /service_dependencies/disassociate: post: x-pd-requires-scope: services.write @@ -2754,12 +224,10 @@ paths: Business services model capabilities that span multiple technical services and that may be owned by several different teams. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#business-services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#business-services) Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + parameters: [] requestBody: content: application/json: @@ -2868,7 +336,8 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/service_dependencies/technical_services/{id}': + description: Disassociate dependencies of services. + /service_dependencies/technical_services/{id}: get: x-pd-requires-scope: services.read tags: @@ -2879,12 +348,10 @@ paths: Get all immediate dependencies of any technical service. Technical services are also known as `services`. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) Scoped OAuth requires: `services.read` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' responses: '200': @@ -2949,3 +416,229 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' + description: Get the dependencies of a given technical service. +components: + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + dependencies: + id: pagerduty.service_dependencies.dependencies + name: dependencies + title: Dependencies + methods: + associate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1service_dependencies~1associate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + disassociate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1service_dependencies~1disassociate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + business_services: + id: pagerduty.service_dependencies.business_services + name: business_services + title: Business Services + methods: + list: + operation: + $ref: '#/paths/~1service_dependencies~1business_services~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.relationships + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/business_services/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + technical_services: + id: pagerduty.service_dependencies.technical_services + name: technical_services + title: Technical Services + methods: + list: + operation: + $ref: '#/paths/~1service_dependencies~1technical_services~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.relationships + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/technical_services/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/services.yaml b/providers/src/pagerduty/v00.00.00000/services/services.yaml index 1a84f5be..9751be49 100644 --- a/providers/src/pagerduty/v00.00.00000/services/services.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/services.yaml @@ -1,5085 +1,4683 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Services + description: Technical services, their integrations, event rules, custom field values, feature enablements and audit records. version: 2.0.0 - title: PagerDuty API - services - description: | - A Service may represent an application, component, or team you wish to open incidents against. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Service: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of object being created. - default: service - enum: - - service - name: - type: string - description: The name of the service. - description: - type: string - description: The user-provided description of the service. - auto_resolve_timeout: - type: integer - description: 'Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature.' - default: 14400 - acknowledgement_timeout: - type: integer - description: 'Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature.' - default: 1800 - created_at: - type: string - format: date-time - description: The date/time when this service was created - readOnly: true - status: - type: string - description: | - The current state of the Service. Valid statuses are: +paths: + /services: + get: + tags: + - Services + operationId: listServices + x-pd-requires-scope: services.read + description: | + List existing Services. + A service may represent an application, component, or team you wish to open incidents against. - - `active`: The service is enabled and has no open incidents. This is the only status a service can be created with. - - `warning`: The service is enabled and has one or more acknowledged incidents. - - `critical`: The service is enabled and has one or more triggered incidents. - - `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode. - - `disabled`: The service is disabled and will not have any new triggered incidents. - enum: - - active - - warning - - critical - - maintenance - - disabled - default: active - last_incident_timestamp: - type: string - format: date-time - description: The date/time when the most recent incident was created for this service. - readOnly: true - escalation_policy: - $ref: '#/components/schemas/EscalationPolicyReference' - response_play: - deprecated: true - description: Response plays associated with this service. - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - response_play_reference - teams: - type: array - description: The set of teams associated with this service. - items: - $ref: '#/components/schemas/TeamReference' - readOnly: true - integrations: - type: array - description: 'An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references.' - items: - $ref: '#/components/schemas/IntegrationReference' - readOnly: true - incident_urgency_rule: - $ref: '#/components/schemas/IncidentUrgencyRule' - support_hours: - $ref: '#/components/schemas/SupportHours' - scheduled_actions: - type: array - description: An array containing scheduled actions for the service. - items: - $ref: '#/components/schemas/ScheduledAction' - addons: - type: array - description: The array of Add-ons associated with this service. - items: - $ref: '#/components/schemas/AddonReference' - readOnly: true - alert_creation: - type: string - description: | - Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging. - * "create_incidents" - The service will create one incident and zero alerts for each incoming event. - * "create_alerts_and_incidents" - The service will create one incident and one associated alert for each incoming event. - enum: - - create_incidents - - create_alerts_and_incidents - alert_grouping_parameters: - $ref: '#/components/schemas/AlertGroupingParameters' - alert_grouping: - type: string - deprecated: true - description: | - Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options: - * null - No alert grouping on the service. Each alert will create a separate incident; - * "time" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans; - * "intelligent" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans - enum: - - time - - intelligent - alert_grouping_timeout: - type: integer - deprecated: true - description: | - The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`. - auto_pause_notifications_parameters: - $ref: '#/components/schemas/AutoPauseNotificationsParameters' - required: - - type - - escalation_policy - example: - id: PSI2I2O - summary: string - type: service - self: string - html_url: string - name: My Web App - description: My cool web application that does things. - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - status: active - escalation_policy: - id: PWIP6CQ - type: escalation_policy_reference - response_play: - id: 1677af3c-44cf-50f4-6c68-818f7f514802 - type: response_play_reference - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - alert_creation: create_alerts_and_incidents - alert_grouping_parameters: - type: time - config: - timeout: 2 - auto_pause_notifications_parameters: - enabled: true - timeout: 300 - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - EscalationPolicyReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - escalation_policy_reference - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - IntegrationReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - aws_cloudwatch_inbound_integration_reference - - cloudkick_inbound_integration_reference - - event_transformer_api_inbound_integration_reference - - generic_email_inbound_integration_reference - - generic_events_api_inbound_integration_reference - - keynote_inbound_integration_reference - - nagios_inbound_integration_reference - - pingdom_inbound_integration_reference - - sql_monitor_inbound_integration_reference - - events_api_v2_inbound_integration_reference - - inbound_integration_reference - IncidentUrgencyRule: - allOf: - - $ref: '#/components/schemas/IncidentUrgencyType' - - type: object - properties: - during_support_hours: - $ref: '#/components/schemas/IncidentUrgencyType' - outside_support_hours: - $ref: '#/components/schemas/IncidentUrgencyType' - SupportHours: - type: object - properties: - type: - type: string - description: The type of support hours - default: fixed_time_per_day - enum: - - fixed_time_per_day - time_zone: - type: string - format: activesupport-time-zone - description: The time zone for the support hours - days_of_week: - type: array - readOnly: true - items: - type: integer - readOnly: true - description: 'The days of the week (1 through 7, for Monday through Sunday)' - start_time: - type: string - format: time - description: The support hours' starting time of day (date portion is ignored) - end_time: - type: string - format: time - description: The support hours' ending time of day (date portion is ignored) - ScheduledAction: - type: object - properties: - type: - type: string - description: The type of schedule action. Must be set to urgency_change. - enum: - - urgency_change - at: - type: object - description: Represents when scheduled action will occur. - properties: - type: - type: string - description: Must be set to named_time. - enum: - - named_time - name: - type: string - description: Designates either the start or the end of support hours. - enum: - - support_hours_start - - support_hours_end - required: - - type - - name - to_urgency: - type: string - description: Urgency level. Must be set to high. - enum: - - high - required: - - type - - at - - to_urgency - AddonReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - src: - type: string - format: url - description: The URL source of the Addon - name: - type: string - description: The user entered name of the Addon. - type: - type: string - enum: - - full_page_addon_reference - - incident_show_addon_reference - AlertGroupingParameters: - type: object - description: | - Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. To turn grouping off set the type to null. - properties: - type: - type: string - enum: - - time - - intelligent - - content_based - - null - config: - anyOf: - - type: object - description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. - properties: - time_window: - type: integer - minimum: 300 - maximum: 3600 - description: 'The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600.' - recommended_time_window: - readOnly: true - type: integer - description: 'In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service''s average Alert inter-arrival time. We encourage customer''s to use this value, please set `time_window` to 0 to use the `recommended_time_window`.' - - $ref: '#/components/schemas/TimeBasedAlertGroupingConfiguration' - - $ref: '#/components/schemas/ContentBasedAlertGroupingConfiguration' - AutoPauseNotificationsParameters: - title: AutoPauseNotificationsParameters - type: object - description: 'Defines how alerts on this service are automatically suspended for a period of time before triggering, when identified as likely being transient. Note that automatically pausing notifications is only available on certain plans.' - properties: - enabled: - type: boolean - default: false - description: Indicates whether alerts should be automatically suspended when identified as transient - timeout: - type: integer - enum: - - 120 - - 180 - - 300 - - 600 - - 900 - description: Indicates in seconds how long alerts should be suspended before triggering - example: - enabled: true - timeout: 300 - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - IncidentUrgencyType: - type: object - properties: - type: - type: string - description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' - default: constant - enum: - - constant - - use_support_hours - urgency: - type: string - description: 'The incidents'' urgency, if type is constant.' - default: high - enum: - - low - - high - - severity_based - TimeBasedAlertGroupingConfiguration: - type: object - description: The configuration for Time Based Alert Grouping - properties: - timeout: - type: integer - description: 'The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0.' - ContentBasedAlertGroupingConfiguration: - type: object - description: The configuration for Content Based Alert Grouping - properties: - aggregate: - type: string - description: 'Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields.' - enum: - - 'all, any' - fields: - type: array - description: 'The fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match' - AuditRecordResponseSchema: - allOf: - - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/AuditRecord' - response_metadata: - nullable: true - anyOf: - - $ref: '#/components/schemas/AuditMetadata' - required: - - records - - $ref: '#/components/schemas/CursorPagination' - AuditRecord: - type: object - readOnly: true - description: An Audit Trail record - properties: - id: - type: string - self: - type: string - nullable: true - description: Record URL. - execution_time: - type: string - format: date-time - description: 'The date/time the action executed, in ISO8601 format and millisecond precision.' - execution_context: - type: object - description: Action execution context - properties: - request_id: - type: string - nullable: true - description: Request Id - remote_address: - type: string - nullable: true - description: remote address - nullable: true - actors: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - method: - type: object - description: The method information - properties: - description: - type: string - nullable: true - truncated_token: - description: Truncated token containing the last 4 chars of the token's actual value. - type: string - nullable: true - example: 3xyz - type: - $ref: '#/components/parameters/audit_method_type/schema' - required: - - type - root_resource: - $ref: '#/components/schemas/Reference' - action: - type: string - example: create - details: - type: object - nullable: true - description: | - Additional details to provide further information about the action or - the resource that has been audited. - properties: - resource: - $ref: '#/components/schemas/Reference' - fields: - description: | - A set of fields that have been affected. - The fields that have not been affected MAY be returned. - type: array - nullable: true - items: - type: object - description: | - Information about the affected field. - When available, field's before and after values are returned: - - #### Resource creation - - `value` MAY be returned - - #### Resource update - - `value` MAY be returned - - `before_value` MAY be returned + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) - #### Resource deletion - - `before_value` MAY be returned - properties: - name: - type: string - description: Name of the resource field - example: name - description: - type: string - nullable: true - description: Human readable description of the resource field - example: First and Last name - value: - type: string - nullable: true - description: new or updated value of the field - example: Jonathan - before_value: - type: string - nullable: true - description: previous or deleted value of the field - example: John - required: - - name - references: - description: A set of references that have been affected. - type: array - nullable: true - items: + Scoped OAuth requires: `services.read` + summary: List services + parameters: + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/time_zone' + - $ref: '#/components/parameters/sort_by_service' + - $ref: '#/components/parameters/include_services' + - $ref: '#/components/parameters/service_name' + responses: + '200': + description: A paginated array of services. + content: + application/json: + schema: type: object properties: - name: - type: string - description: Name of the reference field - example: team_members - description: - type: string - nullable: true - description: Human readable description of the references field - example: First and Last name - added: - type: array + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. nullable: true - items: - $ref: '#/components/schemas/Reference' - removed: + readOnly: true + services: type: array - nullable: true items: - $ref: '#/components/schemas/Reference' - required: - - name - required: - - resource - required: - - id - - execution_time - - method - - root_resource - - action - AuditMetadata: - type: object - properties: - messages: - type: array - nullable: true - items: - type: string - example: Message about the result - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - Integration: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - enum: - - aws_cloudwatch_inbound_integration - - cloudkick_inbound_integration - - event_transformer_api_inbound_integration - - generic_email_inbound_integration - - generic_events_api_inbound_integration - - keynote_inbound_integration - - nagios_inbound_integration - - pingdom_inbound_integration - - sql_monitor_inbound_integration - - events_api_v2_inbound_integration - name: - type: string - description: The name of this integration. - service: - $ref: '#/components/schemas/ServiceReference' - created_at: - type: string - format: date-time - description: The date/time when this integration was created. - readOnly: true - vendor: - $ref: '#/components/schemas/VendorReference' - integration_email: - type: string - description: Specify for generic_email_inbound_integration. Must be set to an email address @your-subdomain.pagerduty.com - email_incident_creation: - type: string - description: Specify for generic_email_inbound_integration - enum: - - on_new_email - - on_new_email_subject - - only_if_no_open_incidents - - use_rules - email_filter_mode: - type: string - description: Specify for generic_email_inbound_integration. May override email_incident_creation - enum: - - all-email - - or-rules-email - - and-rules-email - email_parsers: - type: array - description: Specify for generic_email_inbound_integration. - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/EmailParser' - email_parsing_fallback: - type: string - description: Specify for generic_email_inbound_integration. - enum: - - open_new_incident - - discard - email_filters: - type: array - description: Specify for generic_email_inbound_integration. - uniqueItems: true - minItems: 1 - items: - type: object - properties: - subject_mode: - type: string - enum: - - match - - no-match - - always - subject_regex: - type: string - description: Specify if subject_mode is set to match or no-match - body_mode: - type: string - enum: - - match - - no-match - - always - body_regex: - type: string - description: Specify if body_mode is set to match or no-match - from_email_mode: - type: string - enum: - - match - - no-match - - always - from_email_regex: - type: string - description: Specify if from_email_mode is set to match or no-match + $ref: '#/components/schemas/Service' required: - - subject_mode - - body_mode - - from_email_mode - required: - - type - - name - ServiceReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - service_reference - VendorReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - vendor_reference - EmailParser: - type: object - properties: - action: - type: string - enum: - - trigger - - resolve - match_predicate: - $ref: '#/components/schemas/MatchPredicate' - value_extractors: - type: array - description: Additional values that will be pulled in to the Incident object. Exactly one value extractor must have a `value_name` of `incident_key`. - uniqueItems: true - minItems: 1 - items: - type: object - properties: - type: - type: string - enum: - - entire - - regex - - between - part: - type: string - enum: - - body - - subject - - from_addresses - value_name: - type: string - minLength: 1 - description: The field name to set in the Incident object. Exactly one must use the `value_name` of `incident_key` - regex: - type: string - starts_after: - type: string - ends_with: - type: string - required: - - type - - part - - value_name - required: - - action - - match_predicate - MatchPredicate: - type: object - properties: - type: - type: string - enum: - - all - - any - - not - - contains - - exactly - - regex - matcher: - type: string - description: 'Required if the type is `contains`, `exactly` or `regex`.' - minLength: 1 - part: - type: string - description: 'The email field that will attempt to use the matcher expression. Required if the type is `contains`, `exactly` or `regex`.' - enum: - - body - - subject - - from_addresses - children: - type: array - description: 'Additional matchers to be run. Must be not empty if the type is `all`, `any`, or `not`.' - items: - $ref: '#/components/schemas/MatchPredicate' - required: - - type - - part - - children - ServiceEventRule: - allOf: - - $ref: '#/components/schemas/EventRule/allOf/0' - - type: object - properties: - position: - type: integer - description: 'Position/index of the Event Rule on the Service. Starting from position 0 (the first rule), rules are evaluated one-by-one until a matching Event Rule is found or the end of the list is reached.' - actions: - $ref: '#/components/schemas/EventRuleActionsCommon' - EventRule: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - description: ID of the Event Rule. - self: - type: string - format: url - description: the API show URL at which the object is accessible. - readOnly: true - disabled: - type: boolean - description: Indicates whether the Event Rule is disabled and would therefore not be evaluated. - conditions: + - services + examples: + response: + summary: Response Example + value: + services: + - id: PIJ90N7 + summary: My Application Service + type: service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + name: My Application Service + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + created_at: '2015-11-06T11:12:51-05:00' + status: active + alert_creation: create_alerts_and_incidents + alert_grouping_parameters: + type: intelligent + integrations: + - id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + post: + x-pd-requires-scope: services.write + tags: + - Services + operationId: createService + description: | + Create a new service. + + If `status` is included in the request, it must have a value of `active` when creating a new service. If a different status is required, make a second request to update the service. + + A service may represent an application, component, or team you wish to open incidents against. + + There is a limit of 25,000 services per account. If the limit is reached, the API will respond with an error. There is also a limit of 100,000 open Incidents per Service. If the limit is reached and `auto_resolve_timeout` is disabled (set to 0 or null), the `auto_resolve_timeout` property will automatically be set to 84600 (1 day). + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) + + Scoped OAuth requires: `services.write` + summary: Create a service + parameters: [] + requestBody: + content: + application/json: + schema: type: object - description: 'Conditions evaluated to check if an event matches this Event Rule. Is always empty for the catch_all rule, though.' properties: - operator: - type: string - description: Operator to combine sub-conditions. - enum: - - and - - or - subconditions: - type: array - description: Array of sub-conditions. - items: - type: object - properties: - operator: - type: string - description: The type of operator to apply. - enum: - - exists - - nexists - - equals - - nequals - - contains - - ncontains - - matches - - nmatches - parameters: - type: object - properties: - path: - type: string - description: 'Path to a field in an event, in dot-notation. For Event Rules on a serivce, this will have to be a PD-CEF field.' - value: - type: string - description: Value to apply to the operator. - options: - type: object - description: Options to configure the operator. - required: - - value - - path - required: - - operator - - parameters + service: + $ref: '#/components/schemas/Service' required: - - operator - - subconditions - time_frame: - description: Time-based conditions for limiting when the rule is active. - type: object - properties: - active_between: - type: object - required: - - start_time - - end_time - description: A fixed window of time during which the rule is active. - properties: - start_time: - type: integer - description: The start time in milliseconds. - end_time: - type: integer - description: End time in milliseconds. - scheduled_weekly: - type: object - required: - - start_time - - duration - - timezone - - weekdays - description: 'A reccuring window of time based on the day of the week, during which the rule is active.' - properties: - start_time: - type: integer - description: The amount of milliseconds into the day at which the window starts. - duration: - type: integer - description: The duration of the window in milliseconds. - timezone: - type: string - description: The timezone. - weekdays: - type: array - description: 'An array of day values. Ex [1, 3, 5] is Monday, Wednesday, Friday.' - items: - type: integer - variables: - type: array - description: '[Early Access] Populate variables from event payloads and use those variables in other event actions.' - items: + - service + examples: + request: + summary: Request Example + value: + service: + type: service + name: My Web App + description: My cool web application that does things. + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + alert_grouping_parameters: + type: time + config: + timeout: 2 + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + description: The service to be created + responses: + '201': + description: The service that was created + content: + application/json: + schema: type: object properties: - type: - type: string - description: The type of operation to populate the variable. - enum: - - regex - name: - type: string - description: The name of the variable. - parameters: - type: object - description: The parameters for performing the operation to populate the - properties: - value: - type: string - description: 'The value for the operation. For example, an RE2 regular expression for regex-type variables.' - path: - type: string - description: 'Path to a field in an event, in dot-notation. For Event Rules on a Service, this will have to be a PD-CEF field.' - required: - - value - - path + service: + $ref: '#/components/schemas/Service' required: - - type - - name - - parameters - - type: object - properties: - position: - type: integer - description: 'Position/index of the Event Rule in the Ruleset. Starting from position 0 (the first rule), rules are evaluated one-by-one until a matching rule is found.' - catch_all: - type: boolean - readOnly: true - description: Indicates whether the Event Rule is the last Event Rule of the Ruleset that serves as a catch-all. It has limited functionality compared to other rules and always matches. - actions: - description: 'When an event matches this rule, the actions that will be taken to change the resulting alert and incident.' - allOf: - - $ref: '#/components/schemas/EventRuleActionsCommon' - - type: object - properties: - route: - description: Set the service ID of the target service for the resulting alert. You can find the service you want to route to by calling the services endpoint. - type: object - required: - - value - nullable: true - properties: - value: - type: string - description: The target service's ID. - EventRuleActionsCommon: - type: object - description: 'When an event matches this Event Rule, the actions that will be taken to change the resulting Alert and Incident.' - properties: - annotate: - description: Set a note on the resulting incident. - type: object - nullable: true - required: - - value - properties: - value: - type: string - description: The content of the note. - event_action: - description: Set whether the resulting alert status is trigger or resolve. - type: object - required: - - value - nullable: true - properties: - value: - type: string - enum: - - trigger - - resolve - extractions: - type: array - description: Dynamically extract values to set and modify new and existing PD-CEF fields. - items: - oneOf: - - type: object - required: - - target - - source - - regex - properties: - target: - type: string - description: The PD-CEF field that will be set with the value from the regex. - source: - type: string - description: The path to the event field where the regex will be applied to extract a value. - regex: - type: string - description: 'A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used.' - - type: object - required: - - target - - template - properties: - target: - type: string - description: The PD-CEF field that will be set with the value from the regex. - template: - type: string - description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. - example: 'Error number {{count}} on host {{host}}' - priority: - description: Set the priority ID for the resulting incident. You can find the priority you want by calling the priorities endpoint. - type: object - required: - - value - nullable: true - properties: - value: - type: string - description: The priority ID. - severity: - description: Set the severity of the resulting alert. - type: object - required: - - value - nullable: true - properties: - value: - type: string - enum: - - info - - warning - - error - - critical - suppress: - description: Set whether the resulting alert is suppressed. Can optionally be used with a threshold where resulting alerts will be suppressed until the threshold is met in a window of time. If using a threshold the rule must also set a route action. - type: object - required: - - value - properties: - value: - type: boolean - threshold_value: - type: integer - description: The number of occurences needed during the window of time to trigger the theshold. - threshold_time_unit: - type: string - description: The time unit for the window of time. - enum: - - seconds - - minutes - - hours - threshold_time_amount: - type: integer - description: The amount of time units for the window of time. - suspend: - description: 'Set the length of time to suspend the resulting alert before triggering. Rules with a suspend action must also set a route action, and cannot have a suppress with threshold action' - type: object - required: - - value - nullable: true - properties: - value: - type: integer - description: The amount of time to suspend the alert in seconds. - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + - service + examples: + response: + summary: Response Example + value: + service: + id: PIJ90N7 + summary: My Application Service + type: service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + name: My Application Service + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + created_at: '2015-11-06T11:12:51-05:00' + status: active + alert_creation: create_alerts_and_incidents + integrations: + - id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + description: List and create services. + /services/{id}: + get: + tags: + - Services + operationId: getService + x-pd-requires-scope: services.read + description: | + Get details about an existing service. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + A service may represent an application, component, or team you wish to open incidents against. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header + Scoped OAuth requires: `services.read` + summary: Get a service + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_services_id' + responses: + '200': + description: The service requested. + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/Service' + required: + - service + examples: + response: + summary: Response Example + value: + service: + id: PIJ90N7 + type: service + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + name: My Application Service + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + created_at: '2015-11-06T11:12:51-05:00' + status: active + alert_creation: create_alerts_and_incidents + integrations: + - id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + delete: + x-pd-requires-scope: services.write + tags: + - Services + operationId: deleteService description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header + Delete an existing service. + + Once the service is deleted, it will not be accessible from the web UI and new incidents won't be able to be created for this service. + + A service may represent an application, component, or team you wish to open incidents against. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) + + Scoped OAuth requires: `services.write` + summary: Delete a service + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The service was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + put: + x-pd-requires-scope: services.write + tags: + - Services description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Update an existing service. + + A service may represent an application, component, or team you wish to open incidents against. + + There is a limit of 100,000 open Incidents per Service. If the limit is reached and you disable `auto_resolve_timeout` (set to 0 or null), the API will respond with an error. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) + + Scoped OAuth requires: `services.write` + summary: Update a service + parameters: + - $ref: '#/components/parameters/id' + operationId: updateService + requestBody: + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/Service' + required: + - service + examples: + request: + summary: Request Example + value: + service: + type: service + name: My Web App + description: My cool web application that does things. + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + alert_grouping_parameters: + type: time + config: + timeout: 2 + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + description: The service to be updated. + responses: + '200': + description: The service that was updated. + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/Service' + required: + - service + examples: + response: + summary: Response Example + value: + service: + id: PIJ90N7 + type: service + summary: My Application Service + self: https://api.pagerduty.com/services/PIJ90N7 + html_url: https://subdomain.pagerduty.com/service-directory/PIJ90N7 + name: My Application Service + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + created_at: '2015-11-06T11:12:51-05:00' + status: active + alert_creation: create_alerts_and_incidents + alert_grouping_parameters: + type: time + config: + timeout: 2 + integrations: + - id: PQ12345 + type: generic_email_inbound_integration_reference + summary: Email Integration + self: https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + html_url: https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345 + escalation_policy: + id: PT20YPA + type: escalation_policy_reference + summary: Another Escalation Policy + self: https://api.pagerduty.com/escalation_policies/PT20YPA + html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: Manage a service. + /services/{id}/audit/records: + get: + x-pd-requires-scope: audit_records.read + tags: + - Services + operationId: listServiceAuditRecords + summary: List audit records for a service description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + The returned records are sorted by the `execution_time` from newest to oldest. + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotAllowed: - description: 'The request was received and recognized by the server, but its HTTP method was rejected for the requested resource.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - services: - id: pagerduty.services.services - name: services - title: Services - methods: - list_services: - operation: - $ref: '#/paths/~1services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.services - _list_services: - operation: - $ref: '#/paths/~1services/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_service: - operation: - $ref: '#/paths/~1services/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_service: - operation: - $ref: '#/paths/~1services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.service - _get_service: - operation: - $ref: '#/paths/~1services~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_service: - operation: - $ref: '#/paths/~1services~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_service: - operation: - $ref: '#/paths/~1services~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/services/methods/get_service' - - $ref: '#/components/x-stackQL-resources/services/methods/list_services' - insert: - - $ref: '#/components/x-stackQL-resources/services/methods/create_service' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/services/methods/delete_service' - audit_records: - id: pagerduty.services.audit_records - name: audit_records - title: Audit Records - methods: - list_service_audit_records: - operation: - $ref: '#/paths/~1services~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.records - _list_service_audit_records: - operation: - $ref: '#/paths/~1services~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/audit_records/methods/list_service_audit_records' - insert: [] - update: [] - delete: [] - integrations: - id: pagerduty.services.integrations - name: integrations - title: Integrations - methods: - create_service_integration: - operation: - $ref: '#/paths/~1services~1{id}~1integrations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - update_service_integration: - operation: - $ref: '#/paths/~1services~1{id}~1integrations~1{integration_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - get_service_integration: - operation: - $ref: '#/paths/~1services~1{id}~1integrations~1{integration_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.integration - _get_service_integration: - operation: - $ref: '#/paths/~1services~1{id}~1integrations~1{integration_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/integrations/methods/get_service_integration' - insert: - - $ref: '#/components/x-stackQL-resources/integrations/methods/create_service_integration' - update: [] - delete: [] - rules: - id: pagerduty.services.rules - name: rules - title: Rules - methods: - list_service_event_rules: - operation: - $ref: '#/paths/~1services~1{id}~1rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rules - _list_service_event_rules: - operation: - $ref: '#/paths/~1services~1{id}~1rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_service_event_rule: - operation: - $ref: '#/paths/~1services~1{id}~1rules/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_service_event_rule: - operation: - $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rule - _get_service_event_rule: - operation: - $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_service_event_rule: - operation: - $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_service_event_rule: - operation: - $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/rules/methods/get_service_event_rule' - - $ref: '#/components/x-stackQL-resources/rules/methods/list_service_event_rules' - insert: - - $ref: '#/components/x-stackQL-resources/rules/methods/create_service_event_rule' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/rules/methods/delete_service_event_rule' -paths: - /services: + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/schedule_id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordServiceResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records for a service. + /services/{id}/integrations: + post: + x-pd-requires-scope: services.write + tags: + - Services + operationId: createServiceIntegration + summary: Create a new integration + description: | + Create a new integration belonging to a Service. + + A service may represent an application, component, or team you wish to open incidents against. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) + + Scoped OAuth requires: `services.write` + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/Integration' + required: + - integration + examples: + email_integration: + summary: Request Example for Email Integration + value: + integration: + type: generic_email_inbound_integration + name: Email + service: + id: PQL78HM + type: service_reference + integration_email: my-email-based-integration@subdomain.pagerduty.com + vendor: + type: vendor_reference + id: PZD94QK + email_integration_with_filters: + summary: Email Integration With Filters + value: + integration: + type: generic_email_inbound_integration + name: Email with Filters + integration_email: your-service@subdomain.pd-staging.com + email_incident_creation: on_new_email_subject + email_filter_mode: or-rules-email + email_parsers: + - action: trigger + match_predicate: + type: any + matcher: this thing + part: body + children: [] + value_extractors: + - type: entire + part: body + value_name: incident_key + email_parsing_fallback: discard + email_filters: + - subject_mode: match + subject_regex: alert + body_mode: match + body_regex: alert + from_email_mode: match + from_email_regex: alert + events_v2_integration: + summary: Request Example for Events v2 Integration + value: + integration: + type: events_api_v2_inbound_integration + name: Events V2 + service: + id: PQL78HM + type: service_reference + description: The integration to be created + responses: + '201': + description: The integration that was created. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/Integration' + required: + - integration + examples: + response: + summary: Response Example + value: + integration: + id: PE1U9CH + type: generic_email_inbound_integration + summary: Email + self: https://api.pagerduty.com/services/PQL78HM/integrations/PE1U9CH + html_url: https://subdomain.pagerduty.com/services/PQL78HM/integrations/PE1U9CH + name: Email + service: + id: PQL78HM + type: service_reference + summary: My Email-Based Integration + self: https://api.pagerduty.com/services/PQL78HM + html_url: https://subdomain.pagerduty.com/service-directory/PQL78HM + created_at: '2015-10-14T13:33:02-07:00' + integration_email: my-email-based-integration@subdomain.pagerduty.com + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Create integrations belonging to a service. + /services/{id}/integrations/{integration_id}: + put: + x-pd-requires-scope: services.write + tags: + - Services + operationId: updateServiceIntegration + summary: Update an existing integration + description: | + Update an integration belonging to a Service. + + A service may represent an application, component, or team you wish to open incidents against. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) + + Scoped OAuth requires: `services.write` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/integration_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/Integration' + required: + - integration + examples: + request: + summary: Request Example + value: + integration: + type: generic_email_inbound_integration + name: Email + service: + id: PQL78HM + type: service_reference + summary: My Email-Based Integration + self: https://api.pagerduty.com/services/PQL78HM + html_url: https://subdomain.pagerduty.com/service-directory/PQL78HM + integration_email: my-email-based-integration@subdomain.pagerduty.com + vendor: + type: vendor_reference + id: PZD94QK + description: The integration to be updated + responses: + '200': + description: The integration that was updated. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/Integration' + required: + - integration + examples: + response: + summary: Response Example + value: + integration: + id: PE1U9CH + type: generic_email_inbound_integration + summary: Email + self: https://api.pagerduty.com/services/PQL78HM/integrations/PE1U9CH + html_url: https://subdomain.pagerduty.com/services/PQL78HM/integrations/PE1U9CH + name: Email + service: + id: PQL78HM + type: service_reference + summary: My Email-Based Integration + self: https://api.pagerduty.com/services/PQL78HM + html_url: https://subdomain.pagerduty.com/service-directory/PQL78HM + created_at: '2015-10-14T13:33:02-07:00' + integration_email: my-email-based-integration@subdomain.pagerduty.com + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + get: + x-pd-requires-scope: services.read + tags: + - Services + operationId: getServiceIntegration + summary: View an integration + description: | + Get details about an integration belonging to a service. + + A service may represent an application, component, or team you wish to open incidents against. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#services) + + Scoped OAuth requires: `services.read` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/integration_id' + - $ref: '#/components/parameters/include_services_integrations' + responses: + '200': + description: The integration that was requested. + content: + application/json: + schema: + type: object + properties: + integration: + $ref: '#/components/schemas/Integration' + required: + - integration + examples: + response: + summary: Response Example + value: + integration: + id: PE1U9CH + type: generic_email_inbound_integration + summary: Email + self: https://api.pagerduty.com/services/PQL78HM/integrations/PE1U9CH + html_url: https://subdomain.pagerduty.com/services/PQL78HM/integrations/PE1U9CH + name: Email + service: + id: PQL78HM + type: service_reference + summary: My Email-Based Integration + self: https://api.pagerduty.com/services/PQL78HM + html_url: https://subdomain.pagerduty.com/service-directory/PQL78HM + created_at: '2015-10-14T13:33:02-07:00' + vendor: + id: P8JX75F + type: vendor_reference + summary: Autotask + self: https://api.pagerduty.com/vendors/P8JX75F + integration_email: my-email-based-integration@subdomain.pagerduty.com + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: View or update integrations belonging to a service. + /services/{id}/rules: + get: + x-pd-requires-scope: services.read + tags: + - Services + operationId: listServiceEventRules + description: | + List Event Rules on a Service. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Scoped OAuth requires: `services.read` + summary: List Service's Event Rules + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_ruleset_migrated_metadata' + responses: + '200': + description: A paginated array of Event Rule objects. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + migrated_at: + type: string + format: date-time + description: The date/time the service's Event Rules were converted to a Service Orchestration. This property is only included if the `migrated_metadata` query parameter is provided. + readOnly: true + migrated_by: + type: object + description: Reference to the user that converted the service's Event Rules to a Service Orchestration. This property is only included if the `migrated_metadata` query parameter is provided. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + migrated_status: + type: string + description: The status indicating whether the service's Event Rules were successfully converted to a Service Orchestration. This property is only included if the `migrated_metadata` query parameter is provided. + enum: + - completed + readOnly: true + migrated_to: + type: object + description: Reference to the Service Orchestration that the service's Event Rules were converted to. This property is only included if the `migrated_metadata` query parameter is provided. + properties: + id: + type: string + readOnly: true + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + readOnly: true + self: + type: string + format: url + description: The API show URL at which the object is accessible + readOnly: true + readOnly: true + migrated_via: + type: string + description: Indicates whether the conversion was performed via the PagerDuty API or PagerDuty website. This property is only included if the `migrated_metadata` query parameter is provided. + enum: + - API + - UI + readOnly: true + rules: + type: array + description: The paginated list of Event Rules of the Service. + items: + $ref: '#/components/schemas/ServiceEventRule' + examples: + response: + summary: Response Example + value: + rules: + - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + position: 0 + disabled: false + self: https://api.pagerduty.com/service-directory/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + conditions: + operator: and + subconditions: + - operator: contains + parameters: + value: mysql + path: class + time_frame: + active_between: + start_time: 1577880000000 + end_time: 1580558400000 + actions: + severity: + value: info + extractions: + - target: dedup_key + template: '{{error_level}} error on host {{host}}' + variables: + - name: error_level + type: regex + parameters: + value: .*error level is (\w+)\. + path: summary + - name: host + type: regex + parameters: + value: (.*)-USW2 + path: source + limit: 25 + migrated_at: '2023-06-14T13:51:31Z' + migrated_by: + id: P8B9WR8 + self: https://api.pagerduty.com/users/P8B9WR8 + type: user_reference + migrated_status: completed + migrated_to: + id: PI2KBWI + self: https://api.pagerduty.com/event_orchestrations/services/PI2KBWI + type: event_orchestration_reference + migrated_via: API + offset: 0 + more: false + total: null + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + post: + x-pd-requires-scope: services.write + tags: + - Services + operationId: createServiceEventRule + description: | + Create a new Event Rule on a Service. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Scoped OAuth requires: `services.write` + summary: Create an Event Rule on a Service + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/ServiceEventRule' + required: + - rule + examples: + request: + summary: Request Example + value: + rule: + id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + position: 0 + disabled: false + conditions: + operator: and + subconditions: + - operator: contains + parameters: + value: mysql + path: class + time_frame: + active_between: + start_time: 1577880000000 + end_time: 1580558400000 + actions: + annotate: + value: This incident was modified by an Event Rule + priority: + value: PCMUB6F + severity: + value: warning + extractions: + - target: dedup_key + source: custom_details.error_summary + regex: Host (.*) is experiencing errors + responses: + '201': + description: The Event Rule that was created. + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/ServiceEventRule' + examples: + response: + summary: Response Example + value: + ruleset: + id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + position: 0 + disabled: false + self: https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + conditions: + operator: and + subconditions: + - operator: contains + parameters: + value: mysql + path: class + time_frame: + active_between: + start_time: 1577880000000 + end_time: 1580558400000 + actions: + annotate: + value: This incident was modified by an Event Rule + priority: + value: PCMUB6F + severity: + value: warning + extractions: + - target: dedup_key + source: custom_details.error_summary + regex: Host (.*) is experiencing errors + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '409': + $ref: '#/components/responses/Conflict' + /services/{id}/rules/convert: + post: + x-pd-requires-scope: services.write + tags: + - Services + operationId: convertServiceEventRulesToEventOrchestration + summary: Convert a Service's Event Rules into Event Orchestration Rules + description: | + Convert this Service's Event Rules into functionally equivalent Event Orchestration Rules. + + Sending a request to this API endpoint has several effects: + + 1. Automatically creates Event Orchestration Rules for this Service that will behave identically as this Service's currently configured Event Rules. + 2. Makes all existing Event Rules for this Service read-only. All future updates need to be made via the newly created Event Orchestration rules. + + Sending a request to this API endpoint will **not** change how future events will be processed. If past events for this Service have been evaluated via Event Rules then new events sent to this Service will also continue to be evaluated via the (now read-only) Event Rules. To change this Service so that new events start being evaluated via the newly created Event Orchestration Rules use the [Update the Service Orchestration active status for a Service API](https://developer.pagerduty.com/api-reference/855659be83d9e-update-the-service-orchestration-active-status-for-a-service). + + > ### End-of-life + > Event Rules will end-of-life soon. We highly recommend that you use this API to [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Scoped OAuth requires: `services.write` + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The Event Orchestration Rules were successfully created + content: + application/json: + schema: + type: object + properties: + convert_status: + type: string + readOnly: true + description: Did PagerDuty successfully create equivalent Event Orchestration rules + converted_to: + type: string + format: url + readOnly: true + description: the API URL at which the newly created Event Orchestration rules are accessible + examples: + response: + summary: Response Example + value: + convert_status: completed + converted_to: https://api.pagerduty.com/event_orchestrations/service/PC2D9ML + '400': + description: Could not create equivalent Event Orchestration Rules based on the Service's current Event Rules + content: + application/json: + schema: + type: object + readOnly: true + properties: + error: + type: object + readOnly: true + properties: + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: object + readOnly: true + description: Convertion error Details + properties: + rule_id: + type: string + readOnly: true + description: The ID of the Service Event Rule that couldn't be successfully converted. + position: + type: integer + readOnly: true + description: The position of the Service Event Rule that couldn't be successfully converted. + messages: + type: array + readOnly: true + description: Human friendly explanations of why this Event Rule couldn't be converted into an equivalent Event Orchestration Rule. + items: + type: string + readOnly: true + examples: + response: + summary: Response Example + value: + error: + message: Unable to convert given Ruleset to an Event Orchestration + errors: + - rule_id: 693cdcd1-ecfd-4064-a834-5cb28a74c060 + position: 0 + messages: + - Unable to convert a rule that has a `time_frame` with both `active_between` and `scheduled_weekly` settings. + - rule_id: 9f6896c0-b435-401f-b25f-62e145d9ccf4 + position: 5 + messages: + - Unable to convert `actions.extractions`; Should have a most 25 extractions but this rule has 42 extractions. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + description: Convert a Service's Event Rules into Event Orchestration Rules + /services/{id}/rules/{rule_id}: + get: + x-pd-requires-scope: services.read + tags: + - Services + operationId: getServiceEventRule + description: | + Get an Event Rule from a Service. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Scoped OAuth requires: `services.read` + summary: Get an Event Rule from a Service + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/rule_id' + responses: + '200': + description: The Event Rule object. + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/ServiceEventRule' + examples: + response: + summary: Response Example + value: + rule: + id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + position: 0 + disabled: false + self: https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + conditions: + operator: and + subconditions: + - operator: contains + parameters: + value: mysql + path: class + time_frame: + active_between: + start_time: 1577880000000 + end_time: 1580558400000 + actions: + annotate: + value: This incident was modified by an Event Rule + priority: + value: PCMUB6F + severity: + value: warning + extractions: + - target: dedup_key + source: custom_details.error_summary + regex: Host (.*) is experiencing errors + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + put: + x-pd-requires-scope: services.write + tags: + - Services + operationId: updateServiceEventRule + summary: Update an Event Rule on a Service + description: | + Update an Event Rule on a Service. Note that the endpoint supports partial updates, so any number of the writable fields can be provided. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Scoped OAuth requires: `services.write` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/rule_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/ServiceEventRule' + rule_id: + description: The id of the Event Rule to update on the Service. + type: string + required: + - rule_id + examples: + suppress_action: + summary: 'Example: Enable suppress action' + value: + rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 + rule: + actions: + suppress: + value: true + disable_rule: + summary: 'Example: Disable rule' + value: + rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 + rule: + disabled: true + responses: + '200': + description: The Event Rule that was updated. + content: + application/json: + schema: + type: object + properties: + rule: + $ref: '#/components/schemas/ServiceEventRule' + examples: + response: + summary: Response Example + value: + rule: + id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + position: 0 + disabled: false + self: https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b + conditions: + operator: and + subconditions: + - operator: contains + parameters: + value: mysql + path: class + time_frame: + active_between: + start_time: 1577880000000 + end_time: 1580558400000 + actions: + annotate: + value: This incident was modified by an Event Rule + priority: + value: PCMUB6F + severity: + value: warning + extractions: + - target: dedup_key + source: custom_details.error_summary + regex: Host (.*) is experiencing errors + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + delete: + x-pd-requires-scope: services.write + tags: + - Services + operationId: deleteServiceEventRule + description: | + Delete an Event Rule from a Service. + + > ### End-of-life + > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + + Scoped OAuth requires: `services.write` + summary: Delete an Event Rule from a Service + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/rule_id' + responses: + '204': + description: The Event Rule was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '405': + $ref: '#/components/responses/NotAllowed' + '409': + $ref: '#/components/responses/Conflict' + /services/{id}/custom_fields/values: get: tags: - Services - operationId: listServices x-pd-requires-scope: services.read + operationId: getServiceCustomFieldValues description: | - List existing Services. - - A service may represent an application, component, or team you wish to open incidents against. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) + Get custom field values for a service. Scoped OAuth requires: `services.read` - summary: List services + summary: Get Custom Field Values parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/team_ids' - - $ref: '#/components/parameters/time_zone' - - $ref: '#/components/parameters/sort_by_service' - - $ref: '#/components/parameters/include_services' + - $ref: '#/components/parameters/id' responses: '200': - description: A paginated array of services. + description: The list of custom field values. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - services: - type: array - items: - $ref: '#/components/schemas/Service' - required: - - services + type: object + properties: + custom_fields: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldValueReadModel' examples: - response: + single_value_example: summary: Response Example value: - services: - - id: PIJ90N7 - summary: My Application Service - type: service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - name: My Application Service - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - created_at: '2015-11-06T11:12:51-05:00' - status: active - alert_creation: create_alerts_and_incidents - alert_grouping_parameters: - type: intelligent - integrations: - - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - auto_pause_notifications_parameters: - enabled: true - timeout: 300 - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' + custom_fields: + - data_type: string + description: environment where service instance runs + display_name: Runtime Environment + field_type: single_value_fixed + id: PT4KHEE + name: environment + type: field_value + value: production + multi_value_example: + summary: Response Example + value: + custom_fields: + - data_type: string + description: environment where service instance runs + display_name: Runtime Environment + field_type: multi_value_fixed + id: PT4KHEE + name: environment + type: field_value + value: + - production + - staging '403': $ref: '#/components/responses/Forbidden' - post: - x-pd-requires-scope: services.write + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: tags: - Services - operationId: createService + x-pd-requires-scope: services.write + operationId: updateServiceCustomFieldValues description: | - Create a new service. - - If `status` is included in the request, it must have a value of `active` when creating a new service. If a different status is required, make a second request to update the service. - - A service may represent an application, component, or team you wish to open incidents against. - - There is a limit of 25,000 services per account. If the limit is reached, the API will respond with an error. There is also a limit of 100,000 open Incidents per Service. If the limit is reached and `auto_resolve_timeout` is disabled (set to 0 or null), the `auto_resolve_timeout` property will automatically be set to 84600 (1 day). - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) + Set custom field values for a service. Scoped OAuth requires: `services.write` - summary: Create a service + summary: Update Custom Field Values parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: type: object properties: - service: - $ref: '#/components/schemas/Service' + custom_fields: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldValueUpdateModel' required: - - service + - custom_fields examples: - request: + example_with_custom_field_id: summary: Request Example value: - service: - type: service - name: My Web App - description: My cool web application that does things. - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - status: active - escalation_policy: - id: PWIP6CQ - type: escalation_policy_reference - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - alert_creation: create_alerts_and_incidents - alert_grouping_parameters: - type: time - config: - timeout: 2 - auto_pause_notifications_parameters: - enabled: true - timeout: 300 - description: The service to be created + custom_fields: + - id: PT4KHEE + value: production + example_with_custom_field_name: + summary: Request Example + value: + custom_fields: + - name: environment + value: production + example_with_multiple_value_field: + summary: Request Example + value: + custom_fields: + - id: PT4KHEE + value: + - production + - staging responses: '201': - description: The service that was created + description: The custom field values were updated. content: application/json: schema: type: object properties: - service: - $ref: '#/components/schemas/Service' + custom_fields: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldValueReadModel' required: - - service + - custom_fields examples: - response: + single_value_example: summary: Response Example value: - service: - id: PIJ90N7 - summary: My Application Service - type: service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - name: My Application Service - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - created_at: '2015-11-06T11:12:51-05:00' - status: active - alert_creation: create_alerts_and_incidents - integrations: - - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - auto_pause_notifications_parameters: - enabled: true - timeout: 300 + custom_fields: + - data_type: string + description: environment where service instance runs + display_name: Runtime Environment + field_type: single_value_fixed + id: PT4KHEE + name: environment + type: field_value + value: production + multi_value_example: + summary: Response Example + value: + custom_fields: + - data_type: string + description: environment where service instance runs + display_name: Runtime Environment + field_type: multi_value_fixed + id: PT4KHEE + name: environment + type: field_value + value: + - production + - staging '400': $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' - '/services/{id}': + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Retrieve and update service custom fields. + /services/{id}/enablements: get: tags: - Services - operationId: getService - x-pd-requires-scope: services.read + x-pd-requires-scope: services.read + operationId: listServiceFeatureEnablements + summary: Get Enablements for a Service + description: | + List all feature enablement settings for a service. Currently, only the `aiops` enablement is supported. + + For any account with the AIOps product addon, every service will have AIOps features enabled by default. + + **Warning conditions**: + - If the account is not entitled to use AIOps features, a warning will be returned alongside the enablement data. + + Scoped OAuth requires: `services.read` + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The list of feature enablement settings for the service. + content: + application/json: + schema: + type: object + properties: + enablements: + type: array + description: Array of feature enablement settings. + items: + $ref: '#/components/schemas/FeatureEnablement' + examples: + success_response: + $ref: '#/components/examples/FeatureEnablementListResponseSuccess' + response_with_warning: + $ref: '#/components/examples/FeatureEnablementListResponseWarningForService' + default_response: + $ref: '#/components/examples/FeatureEnablementListResponseDefault' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Get Enablements for a Service. + /services/{id}/enablements/{feature_name}: + put: + tags: + - Services + x-pd-requires-scope: services.write + operationId: updateServiceFeatureEnablement + summary: Update an Enablement for a Service description: | - Get details about an existing service. - - A service may represent an application, component, or team you wish to open incidents against. + Update the feature enablement setting for a specific product addon on a service. This setting controls enabling or disabling the set of features contained within the addon. + Currently, only `aiops` is supported as a valid feature enablement. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) + **Warning conditions**: + - If the account is not entitled to use AIOps features, the setting will be updated, but a warning will be returned. - Scoped OAuth requires: `services.read` - summary: Get a service + Scoped OAuth requires: `services.write` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_services_id' + - $ref: '#/components/parameters/enablement_feature_name' + requestBody: + description: The feature enablement setting to apply. + content: + application/json: + schema: + type: object + properties: + enablement: + $ref: '#/components/schemas/FeatureEnablement' + required: + - enablement + examples: + enable_aiops: + $ref: '#/components/examples/FeatureEnablementPutRequestEnable' + disable_aiops: + $ref: '#/components/examples/FeatureEnablementPutRequestDisable' responses: '200': - description: The service requested. + description: The feature enablement setting was updated. content: application/json: schema: type: object properties: - service: - $ref: '#/components/schemas/Service' - required: - - service - examples: - response: - summary: Response Example + enablement: + $ref: '#/components/schemas/FeatureEnablement' + examples: + success_response: + $ref: '#/components/examples/FeatureEnablementPutResponseSuccess' + response_with_warning: + $ref: '#/components/examples/FeatureEnablementPutResponseWarningForService' + '400': + $ref: '#/components/responses/ArgumentError' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Update an Enablement for a Service. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Service: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the service. + description: + type: string + description: The user-provided description of the service. + auto_resolve_timeout: + type: integer + description: Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 14400 + acknowledgement_timeout: + type: integer + description: Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature. + default: 1800 + created_at: + type: string + format: date-time + description: The date/time when this service was created + readOnly: true + status: + type: string + description: | + The current state of the Service. Valid statuses are: + + + - `active`: The service is enabled and has no open incidents. This is the only status a service can be created with. + - `warning`: The service is enabled and has one or more acknowledged incidents. + - `critical`: The service is enabled and has one or more triggered incidents. + - `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode. + - `disabled`: The service is disabled and will not have any new triggered incidents. + enum: + - active + - warning + - critical + - maintenance + - disabled + default: active + last_incident_timestamp: + type: string + format: date-time + description: The date/time when the most recent incident was created for this service. + readOnly: true + escalation_policy: + $ref: '#/components/schemas/EscalationPolicyReference' + response_play: + deprecated: true + description: Response plays associated with this service. + teams: + type: array + description: The set of teams associated with this service. + items: + $ref: '#/components/schemas/TeamReference' + readOnly: true + integrations: + type: array + description: An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references. + items: + $ref: '#/components/schemas/IntegrationReference' + readOnly: true + incident_urgency_rule: + $ref: '#/components/schemas/IncidentUrgencyRule' + support_hours: + $ref: '#/components/schemas/SupportHours' + scheduled_actions: + type: array + description: An array containing scheduled actions for the service. + items: + $ref: '#/components/schemas/ScheduledAction' + addons: + type: array + description: The array of Add-ons associated with this service. + items: + $ref: '#/components/schemas/AddonReference' + readOnly: true + alert_creation: + type: string + deprecated: true + description: | + Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging. + * "create_incidents" - The service will create one incident and zero alerts for each incoming event. + * "create_alerts_and_incidents" - The service will create one incident and one associated alert for each incoming event. + This attribute has been deprecated as all services will be migrated to use alerts and incidents. Afterward, the incident only service setting will no longer be available. For details, please refer to the knowledge base: https://support.pagerduty.com/docs/alerts#enable-and-disable-alerts-on-a-service. + enum: + - create_incidents + - create_alerts_and_incidents + default: create_alerts_and_incidents + alert_grouping_parameters: + description: Alert Grouping Parameters + deprecated: true + oneOf: + - $ref: '#/components/schemas/AlertGroupingParameters' + - type: object + title: Alert Grouping Settings Reference + deprecated: true + description: When a service uses alert grouping configuration that is unsupported via the services api, and can only be configured via the [Alert Grouping Settings API](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting). The reference object includes the new location details for the service's Alert Grouping Setting. When an `alert_grouping_settings_reference` is included in a create or update request it will be ignored and no changes are applied to the service. + properties: + id: + type: string + readOnly: true + description: id of the related alert grouping setting + type: + readOnly: true + type: string + description: type of reference eg. alert_grouping_setting_reference + summary: + readOnly: true + type: string + description: an explanation of this reference + self: + readOnly: true + type: string + description: link to api endpoint for this setting + html_url: + readOnly: true + type: string + description: link to the ui page to edit the setting + alert_grouping: + type: string + deprecated: true + description: | + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options: + * null - No alert grouping on the service. Each alert will create a separate incident; + * "time" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans; + * "intelligent" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + enum: + - time + - intelligent + alert_grouping_timeout: + type: integer + deprecated: true + description: | + The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`. + + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + auto_pause_notifications_parameters: + $ref: '#/components/schemas/AutoPauseNotificationsParameters' + required: + - type + - escalation_policy + example: + id: PSI2I2O + summary: string + type: service + self: string + html_url: string + name: My Web App + description: My cool web application that does things. + auto_resolve_timeout: 14400 + acknowledgement_timeout: 600 + status: active + escalation_policy: + id: PWIP6CQ + type: escalation_policy_reference + incident_urgency_rule: + type: use_support_hours + during_support_hours: + type: constant + urgency: high + outside_support_hours: + type: constant + urgency: low + support_hours: + type: fixed_time_per_day + time_zone: America/Lima + start_time: '09:00:00' + end_time: '17:00:00' + days_of_week: + - 1 + - 2 + - 3 + - 4 + - 5 + scheduled_actions: + - type: urgency_change + at: + type: named_time + name: support_hours_start + to_urgency: high + alert_creation: create_alerts_and_incidents + auto_pause_notifications_parameters: + enabled: true + timeout: 300 + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + Integration: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of this integration. + service: + $ref: '#/components/schemas/ServiceReference' + created_at: + type: string + format: date-time + description: The date/time when this integration was created. + readOnly: true + vendor: + $ref: '#/components/schemas/VendorReference' + integration_email: + type: string + description: Specify for generic_email_inbound_integration. Must be set to an email address @your-subdomain.pagerduty.com + email_incident_creation: + type: string + description: Specify for generic_email_inbound_integration + enum: + - on_new_email + - on_new_email_subject + - only_if_no_open_incidents + - use_rules + email_filter_mode: + type: string + description: Specify for generic_email_inbound_integration. May override email_incident_creation + enum: + - all-email + - or-rules-email + - and-rules-email + email_parsers: + type: array + description: Specify for generic_email_inbound_integration. + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/EmailParser' + email_parsing_fallback: + type: string + description: Specify for generic_email_inbound_integration. + enum: + - open_new_incident + - discard + email_filters: + type: array + description: Specify for generic_email_inbound_integration. + uniqueItems: true + minItems: 1 + items: + type: object + properties: + subject_mode: + type: string + enum: + - match + - no-match + - always + subject_regex: + type: string + description: Specify if subject_mode is set to match or no-match + body_mode: + type: string + enum: + - match + - no-match + - always + body_regex: + type: string + description: Specify if body_mode is set to match or no-match + from_email_mode: + type: string + enum: + - match + - no-match + - always + from_email_regex: + type: string + description: Specify if from_email_mode is set to match or no-match + required: + - subject_mode + - body_mode + - from_email_mode + required: + - type + - name + ServiceEventRule: + type: object + properties: + id: + type: string + readOnly: true + description: ID of the Event Rule. + self: + type: string + format: url + description: the API show URL at which the object is accessible. + readOnly: true + disabled: + type: boolean + description: Indicates whether the Event Rule is disabled and would therefore not be evaluated. + conditions: + type: object + description: Conditions evaluated to check if an event matches this Event Rule. Is always empty for the catch_all rule, though. + properties: + operator: + type: string + description: Operator to combine sub-conditions. + enum: + - and + - or + subconditions: + type: array + description: Array of sub-conditions. + items: + type: object + properties: + operator: + type: string + description: The type of operator to apply. + enum: + - exists + - nexists + - equals + - nequals + - contains + - ncontains + - matches + - nmatches + parameters: + type: object + properties: + path: + type: string + description: Path to a field in an event, in dot-notation. For Event Rules on a serivce, this will have to be a PD-CEF field. + value: + type: string + description: Value to apply to the operator. + options: + type: string + description: Options to configure the operator. (opaque JSON object) + required: + - value + - path + required: + - operator + - parameters + required: + - operator + - subconditions + time_frame: + description: Time-based conditions for limiting when the rule is active. + type: object + properties: + active_between: + type: object + required: + - start_time + - end_time + description: A fixed window of time during which the rule is active. + properties: + start_time: + type: integer + description: The start time in milliseconds. + end_time: + type: integer + description: End time in milliseconds. + scheduled_weekly: + type: object + required: + - start_time + - duration + - timezone + - weekdays + description: A reccuring window of time based on the day of the week, during which the rule is active. + properties: + start_time: + type: integer + description: The amount of milliseconds into the day at which the window starts. + duration: + type: integer + description: The duration of the window in milliseconds. + timezone: + type: string + description: The timezone. + weekdays: + type: array + description: An array of day values. Ex [1, 3, 5] is Monday, Wednesday, Friday. + items: + type: integer + variables: + type: array + description: '[Early Access] Populate variables from event payloads and use those variables in other event actions.' + items: + type: object + properties: + type: + type: string + description: The type of operation to populate the variable. + enum: + - regex + name: + type: string + description: The name of the variable. + parameters: + type: object + description: The parameters for performing the operation to populate the + properties: value: - service: - id: PIJ90N7 - type: service - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - name: My Application Service - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - created_at: '2015-11-06T11:12:51-05:00' - status: active - alert_creation: create_alerts_and_incidents - integrations: - - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - auto_pause_notifications_parameters: - enabled: true - timeout: 300 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - delete: - x-pd-requires-scope: services.write - tags: - - Services - operationId: deleteService + type: string + description: The value for the operation. For example, an RE2 regular expression for regex-type variables. + path: + type: string + description: Path to a field in an event, in dot-notation. For Event Rules on a Service, this will have to be a PD-CEF field. + required: + - value + - path + required: + - type + - name + - parameters + position: + type: integer + description: Position/index of the Event Rule on the Service. Starting from position 0 (the first rule), rules are evaluated one-by-one until a matching Event Rule is found or the end of the list is reached. + actions: + $ref: '#/components/schemas/EventRuleActionsCommon' + ServiceCustomFieldsFieldValueReadModel: + type: object + properties: + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + id: + type: string + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + description: Determines the type of the reference. + enum: + - field_value + value: + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + ServiceCustomFieldsFieldValueUpdateModel: + title: Custom Field Value description: | - Delete an existing service. - - Once the service is deleted, it will not be accessible from the web UI and new incidents won't be able to be created for this service. - - A service may represent an application, component, or team you wish to open incidents against. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) + During updates: + - Omitted fields remain unchanged + - Null values reset fields + - Provided values update fields - Scoped OAuth requires: `services.write` - summary: Delete a service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The service was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - put: - x-pd-requires-scope: services.write - tags: - - Services + Note: All updates succeed or none are applied. + type: object + properties: + id: + type: string + description: The ID of the resource. + value: + oneOf: + - type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + - type: object + title: Datetime + properties: + value: + type: string + nullable: true + format: date-time + - type: object + title: Float + properties: + value: + type: number + nullable: true + - type: object + title: Integer + properties: + value: + type: integer + nullable: true + - type: object + title: String + properties: + value: + oneOf: + - type: string + maxLength: 200 + nullable: true + - type: array + items: + type: string + maxLength: 200 + maxItems: 10 + uniqueItems: true + nullable: true + - type: object + title: Url + properties: + value: + type: string + format: uri + maxLength: 200 + nullable: true + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + required: + - id + - value + - name + FeatureEnablement: + type: object + properties: + feature: + readOnly: true + type: string + description: The name of the product addon whose set of features will be enabled or disabled. + example: aiops + enabled: + type: boolean + description: A boolean value indicating whether the specified product addon is enabled or disabled. + updated_at: + readOnly: true + type: string + format: date-time + description: The time the feature enablement was last updated. + warnings: + readOnly: true + type: array + description: An array of warnings related to this feature enablement. Only present if warning conditions are met. + items: + type: object + properties: + message: + type: string + description: The warning message. + required: + - enabled + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + EscalationPolicyReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IntegrationReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentUrgencyRule: + type: object + properties: + type: + type: string + description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' + default: constant + enum: + - constant + - use_support_hours + urgency: + type: string + description: The incidents' urgency, if type is constant. + default: high + enum: + - low + - high + - severity_based + during_support_hours: + $ref: '#/components/schemas/IncidentUrgencyType' + outside_support_hours: + $ref: '#/components/schemas/IncidentUrgencyType' + SupportHours: + type: object + properties: + type: + type: string + description: The type of support hours + default: fixed_time_per_day + enum: + - fixed_time_per_day + time_zone: + type: string + format: activesupport-time-zone + description: The time zone for the support hours + days_of_week: + type: array + readOnly: true + items: + type: integer + readOnly: true + description: The days of the week (1 through 7, for Monday through Sunday) + start_time: + type: string + format: time + description: The support hours' starting time of day (date portion is ignored) + end_time: + type: string + format: time + description: The support hours' ending time of day (date portion is ignored) + ScheduledAction: + type: object + properties: + type: + type: string + description: The type of schedule action. Must be set to urgency_change. + enum: + - urgency_change + at: + type: object + description: Represents when scheduled action will occur. + properties: + type: + type: string + description: Must be set to named_time. + enum: + - named_time + name: + type: string + description: Designates either the start or the end of support hours. + enum: + - support_hours_start + - support_hours_end + required: + - type + - name + to_urgency: + type: string + description: Urgency level. Must be set to high. + enum: + - high + required: + - type + - at + - to_urgency + AddonReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + src: + type: string + format: url + description: The URL source of the Addon + name: + type: string + description: The user entered name of the Addon. + required: + - type + - id + description: (opaque JSON object) + AlertGroupingParameters: + type: object + title: Alert Grouping Parameters + deprecated: true description: | - Update an existing service. - - A service may represent an application, component, or team you wish to open incidents against. - - There is a limit of 100,000 open Incidents per Service. If the limit is reached and you disable `auto_resolve_timeout` (set to 0 or null), the API will respond with an error. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) - - Scoped OAuth requires: `services.write` - summary: Update a service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - operationId: updateService - requestBody: - content: - application/json: - schema: - type: object - properties: - service: - $ref: '#/components/schemas/Service' - required: - - service - examples: - request: - summary: Request Example - value: - service: - type: service - name: My Web App - description: My cool web application that does things. - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - status: active - escalation_policy: - id: PWIP6CQ - type: escalation_policy_reference - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - alert_creation: create_alerts_and_incidents - alert_grouping_parameters: - type: time - config: - timeout: 2 - auto_pause_notifications_parameters: - enabled: true - timeout: 300 - description: The service to be updated. - responses: - '200': - description: The service that was updated. - content: - application/json: - schema: + Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. To turn grouping off set the type to null. + This attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged. + properties: + type: + type: string + nullable: true + enum: + - time + - intelligent + - content_based + - null + config: + type: object + title: Intelligent Alert Grouping + description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. + properties: + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + timeout: + type: integer + minimum: 1 + maximum: 1440 + description: The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + AutoPauseNotificationsParameters: + title: AutoPauseNotificationsParameters + type: object + description: Defines how alerts on this service are automatically suspended for a period of time before triggering, when identified as likely being transient. Note that automatically pausing notifications is only available on certain plans. + properties: + enabled: + type: boolean + default: false + description: Indicates whether alerts should be automatically suspended when identified as transient + timeout: + type: integer + enum: + - 0 + - 120 + - 180 + - 300 + - 600 + - 900 + description: Indicates in seconds how long alerts should be suspended before triggering. To automatically select the recommended timeout for a service, set this value to `0`. + recommended_timeout: + type: integer + enum: + - 120 + - 180 + - 300 + - 600 + - 900 + description: The recommended timeout setting for this service based on prior alert patterns. + example: + enabled: true + timeout: 300 + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: + type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned + + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned + + #### Resource deletion + - `before_value` MAY be returned + properties: + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name + value: + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: + type: object + properties: + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + required: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + ServiceReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + VendorReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + EmailParser: + type: object + properties: + action: + type: string + enum: + - trigger + - resolve + match_predicate: + $ref: '#/components/schemas/MatchPredicate' + value_extractors: + type: array + description: Additional values that will be pulled in to the Incident object. Exactly one value extractor must have a `value_name` of `incident_key`. + uniqueItems: true + minItems: 1 + items: + type: object + properties: + type: + type: string + enum: + - entire + - regex + - between + part: + type: string + enum: + - body + - subject + - from_addresses + value_name: + type: string + minLength: 1 + description: The field name to set in the Incident object. Exactly one must use the `value_name` of `incident_key` + regex: + type: string + starts_after: + type: string + ends_with: + type: string + required: + - type + - part + - value_name + required: + - action + - match_predicate + EventRule: + type: object + properties: + id: + type: string + readOnly: true + description: ID of the Event Rule. + self: + type: string + format: url + description: the API show URL at which the object is accessible. + readOnly: true + disabled: + type: boolean + description: Indicates whether the Event Rule is disabled and would therefore not be evaluated. + conditions: + type: object + description: Conditions evaluated to check if an event matches this Event Rule. Is always empty for the catch_all rule, though. + properties: + operator: + type: string + description: Operator to combine sub-conditions. + enum: + - and + - or + subconditions: + type: array + description: Array of sub-conditions. + items: type: object properties: - service: - $ref: '#/components/schemas/Service' + operator: + type: string + description: The type of operator to apply. + enum: + - exists + - nexists + - equals + - nequals + - contains + - ncontains + - matches + - nmatches + parameters: + type: object + properties: + path: + type: string + description: Path to a field in an event, in dot-notation. For Event Rules on a serivce, this will have to be a PD-CEF field. + value: + type: string + description: Value to apply to the operator. + options: + type: string + description: Options to configure the operator. (opaque JSON object) + required: + - value + - path required: - - service - examples: - response: - summary: Response Example - value: - service: - id: PIJ90N7 - type: service - summary: My Application Service - self: 'https://api.pagerduty.com/services/PIJ90N7' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7' - name: My Application Service - auto_resolve_timeout: 14400 - acknowledgement_timeout: 600 - created_at: '2015-11-06T11:12:51-05:00' - status: active - alert_creation: create_alerts_and_incidents - alert_grouping_parameters: - type: time - config: - timeout: 2 - integrations: - - id: PQ12345 - type: generic_email_inbound_integration_reference - summary: Email Integration - self: 'https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - html_url: 'https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345' - escalation_policy: - id: PT20YPA - type: escalation_policy_reference - summary: Another Escalation Policy - self: 'https://api.pagerduty.com/escalation_policies/PT20YPA' - html_url: 'https://subdomain.pagerduty.com/escalation_policies/PT20YPA' - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - incident_urgency_rule: - type: use_support_hours - during_support_hours: - type: constant - urgency: high - outside_support_hours: - type: constant - urgency: low - support_hours: - type: fixed_time_per_day - time_zone: America/Lima - start_time: '09:00:00' - end_time: '17:00:00' - days_of_week: - - 1 - - 2 - - 3 - - 4 - - 5 - scheduled_actions: - - type: urgency_change - at: - type: named_time - name: support_hours_start - to_urgency: high - auto_pause_notifications_parameters: - enabled: true - timeout: 300 - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '/services/{id}/audit/records': - get: - x-pd-requires-scope: audit_records.read - tags: - - Services - operationId: listServiceAuditRecords - summary: List audit records for a service - description: | - The returned records are sorted by the `execution_time` from newest to oldest. - - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - - For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). - - Scoped OAuth requires: `audit_records.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/audit_since' - - $ref: '#/components/parameters/audit_until' - responses: - '200': - description: Records matching the query criteria. - content: - application/json: - schema: - $ref: '#/components/schemas/AuditRecordResponseSchema' - examples: - response: - $ref: '#/components/examples/AuditRecordServiceResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/services/{id}/integrations': - post: - x-pd-requires-scope: services.write - tags: - - Services - operationId: createServiceIntegration - summary: Create a new integration - description: | - Create a new integration belonging to a Service. - - A service may represent an application, component, or team you wish to open incidents against. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) - - Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: + - operator + - parameters + required: + - operator + - subconditions + time_frame: + description: Time-based conditions for limiting when the rule is active. + type: object + properties: + active_between: type: object + required: + - start_time + - end_time + description: A fixed window of time during which the rule is active. properties: - integration: - $ref: '#/components/schemas/Integration' + start_time: + type: integer + description: The start time in milliseconds. + end_time: + type: integer + description: End time in milliseconds. + scheduled_weekly: + type: object required: - - integration - examples: - email_integration: - summary: Request Example for Email Integration + - start_time + - duration + - timezone + - weekdays + description: A reccuring window of time based on the day of the week, during which the rule is active. + properties: + start_time: + type: integer + description: The amount of milliseconds into the day at which the window starts. + duration: + type: integer + description: The duration of the window in milliseconds. + timezone: + type: string + description: The timezone. + weekdays: + type: array + description: An array of day values. Ex [1, 3, 5] is Monday, Wednesday, Friday. + items: + type: integer + variables: + type: array + description: '[Early Access] Populate variables from event payloads and use those variables in other event actions.' + items: + type: object + properties: + type: + type: string + description: The type of operation to populate the variable. + enum: + - regex + name: + type: string + description: The name of the variable. + parameters: + type: object + description: The parameters for performing the operation to populate the + properties: + value: + type: string + description: The value for the operation. For example, an RE2 regular expression for regex-type variables. + path: + type: string + description: Path to a field in an event, in dot-notation. For Event Rules on a Service, this will have to be a PD-CEF field. + required: + - value + - path + required: + - type + - name + - parameters + position: + type: integer + description: Position/index of the Event Rule in the Ruleset. Starting from position 0 (the first rule), rules are evaluated one-by-one until a matching rule is found. + catch_all: + type: boolean + readOnly: true + description: Indicates whether the Event Rule is the last Event Rule of the Ruleset that serves as a catch-all. It has limited functionality compared to other rules and always matches. + actions: + description: When an event matches this rule, the actions that will be taken to change the resulting alert and incident. + type: object + properties: + annotate: + description: Set a note on the resulting incident. + type: object + nullable: true + required: + - value + properties: value: - integration: - type: generic_email_inbound_integration - name: Email - service: - id: PQL78HM - type: service_reference - integration_email: my-email-based-integration@subdomain.pagerduty.com - vendor: - type: vendor_reference - id: PZD94QK - email_integration_with_filters: - summary: Email Integration With Filters + type: string + description: The content of the note. + event_action: + description: Set whether the resulting alert status is trigger or resolve. + type: object + required: + - value + nullable: true + properties: value: - integration: - type: generic_email_inbound_integration - name: Email with Filters - integration_email: your-service@subdomain.pd-staging.com - email_incident_creation: on_new_email_subject - email_filter_mode: or-rules-email - email_parsers: - - action: trigger - match_predicate: - type: any - matcher: this thing - part: body - children: [] - value_extractors: - - type: entire - part: body - value_name: incident_key - email_parsing_fallback: discard - email_filters: - - subject_mode: match - subject_regex: alert - body_mode: match - body_regex: alert - from_email_mode: match - from_email_regex: alert - events_v2_integration: - summary: Request Example for Events v2 Integration + type: string + enum: + - trigger + - resolve + extractions: + type: array + description: Dynamically extract values to set and modify new and existing PD-CEF fields. + items: + oneOf: + - type: object + required: + - target + - source + - regex + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + source: + type: string + description: The path to the event field where the regex will be applied to extract a value. + regex: + type: string + description: A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. + - type: object + required: + - target + - template + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + template: + type: string + description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. + example: Error number {{count}} on host {{host}} + priority: + description: Set the priority ID for the resulting incident. You can find the priority you want by calling the priorities endpoint. + type: object + required: + - value + nullable: true + properties: value: - integration: - type: events_api_v2_inbound_integration - name: Events V2 - service: - id: PQL78HM - type: service_reference - description: The integration to be created - responses: - '201': - description: The integration that was created. - content: - application/json: - schema: - type: object - properties: - integration: - $ref: '#/components/schemas/Integration' - required: - - integration - examples: - response: - summary: Response Example - value: - integration: - id: PE1U9CH - type: generic_email_inbound_integration - summary: Email - self: 'https://api.pagerduty.com/services/PQL78HM/integrations/PE1U9CH' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM/integrations/PE1U9CH' - name: Email - service: - id: PQL78HM - type: service_reference - summary: My Email-Based Integration - self: 'https://api.pagerduty.com/services/PQL78HM' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM' - created_at: '2015-10-14T13:33:02-07:00' - integration_email: my-email-based-integration@subdomain.pagerduty.com - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/services/{id}/integrations/{integration_id}': - put: - x-pd-requires-scope: services.write - tags: - - Services - operationId: updateServiceIntegration - summary: Update an existing integration - description: | - Update an integration belonging to a Service. - - A service may represent an application, component, or team you wish to open incidents against. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) - - Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/integration_id' - requestBody: - content: - application/json: - schema: + type: string + description: The priority ID. + severity: + description: Set the severity of the resulting alert. type: object + required: + - value + nullable: true properties: - integration: - $ref: '#/components/schemas/Integration' + value: + type: string + enum: + - info + - warning + - error + - critical + suppress: + description: Set whether the resulting alert is suppressed. Can optionally be used with a threshold where resulting alerts will be suppressed until the threshold is met in a window of time. If using a threshold the rule must also set a route action. + type: object required: - - integration - examples: - request: - summary: Request Example + - value + properties: value: - integration: - type: generic_email_inbound_integration - name: Email - service: - id: PQL78HM - type: service_reference - summary: My Email-Based Integration - self: 'https://api.pagerduty.com/services/PQL78HM' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM' - integration_email: my-email-based-integration@subdomain.pagerduty.com - vendor: - type: vendor_reference - id: PZD94QK - description: The integration to be updated - responses: - '200': - description: The integration that was updated. - content: - application/json: - schema: - type: object + type: boolean + threshold_value: + type: integer + description: The number of occurences needed during the window of time to trigger the theshold. + threshold_time_unit: + type: string + description: The time unit for the window of time. + enum: + - seconds + - minutes + - hours + threshold_time_amount: + type: integer + description: The amount of time units for the window of time. + suspend: + description: Set the length of time to suspend the resulting alert before triggering. Rules with a suspend action must also set a route action, and cannot have a suppress with threshold action + type: object + required: + - value + nullable: true + properties: + value: + type: integer + description: The amount of time to suspend the alert in seconds. + route: + description: Set the service ID of the target service for the resulting alert. You can find the service you want to route to by calling the services endpoint. + type: object + required: + - value + nullable: true + properties: + value: + type: string + description: The target service's ID. + EventRuleActionsCommon: + type: object + description: When an event matches this Event Rule, the actions that will be taken to change the resulting Alert and Incident. + properties: + annotate: + description: Set a note on the resulting incident. + type: object + nullable: true + required: + - value + properties: + value: + type: string + description: The content of the note. + event_action: + description: Set whether the resulting alert status is trigger or resolve. + type: object + required: + - value + nullable: true + properties: + value: + type: string + enum: + - trigger + - resolve + extractions: + type: array + description: Dynamically extract values to set and modify new and existing PD-CEF fields. + items: + oneOf: + - type: object + required: + - target + - source + - regex properties: - integration: - $ref: '#/components/schemas/Integration' + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + source: + type: string + description: The path to the event field where the regex will be applied to extract a value. + regex: + type: string + description: A RE2 regular expression. If it contains one or more capture groups, their values will be extracted and appended together. If it contains no capture groups, the whole match is used. + - type: object required: - - integration - examples: - response: - summary: Response Example - value: - integration: - id: PE1U9CH - type: generic_email_inbound_integration - summary: Email - self: 'https://api.pagerduty.com/services/PQL78HM/integrations/PE1U9CH' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM/integrations/PE1U9CH' - name: Email - service: - id: PQL78HM - type: service_reference - summary: My Email-Based Integration - self: 'https://api.pagerduty.com/services/PQL78HM' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM' - created_at: '2015-10-14T13:33:02-07:00' - integration_email: my-email-based-integration@subdomain.pagerduty.com - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - get: - x-pd-requires-scope: services.read - tags: - - Services - operationId: getServiceIntegration - summary: View an integration - description: | - Get details about an integration belonging to a service. - - A service may represent an application, component, or team you wish to open incidents against. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#services) - - Scoped OAuth requires: `services.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/integration_id' - - $ref: '#/components/parameters/include_services_integrations' - responses: - '200': - description: The integration that was requested. - content: - application/json: - schema: + - target + - template + properties: + target: + type: string + description: The PD-CEF field that will be set with the value from the regex. + template: + type: string + description: A value that will be used to populate the target PD-CEF field. You can include variables extracted from the payload by using string interpolation. + example: Error number {{count}} on host {{host}} + priority: + description: Set the priority ID for the resulting incident. You can find the priority you want by calling the priorities endpoint. + type: object + required: + - value + nullable: true + properties: + value: + type: string + description: The priority ID. + severity: + description: Set the severity of the resulting alert. + type: object + required: + - value + nullable: true + properties: + value: + type: string + enum: + - info + - warning + - error + - critical + suppress: + description: Set whether the resulting alert is suppressed. Can optionally be used with a threshold where resulting alerts will be suppressed until the threshold is met in a window of time. If using a threshold the rule must also set a route action. + type: object + required: + - value + properties: + value: + type: boolean + threshold_value: + type: integer + description: The number of occurences needed during the window of time to trigger the theshold. + threshold_time_unit: + type: string + description: The time unit for the window of time. + enum: + - seconds + - minutes + - hours + threshold_time_amount: + type: integer + description: The amount of time units for the window of time. + suspend: + description: Set the length of time to suspend the resulting alert before triggering. Rules with a suspend action must also set a route action, and cannot have a suppress with threshold action + type: object + required: + - value + nullable: true + properties: + value: + type: integer + description: The amount of time to suspend the alert in seconds. + CustomFieldsFieldValue: + type: object + properties: + id: + type: string + description: Id of the field. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + description: Determines the type of the reference. + enum: + - field_value + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + value: + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + required: + - id + - type + - name + - value + - display_name + - data_type + - field_type + - description + ServiceCustomFieldsFieldReadModel: + type: object + description: Details of the custom field. + properties: + created_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was created at. + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + enabled: + type: boolean + description: Whether the field is enabled. + enum: + - true + - false + field_options: + type: array + items: + $ref: '#/components/schemas/ServiceCustomFieldsFieldOptionReadModel' + description: The options for the custom field. Applies only to `single_value_fixed` and `multi_value_fixed` field types. These options are returned only if the `include[]` parameter specifies `field_options`. + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + id: + type: string + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `display_name`. + type: + type: string + enum: + - field + readOnly: true + updated_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was updated at. + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + IncidentUrgencyType: + type: object + properties: + type: + type: string + description: 'The type of incident urgency: whether it''s constant, or it''s dependent on the support hours.' + default: constant + enum: + - constant + - use_support_hours + urgency: + type: string + description: The incidents' urgency, if type is constant. + default: high + enum: + - low + - high + - severity_based + FlexibleTimeWindowIntelligentAlertGroupingConfig: + type: object + title: Intelligent Alert Grouping + description: The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans. + properties: + time_window: + type: integer + minimum: 300 + maximum: 3600 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 and 3600. + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + TimeBasedAlertGroupingConfiguration: + type: object + title: Time Grouping + description: The configuration for Time Based Alert Grouping + properties: + timeout: + type: integer + minimum: 1 + maximum: 1440 + description: The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0. + ContentBasedAlertGroupingConfiguration: + type: object + title: Content Only Grouping + description: The configuration for Content Based Alert Grouping + properties: + aggregate: + type: string + description: Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields. + enum: + - all, any + fields: + type: array + description: An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match. + items: + type: string + time_window: + type: integer + minimum: 300 + maximum: 86400 + description: The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the "recommended_time_window," set the value to 0, otherwise the value must be between 300 <= time_window <= 3600 or 86400(i.e. 24 hours). + recommended_time_window: + readOnly: true + type: integer + description: In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`. + MatchPredicate: + type: object + properties: + type: + type: string + enum: + - all + - any + - not + - contains + - exactly + - regex + matcher: + type: string + description: Required if the type is `contains`, `exactly` or `regex`. + minLength: 1 + part: + type: string + description: The email field that will attempt to use the matcher expression. Required if the type is `contains`, `exactly` or `regex`. + enum: + - body + - subject + - from_addresses + children: + type: array + description: Additional matchers to be run. Must be not empty if the type is `all`, `any`, or `not`. + items: + $ref: '#/components/schemas/MatchPredicate' + required: + - type + - part + - children + CustomFieldsEditableField: + type: object + properties: + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + default_value: + nullable: true + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + enabled: + type: boolean + description: Whether the field is enabled. + enum: + - true + - false + ServiceCustomFieldsFieldOptionReadModel: + type: object + properties: + created_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was created at. + data: + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 200 + id: + type: string + description: The ID of the resource. + type: + type: string + enum: + - field_option + updated_at: + title: Datetime + type: string + format: date-time + description: The date/time the object was updated at. + IncidentTypeCustomFields: + type: object + properties: + enabled: + type: boolean + description: Whether the custom field is enabled. + readOnly: true + id: + type: string + readOnly: true + description: The ID of the resource. + name: + type: string + title: Field Name + description: The name of the field. May include ASCII characters, specifically lowercase letters, digits, and underescores. The `name` for a Field must be unique and cannot be changed once created. + maxLength: 50 + type: + type: string + enum: + - field + readOnly: true + self: + type: string + nullable: true + readOnly: true + format: url + description: The API show URL at which the object is accessible + description: + type: string + nullable: true + description: A description of the data this field contains. + maxLength: 1000 + field_type: + type: string + description: The type of data this field contains. In combination with the `data_type` field. + enum: + - single_value + - single_value_fixed + - multi_value + - multi_value_fixed + data_type: + type: string + description: The kind of data the custom field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + updated_at: + type: string + format: date-time + description: The date/time the custom field was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the custom field was created at. + readOnly: true + display_name: + type: string + description: The human-readable name of the field. This must be unique across an account. + maxLength: 50 + default_value: + nullable: true + type: object + title: Boolean + properties: + value: + type: boolean + nullable: true + incident_type: + type: string + description: The id of the incident type the custom field is associated with. + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + field_options: + type: array + items: + $ref: '#/components/schemas/CustomFieldsEditableFieldOption' + description: The options for the custom field. + required: + - id + - summary + - self + - type + - name + - display_name + - created_at + - updated_at + - data_type + - field_type + - enabled + - incident_type + - field_options + CustomFieldsEditableFieldOption: + type: object + properties: + data: + discriminator: + propertyName: data_type + mapping: + string: '#/paths/~1incidents~1custom_fields/get/responses/200/content/application~1json/schema/allOf/0/properties/fields/items/allOf/0/properties/field_options/items/allOf/0/properties/data/oneOf/0' + type: object + properties: + data_type: + type: string + description: The kind of data represented by this option. Must match the Field's `data_type`. + enum: + - string + value: + type: string + maxLength: 100 + required: + - data_type + - value + id: + type: string + readOnly: true + description: The ID of the resource. + type: + type: string + enum: + - field_option + readOnly: true + updated_at: + type: string + format: date-time + description: The date/time the object was last updated. + readOnly: true + created_at: + type: string + format: date-time + description: The date/time the object was created at. + readOnly: true + required: + - id + - type + - created_at + - updated_at + description: '' + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - integration: - $ref: '#/components/schemas/Integration' - required: - - integration - examples: - response: - summary: Response Example - value: - integration: - id: PE1U9CH - type: generic_email_inbound_integration - summary: Email - self: 'https://api.pagerduty.com/services/PQL78HM/integrations/PE1U9CH' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM/integrations/PE1U9CH' - name: Email - service: - id: PQL78HM - type: service_reference - summary: My Email-Based Integration - self: 'https://api.pagerduty.com/services/PQL78HM' - html_url: 'https://subdomain.pagerduty.com/services/PQL78HM' - created_at: '2015-10-14T13:33:02-07:00' - vendor: - id: P8JX75F - type: vendor_reference - summary: Autotask - self: 'https://api.pagerduty.com/vendors/P8JX75F' - integration_email: my-email-based-integration@subdomain.pagerduty.com - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/services/{id}/rules': - get: - x-pd-requires-scope: services.read - tags: - - Services - operationId: listServiceEventRules - description: | - List Event Rules on a Service. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Scoped OAuth requires: `services.read` - summary: List Service's Event Rules - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/id' - responses: - '200': - description: A paginated array of Event Rule objects. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - rules: - type: array - description: The paginated list of Event Rules of the Service. - items: - $ref: '#/components/schemas/ServiceEventRule' - examples: - response: - summary: Response Example - value: - rules: - - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - position: 0 - disabled: false - self: 'https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - conditions: - operator: and - subconditions: - - operator: contains - parameters: - value: mysql - path: class - time_frame: - active_between: - start_time: 1577880000000 - end_time: 1580558400000 - actions: - severity: - value: info - extractions: - - target: dedup_key - template: '{{error_level}} error on host {{host}}' - variables: - - name: error_level - type: regex - parameters: - value: .*error level is (\w+)\. - path: summary - - name: host - type: regex - parameters: - value: (.*)-USW2 - path: source - limit: 25 - offset: 0 - more: false - total: null - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - post: - x-pd-requires-scope: services.write - tags: - - Services - operationId: createServiceEventRule + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Create a new Event Rule on a Service. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Scoped OAuth requires: `services.write` - summary: Create an Event Rule on a Service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - rule: - $ref: '#/components/schemas/ServiceEventRule' - required: - - rule - examples: - request: - summary: Request Example - value: - rule: - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - position: 0 - disabled: false - conditions: - operator: and - subconditions: - - operator: contains - parameters: - value: mysql - path: class - time_frame: - active_between: - start_time: 1577880000000 - end_time: 1580558400000 - actions: - annotate: - value: This incident was modified by an Event Rule - priority: - value: PCMUB6F - severity: - value: warning - extractions: - - target: dedup_key - source: custom_details.error_summary - regex: Host (.*) is experiencing errors - responses: - '201': - description: The Event Rule that was created. - content: - application/json: - schema: + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - rule: - $ref: '#/components/schemas/ServiceEventRule' - examples: - response: - summary: Response Example - value: - ruleset: - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - position: 0 - disabled: false - self: 'https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - conditions: - operator: and - subconditions: - - operator: contains - parameters: - value: mysql - path: class - time_frame: - active_between: - start_time: 1577880000000 - end_time: 1580558400000 - actions: - annotate: - value: This incident was modified by an Event Rule - priority: - value: PCMUB6F - severity: - value: warning - extractions: - - target: dedup_key - source: custom_details.error_summary - regex: Host (.*) is experiencing errors - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '409': - $ref: '#/components/responses/Conflict' - '/services/{id}/rules/{rule_id}': - get: - x-pd-requires-scope: services.read - tags: - - Services - operationId: getServiceEventRule + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Get an Event Rule from a Service. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Scoped OAuth requires: `services.read` - summary: Get an Event Rule from a Service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/rule_id' - responses: - '200': - description: The Event Rule object. - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - rule: - $ref: '#/components/schemas/ServiceEventRule' - examples: - response: - summary: Response Example - value: - rule: - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - position: 0 - disabled: false - self: 'https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - conditions: - operator: and - subconditions: - - operator: contains - parameters: - value: mysql - path: class - time_frame: - active_between: - start_time: 1577880000000 - end_time: 1580558400000 - actions: - annotate: - value: This incident was modified by an Event Rule - priority: - value: PCMUB6F - severity: - value: warning - extractions: - - target: dedup_key - source: custom_details.error_summary - regex: Host (.*) is experiencing errors - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - put: - x-pd-requires-scope: services.write - tags: - - Services - operationId: updateServiceEventRule - summary: Update an Event Rule on a Service + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Update an Event Rule on a Service. Note that the endpoint supports partial updates, so any number of the writable fields can be provided. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. - - Scoped OAuth requires: `services.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/rule_id' - requestBody: - content: - application/json: - schema: - type: object - properties: - rule: - $ref: '#/components/schemas/ServiceEventRule' - rule_id: - description: The id of the Event Rule to update on the Service. - type: string - required: - - rule_id - examples: - suppress_action: - summary: 'Example: Enable suppress action' - value: - rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 - rule: - actions: - suppress: - value: true - disable_rule: - summary: 'Example: Disable rule' - value: - rule_id: 7123bdd1-74e8-4aa7-aa38-4a9ebe123456 - rule: - disabled: true - responses: - '200': - description: The Event Rule that was updated. - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - rule: - $ref: '#/components/schemas/ServiceEventRule' - examples: - response: - summary: Response Example - value: - rule: - id: 14e56445-ebab-4dd0-ba9d-fc28a41b7e7b - position: 0 - disabled: false - self: 'https://api.pagerduty.com/services/PI2KBWI/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b' - conditions: - operator: and - subconditions: - - operator: contains - parameters: - value: mysql - path: class - time_frame: - active_between: - start_time: 1577880000000 - end_time: 1580558400000 - actions: - annotate: - value: This incident was modified by an Event Rule - priority: - value: PCMUB6F - severity: - value: warning - extractions: - - target: dedup_key - source: custom_details.error_summary - regex: Host (.*) is experiencing errors - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' - delete: - x-pd-requires-scope: services.write - tags: - - Services - operationId: deleteServiceEventRule + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotAllowed: + description: The request was received and recognized by the server, but its HTTP method was rejected for the requested resource. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Delete an Event Rule from a Service. - - > ### End-of-life - > Rulesets and Event Rules will end-of-life soon. We highly recommend that you [migrate to Event Orchestration](https://support.pagerduty.com/docs/migrate-to-event-orchestration) as soon as possible so you can take advantage of the new functionality, such as improved UI, rule creation, APIs and Terraform support, advanced conditions, and rule nesting. + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + time_zone: + name: time_zone + in: query + description: Time zone in which results will be rendered. This will default to the account time zone. + schema: + type: string + format: tzinfo + sort_by_service: + name: sort_by + in: query + description: Used to specify the field you wish to sort the results on. + schema: + type: string + enum: + - name + - name:asc + - name:desc + default: name + include_services: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - escalation_policies + - teams + - integrations + - auto_pause_notifications_parameters + uniqueItems: true + service_name: + name: name + in: query + description: Filters the results, showing only services with the specified name. + schema: + type: string + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + include_services_id: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - escalation_policies + - teams + - auto_pause_notifications_parameters + - integrations + uniqueItems: true + schedule_id: + name: id + description: The ID of the schedule. + in: path + required: true + schema: + type: string + example: P2LJD7G + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + integration_id: + name: integration_id + in: path + description: The integration ID on the service. + required: true + schema: + type: string + include_services_integrations: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - services + - vendors + uniqueItems: true + include_ruleset_migrated_metadata: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - migrated_metadata + uniqueItems: true + rule_id: + name: rule_id + in: path + description: The id of the Event Rule to retrieve. + required: true + schema: + type: string + enablement_feature_name: + name: feature_name + description: The feature enablement identifier, typically the name of the product addon. Currently only `aiops` is supported. + in: path + required: true + schema: + type: string + enum: + - aiops + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: - Scoped OAuth requires: `services.write` - summary: Delete an Event Rule from a Service - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/rule_id' - responses: - '204': - description: The Event Rule was deleted successfully. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '405': - $ref: '#/components/responses/NotAllowed' - '409': - $ref: '#/components/responses/Conflict' + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + AuditRecordServiceResponse: + summary: Response Example + value: + records: + - id: PDRECORDID1_SERVICE_CREATED + execution_time: '2020-06-04T15:30:16.272Z' + execution_context: + request_id: 111lDEOIH-534-4ljhLHJjh111 + remote_address: 201.19.20.19 + actors: + - id: PDUSER + summary: John Snow + type: user_reference + method: + type: api_token + truncated_token: 3usr + root_resource: + id: PN2YA40 + type: service_reference + summary: Documentation Hub + action: create + details: + resource: + id: PD_SERVICE_ID + type: service_reference + summary: Documentation Hub + fields: + - name: name + value: Documentation Hub + - name: description + value: Centralized documentation + - name: incident_severity + value: always_high + - name: alert_creation + value: create_alerts_and_incidents + - name: auto_resolve_timeout + value: '' + - name: acknowledgement_timeout + value: '' + - name: alert_grouping + value: null + - name: alert_grouping_timeout + value: '' + references: + - name: escalation_policy + added: + - id: PD_SERVICE_ID + summary: Default + type: escalation_policy_reference + next_cursor: null + limit: 10 + FeatureEnablementListResponseSuccess: + summary: Success Response + value: + enablements: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + FeatureEnablementListResponseWarningForService: + summary: Response with No Entitlement Warning + value: + enablements: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + warnings: + - message: Your account is not entitled to use AIOps features for this Service. + FeatureEnablementListResponseDefault: + summary: Default Response (No Settings Configured) + value: + enablements: + - feature: aiops + enabled: true + updated_at: null + FeatureEnablementPutRequestEnable: + summary: Enable AIOps + value: + enablement: + enabled: true + FeatureEnablementPutRequestDisable: + summary: Disable AIOps + value: + enablement: + enabled: false + FeatureEnablementPutResponseSuccess: + summary: Success Response + value: + enablement: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + FeatureEnablementPutResponseWarningForService: + summary: Response with No Entitlement Warning + value: + enablement: + - feature: aiops + enabled: true + updated_at: '2025-04-25T15:00:00Z' + warnings: + - message: Your account is not entitled to use AIOps features for this Service. + x-stackQL-resources: + services: + id: pagerduty.services.services + name: services + title: Services + methods: + list: + operation: + $ref: '#/paths/~1services/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + config: + queryParamPushdown: + orderBy: + paramName: sort_by + syntax: suffix + supportedColumns: + - name + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1services~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.service + delete: + operation: + $ref: '#/paths/~1services~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/services/methods/get' + - $ref: '#/components/x-stackQL-resources/services/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/services/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/services/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/services/methods/delete' + replace: [] + audit_records: + id: pagerduty.services.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1services~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + integrations: + id: pagerduty.services.integrations + name: integrations + title: Integrations + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}~1integrations/post' + response: + mediaType: application/json + openAPIDocKey: '201' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}~1integrations~1{integration_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1services~1{id}~1integrations~1{integration_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integration + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/integrations/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/integrations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/integrations/methods/update' + delete: [] + replace: [] + rules: + id: pagerduty.services.rules + name: rules + title: Rules + methods: + list: + operation: + $ref: '#/paths/~1services~1{id}~1rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rules + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}~1rules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + convert: + operation: + $ref: '#/paths/~1services~1{id}~1rules~1convert/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rule + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1services~1{id}~1rules~1{rule_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rules/methods/get' + - $ref: '#/components/x-stackQL-resources/rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/rules/methods/delete' + replace: [] + custom_field_values: + id: pagerduty.services.custom_field_values + name: custom_field_values + title: Custom Field Values + methods: + list: + operation: + $ref: '#/paths/~1services~1{id}~1custom_fields~1values/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.custom_fields + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}~1custom_fields~1values/put' + response: + mediaType: application/json + openAPIDocKey: '201' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/custom_field_values/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/custom_field_values/methods/update' + delete: [] + replace: [] + enablements: + id: pagerduty.services.enablements + name: enablements + title: Enablements + methods: + list: + operation: + $ref: '#/paths/~1services~1{id}~1enablements/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.enablements + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1services~1{id}~1enablements~1{feature_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/enablements/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/enablements/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/session_configurations.yaml b/providers/src/pagerduty/v00.00.00000/services/session_configurations.yaml new file mode 100644 index 00000000..7127aa88 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/session_configurations.yaml @@ -0,0 +1,441 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Session Configurations + description: Account session configuration. + version: 2.0.0 +paths: + /session_configurations: + get: + operationId: getSessionConfigurations + x-pd-requires-scope: session_configurations.read + summary: Get an account's session configurations + description: | + Retrieves session configurations for a PagerDuty account. Returns an array containing + the requested configurations. If a specific type is requested, the array contains one item. + If no type is specified, the array contains all available configurations (mobile and web). + If no configurations exist, a 404 Not Found error will be returned. + + A Session Configuration needs to be created before it can be retrieved and used. + + Scoped OAuth requires: `session_configurations.read` + tags: + - Session Configurations + parameters: + - $ref: '#/components/parameters/optional_session_configuration_type' + responses: + '200': + description: Session Configurations retrieved successfully + content: + application/json: + schema: + type: object + properties: + session_configurations: + type: array + items: + type: object + properties: + type: + type: string + enum: + - mobile + - web + description: The session configuration type (mobile or web) + example: web + absolute_session_ttl: + type: integer + description: Absolute session time to live in seconds + example: 3600 + minimum: 600 + maximum: 18144000 + idle_session_ttl: + type: integer + description: Idle session time to live in seconds + example: 1800 + minimum: 60 + maximum: 86400 + required: + - type + - absolute_session_ttl + - idle_session_ttl + required: + - session_configurations + examples: + response: + summary: Session Configurations Example + value: + session_configurations: + - type: web + absolute_session_ttl: 3600 + idle_session_ttl: 600 + - type: mobile + absolute_session_ttl: 7200 + idle_session_ttl: 1200 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + summary: Configure an account's session configurations + operationId: updateSessionConfigurations + x-pd-requires-scope: session_configurations.write + description: | + Creates or updates session configurations for a PagerDuty Account. The configurations will take effect immediately for new sessions, while existing sessions for the specified `types` are immediately revoked. + + Scoped OAuth requires: `session_configurations.write` + tags: + - Session Configurations + parameters: + - $ref: '#/components/parameters/session_configuration_type' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + session_configuration: + type: object + properties: + absolute_session_ttl: + type: integer + description: Absolute session time to live in seconds + example: 3600 + minimum: 600 + maximum: 18144000 + idle_session_ttl: + type: integer + description: Idle session time to live in seconds + example: 600 + minimum: 60 + maximum: 15552000 + required: + - absolute_session_ttl + - idle_session_ttl + required: + - session_configuration + responses: + '200': + description: Session Configurations updated successfully + content: + application/json: + schema: + type: object + properties: + session_configurations: + type: array + items: + type: object + properties: + type: + type: string + enum: + - mobile + - web + description: The session configuration type (mobile or web) + example: web + absolute_session_ttl: + type: integer + description: Absolute session time to live in seconds + example: 3600 + minimum: 600 + maximum: 18144000 + idle_session_ttl: + type: integer + description: Idle session time to live in seconds + example: 1800 + minimum: 60 + maximum: 86400 + required: + - type + - absolute_session_ttl + - idle_session_ttl + required: + - session_configurations + examples: + response: + summary: Put Session Configurations Example + value: + session_configurations: + - type: web + absolute_session_ttl: 3600 + idle_session_ttl: 600 + - type: mobile + absolute_session_ttl: 7200 + idle_session_ttl: 1200 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + summary: Delete an account's session configurations. + operationId: deleteSessionConfigurations + x-pd-requires-scope: session_configurations.write + description: | + Deletes the session configurations for a PagerDuty account that was previously set. + The type parameter is required and specifies which configurations to delete. + A single type ('mobile' or 'web') or comma-separated list may be passed in. + + Scoped OAuth requires: `session_configurations.write` + tags: + - Session Configurations + parameters: + - $ref: '#/components/parameters/session_configuration_type' + responses: + '204': + description: Session Configurations deleted successfully + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' +components: + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + optional_session_configuration_type: + name: type + in: query + required: false + schema: + type: string + enum: + - mobile + - web + description: Session configuration type. If omitted, returns both mobile and web configurations. + session_configuration_type: + name: type + in: query + required: true + schema: + type: string + enum: + - mobile + - web + description: Session configuration type. This can be either 'mobile' or 'web', or a comma-separated list of both. + x-stackQL-resources: + session_configurations: + id: pagerduty.session_configurations.session_configurations + name: session_configurations + title: Session Configurations + methods: + list: + operation: + $ref: '#/paths/~1session_configurations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.session_configurations + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1session_configurations/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1session_configurations/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/session_configurations/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/session_configurations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/session_configurations/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/sre_agent.yaml b/providers/src/pagerduty/v00.00.00000/services/sre_agent.yaml new file mode 100644 index 00000000..efe9f4c3 --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/sre_agent.yaml @@ -0,0 +1,498 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Sre Agent + description: SRE Agent memories. + version: 2.0.0 +paths: + /sre_agent/memories: + get: + x-pd-requires-scope: incident.read + tags: + - SRE Agent + operationId: listSreMemories + description: | + Search SRE Agent memories for the account. + + Memories are knowledge learned by the SRE Agent, including service runbooks, service profiles, + incident playbooks, and incident summaries. Filter by service ID, incident ID, or memory type to retrieve + relevant memories. + + Scoped OAuth requires: `incident.read` + summary: List SRE Agent memories + parameters: + - $ref: '#/components/parameters/sre_memories_limit' + - $ref: '#/components/parameters/sre_memories_service_id' + - $ref: '#/components/parameters/sre_memories_incident_id' + - $ref: '#/components/parameters/sre_memories_type' + responses: + '200': + description: An array of SRE Agent memories. + content: + application/json: + schema: + type: object + properties: + memories: + type: array + items: + $ref: '#/components/schemas/SREMemory' + required: + - memories + examples: + response: + summary: Response Example + value: + memories: + - attributes: + account_id: PLHJ8WE + service_id: PJYY37U + type: service_profile + content: The Payment Processing Service handles all transaction processing with a 99.9% SLA target. Primary dependencies include Redis cache and PostgreSQL database. + created_at: '2026-02-23T19:53:19.268Z' + id: PLHJ8WE + updated_at: '2026-02-23T19:53:19.268Z' + - attributes: + account_id: PLHJ8WE + service_id: PJYY37U + type: runbook + content: To restart the Payment Processing Service, first drain traffic from the load balancer, then run 'systemctl restart payment-service', and verify health checks pass before restoring traffic. + created_at: '2026-02-24T17:15:42.123Z' + id: PM4QR2T + updated_at: '2026-02-24T17:15:42.123Z' + - attributes: + account_id: PLHJ8WE + incident_id: PX9LMN2 + service_id: PJYY37U + type: incident_playbook + content: For payment timeout incidents, check Redis cache connection pool first, then verify database query performance. Restart cache service if connection pool is exhausted. + created_at: '2026-02-25T22:22:10.543Z' + id: PQRS123 + updated_at: '2026-02-25T22:22:10.543Z' + - attributes: + account_id: PLHJ8WE + incident_id: PX9LMN2 + service_id: PJYY37U + type: incident_summary + content: Payment service experienced timeout errors due to exhausted Redis connection pool. Resolved by restarting cache service and increasing pool size from 50 to 100 connections. + created_at: '2026-02-26T00:45:30.123Z' + id: PXYZ789 + updated_at: '2026-02-26T00:45:30.123Z' + limit: 20 + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /sre_agent/memories/{id}: + put: + x-pd-requires-scope: sre_agent.write + tags: + - SRE Agent + operationId: updateSreMemory + description: | + Update an existing SRE Agent memory. Changes to the runbook may not update in a currently ongoing conversation, but will be available to new conversations. To modify the runbook for an in progress conversation update the runbook via the agent instead. + + Scoped OAuth requires: `sre_agent.write` + summary: Update an SRE Agent memory + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + memory: + type: object + properties: + content: + type: string + description: The content of the SRE memory. + required: + - content + required: + - memory + examples: + request: + summary: Request Example + value: + memory: + content: Updated memory content - The database connection pool was increased to 100 connections to resolve performance issues during peak load. + description: The SRE Agent memory to be updated. + responses: + '200': + description: The SRE Agent memory that was updated. + content: + application/json: + schema: + type: object + properties: + memory: + $ref: '#/components/schemas/SREMemory' + required: + - memory + examples: + response: + summary: Response Example + value: + memory: + attributes: + account_id: PLHJ8WE + service_id: PJYY37U + type: service_runbook + content: Updated memory content - The database connection pool was increased to 100 connections to resolve performance issues during peak load. + created_at: '2026-02-23T19:53:19.268Z' + id: PLHJ8WE + type: sre_memory + updated_at: '2026-02-25T22:22:10.543Z' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: sre_agent.write + tags: + - SRE Agent + operationId: deleteSreMemory + description: | + Permanently delete an SRE Agent memory. Deleting a runbook may not delete it immediately from a currently running conversation, but will remove it from all future conversations. To modify an in progress conversation ask the agent to delete the runbook instead. + + Scoped OAuth requires: `sre_agent.write` + summary: Delete an SRE Agent memory + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The SRE Agent memory was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' +components: + schemas: + SREMemory: + type: object + properties: + id: + type: string + description: The unique identifier for this memory. + readOnly: true + content: + type: string + description: The content of the SRE memory. + attributes: + type: object + description: Additional attributes associated with this memory. + properties: + account_id: + type: string + description: The ID of the account this memory is associated with. + service_id: + type: string + description: The ID of the service this memory is associated with. + incident_id: + type: string + description: The ID of the incident this memory is associated with. + type: + type: string + description: The type of memory. + enum: + - runbook + - service_profile + - incident_playbook + - incident_summary + created_at: + type: string + format: date-time + description: The date and time the memory was created. + readOnly: true + updated_at: + type: string + format: date-time + description: The date and time the memory was last updated. + readOnly: true + required: + - type + - content + example: + attributes: + incident_id: PX9LMN2 + service_id: PJYY37U + memory_type: incident_summary + content: Restarting the cache service resolved timeout errors on the payment service during the 2026-02-24 incident + created_at: '2026-02-24T17:15:42.123Z' + id: PM4QR2T + type: sre_memory + updated_at: '2026-02-24T17:15:42.123Z' + responses: + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + sre_memories_limit: + name: limit + in: query + description: The number of results to return per page. + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 20 - incident_summary + sre_memories_service_id: + name: service_id + in: query + required: false + description: Filter memories by service ID + schema: + type: string + sre_memories_incident_id: + name: incident_id + in: query + required: false + description: Filter memories by incident ID + schema: + type: string + sre_memories_type: + name: type + in: query + required: false + description: Filter memories by type + schema: + type: string + enum: + - runbook + - service_profile + - incident_playbook + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + memories: + id: pagerduty.sre_agent.memories + name: memories + title: Memories + methods: + list: + operation: + $ref: '#/paths/~1sre_agent~1memories/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.memories + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1sre_agent~1memories~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1sre_agent~1memories~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/memories/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/memories/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/memories/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/standards.yaml b/providers/src/pagerduty/v00.00.00000/services/standards.yaml new file mode 100644 index 00000000..d558056a --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/standards.yaml @@ -0,0 +1,550 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Standards + description: Service standards and standards scores. + version: 2.0.0 +paths: + /standards: + get: + x-pd-requires-scope: standards.read + tags: + - Standards + operationId: listStandards + summary: List Standards + description: | + Get all standards of an account. + + Scoped OAuth requires: `standards.read` + parameters: + - $ref: '#/components/parameters/active_standard' + - $ref: '#/components/parameters/query_resource_type_standard' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + standards: + type: array + items: + $ref: '#/components/schemas/Standard' + examples: + response: + summary: Response Example + value: + standards: + - active: true + description: A description provides critical context about what a service represents or is used for to inform team members and responders. The description should be kept concise and understandable by those without deep knowledge of the service. + exclusions: [] + id: 01CXX38Q0U8XKHO4LNKXUJTBFG + inclusions: + - type: technical_service_reference + id: P0CPWBO + name: Service has a description + resource_type: technical_service + type: has_technical_service_description + - active: true + description: Ensure that no incident goes unaddressed, even if the on-call responder on the first level of the escalation policy is unavailable. + exclusions: [] + id: 01CXX38Q0Y8D9IYFAEDCH5F53L + inclusions: [] + name: Service has an escalation policy with 2 or more unique levels + resource_type: technical_service + type: minimum_escalation_policy_rule_depth + - active: true + description: Extensions or add-ons streamline incident response and communication processes by connecting PagerDuty services to other tools that matter to your incident management workflow. + exclusions: [] + id: 01CXX38Q11T19P0K1GFKHUZJ35 + inclusions: [] + name: Service has an extension or add-on (e.g. Slack, etc.) + resource_type: technical_service + type: minimum_outbound_integrations + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /standards/{id}: + put: + x-pd-requires-scope: standards.write + tags: + - Standards + summary: Update a standard + operationId: updateStandard + description: | + Updates a standard + + Scoped OAuth requires: `standards.write` + parameters: + - $ref: '#/components/parameters/id_standard' + requestBody: + content: + application/json: + schema: + type: object + properties: + active: + type: boolean + values: + type: object + properties: + regex: + type: string + description: + type: string + inclusions: + type: array + items: + $ref: '#/components/schemas/StandardInclusionExclusion' + exclusions: + type: array + items: + $ref: '#/components/schemas/StandardInclusionExclusion' + examples: + request: + summary: Request Example + value: + active: false + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Standard' + examples: + response: + summary: Response Example + value: + active: false + description: A description provides critical context about what a service represents or is used for to inform team members and responders. The description should be kept concise and understandable by those without deep knowledge of the service. + exclusions: [] + id: 01CXX38Q0U8XKHO4LNKXUJTBFG + inclusions: [] + name: Service has a description + resource_type: technical_service + type: has_technical_service_description + '400': + $ref: '#/components/responses/UnprocessableEntity' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /standards/scores/{resource_type}: + get: + x-pd-requires-scope: standards.read + tags: + - Standards + summary: List resources' standards scores + operationId: listResourceStandardsManyServices + description: | + List standards applied to a set of resources + + Scoped OAuth requires: `standards.read` + parameters: + - $ref: '#/components/parameters/resource_ids_standard' + - $ref: '#/components/parameters/resource_type_standard' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + resources: + type: array + items: + $ref: '#/components/schemas/StandardApplied' + examples: + response: + summary: Response Example + value: + resources: + - resource_id: P0CPWBO + resource_type: technical_service + score: + passing: 1 + total: 1 + standards: + - active: true + description: A description provides critical context about what a service represents or is used for to inform team members and responders. The description should be kept concise and understandable by those without deep knowledge of the service. + id: 01CXX38Q0U8XKHO4LNKXUJTBFG + pass: true + name: Service has a description + type: has_technical_service_description + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /standards/scores/{resource_type}/{id}: + get: + x-pd-requires-scope: standards.read + tags: + - Standards + summary: List a resource's standards scores + operationId: listResourceStandards + description: | + List standards applied to a specific resource + + Scoped OAuth requires: `standards.read` + parameters: + - $ref: '#/components/parameters/resource_id_standard' + - $ref: '#/components/parameters/resource_type_standard' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/StandardApplied' + examples: + response: + summary: Response Example + value: + resource_id: P0CPWBO + resource_type: technical_service + score: + passing: 1 + total: 1 + standards: + - active: true + description: A description provides critical context about what a service represents or is used for to inform team members and responders. The description should be kept concise and understandable by those without deep knowledge of the service. + id: 01CXX38Q0U8XKHO4LNKXUJTBFG + pass: true + name: Service has a description + type: has_technical_service_description + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' +components: + schemas: + Standard: + title: Standard + type: object + properties: + active: + type: boolean + description: + type: string + id: + type: string + name: + type: string + type: + type: string + resource_type: + type: string + enum: + - technical_service + exclusions: + type: array + items: + $ref: '#/components/schemas/StandardInclusionExclusion' + inclusions: + type: array + items: + $ref: '#/components/schemas/StandardInclusionExclusion' + StandardInclusionExclusion: + title: StandardInclusionExclusion + type: object + properties: + type: + type: string + enum: + - technical_service_reference + id: + type: string + StandardApplied: + title: StandardApplied + type: object + properties: + resource_id: + type: string + resource_type: + type: string + enum: + - technical_service + score: + type: object + properties: + passing: + type: integer + total: + type: integer + standards: + type: array + items: + type: object + properties: + active: + type: boolean + description: + type: string + id: + type: string + name: + type: string + type: + type: string + pass: + type: boolean + responses: + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + UnprocessableEntity: + description: Unprocessable Entity. Some arguments failed validation checks. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + active_standard: + in: query + name: active + required: false + schema: + type: boolean + query_resource_type_standard: + in: query + name: resource_type + schema: + type: string + enum: + - technical_service + id_standard: + in: path + name: id + required: true + description: Id of the standard + schema: + type: string + resource_ids_standard: + in: query + name: ids + required: true + description: Ids of resources to apply the standards. Maximum of 100 items + schema: + type: array + items: + type: string + resource_type_standard: + in: path + name: resource_type + required: true + schema: + type: string + enum: + - technical_services + resource_id_standard: + in: path + name: id + required: true + description: Id of the resource to apply the standards. + schema: + type: string + x-stackQL-resources: + standards: + id: pagerduty.standards.standards + name: standards + title: Standards + methods: + list: + operation: + $ref: '#/paths/~1standards/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.standards + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1standards~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/standards/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/standards/methods/update' + delete: [] + replace: [] + scores: + id: pagerduty.standards.scores + name: scores + title: Scores + methods: + list: + operation: + $ref: '#/paths/~1standards~1scores~1{resource_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.resources + get: + operation: + $ref: '#/paths/~1standards~1scores~1{resource_type}~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/scores/methods/get' + - $ref: '#/components/x-stackQL-resources/scores/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/status_dashboards.yaml b/providers/src/pagerduty/v00.00.00000/services/status_dashboards.yaml index 260bde98..3fe3a3cf 100644 --- a/providers/src/pagerduty/v00.00.00000/services/status_dashboards.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/status_dashboards.yaml @@ -1,121 +1,303 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Status Dashboards + description: Status dashboards and their service impacts. version: 2.0.0 - title: PagerDuty API - status_dashboards - description: Status_Dashboards -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /status_dashboards: + get: + x-pd-requires-scope: status_dashboards.read + tags: + - Status Dashboards + operationId: listStatusDashboards + description: | + Get all your account's custom Status Dashboard views. + + Scoped OAuth requires: `status_dashboards.read` + summary: List Status Dashboards + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + status_dashboards: + type: array + items: + $ref: '#/components/schemas/StatusDashboard' + required: + - limit + - next_cursor + examples: + response: + summary: Response Example + value: + limit: 100 + next_cursor: null + status_dashboards: + - id: PFCVPS0 + url_slug: analytics-api + name: Analytics API + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: [] + /status_dashboards/{id}: + get: + x-pd-requires-scope: status_dashboards.read + tags: + - Status Dashboards + operationId: getStatusDashboardById + description: | + Get a Status Dashboard by its PagerDuty `id`. + + Scoped OAuth requires: `status_dashboards.read` + summary: Get a single Status Dashboard by `id` + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + status_dashboard: + $ref: '#/components/schemas/StatusDashboard' + examples: + response: + summary: Response Example + value: + status_dashboard: + id: PFCVPS0 + url_slug: analytics-api + name: Analytics API + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: + - $ref: '#/components/parameters/id' + /status_dashboards/{id}/service_impacts: + get: + x-pd-requires-scope: status_dashboards.read + tags: + - Status Dashboards + operationId: getStatusDashboardServiceImpactsById + description: | + Get impacted Business Services for a Status Dashboard by `id` + + This endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted on the specified Status Dashboard up to the limit of 200. + + The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. + + To get Impact information about a specific Business Service on the Status Dashboard that does not appear in the Impact-sorted response, use the `ids[]` parameter on the `/business_services/impacts` endpoint. + + Scoped OAuth requires: `status_dashboards.read` + summary: Get impacted Business Services for a Status Dashboard by `id`. + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + services: + type: array + items: + $ref: '#/components/schemas/Impact' + additional_fields: + type: object + properties: + total_impacted_count: + type: integer + examples: + response: + summary: Response Example + value: + limit: 100 + more: false + services: + - id: PD1234 + name: Web API + type: business_service + status: impacted + additional_fields: + highest_impacting_priority: + id: PQOMK4S + order: 128 + - id: PF9KMXH + name: Analytics Backend + type: business_service + status: not_impacted + additional_fields: + highest_impacting_priority: null + additional_fields: + total_impacted_count: 1 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/impacts_additional_fields' + /status_dashboards/url_slugs/{url_slug}: + get: + x-pd-requires-scope: status_dashboards.read + tags: + - Status Dashboards + operationId: getStatusDashboardByUrlSlug + description: | + Get a Status Dashboard by its PagerDuty `url_slug`. A `url_slug` is a human-readable reference + for a custom Status Dashboard that may be created or changed in the UI. It will generally be a `dash-separated-string-like-this`. + + Scoped OAuth requires: `status_dashboards.read` + summary: Get a single Status Dashboard by `url_slug` + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + status_dashboard: + $ref: '#/components/schemas/StatusDashboard' + examples: + response: + summary: Response Example + value: + status_dashboard: + id: PFCVPS0 + url_slug: analytics-api + name: Analytics API + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: + - $ref: '#/components/parameters/url_slug' + /status_dashboards/url_slugs/{url_slug}/service_impacts: + get: + x-pd-requires-scope: status_dashboards.read + tags: + - Status Dashboards + operationId: getStatusDashboardServiceImpactsByUrlSlug + description: | + Get Business Service Impacts for the Business Services on a Status Dashboard by its `url_slug`. A `url_slug` is a human-readable reference + for a custom Status Dashboard that may be created or changed in the UI. It will generally be a `dash-separated-string-like-this`. + + This endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted on the Status Dashboard up to the limit of 200. + + The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. + + To get impact information about a specific Business Service on the Status Dashboard that does not appear in the Impact-sored response, use the `ids[]` parameter on the `/business_services/impacts` endpoint. + + Scoped OAuth requires: `status_dashboards.read` + summary: Get impacted Business Services for a Status Dashboard by `url_slug` + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + services: + type: array + items: + $ref: '#/components/schemas/Impact' + additional_fields: + type: object + properties: + total_impacted_count: + type: integer + examples: + response: + summary: Response Example + value: + limit: 100 + more: false + services: + - id: PD1234 + name: Web API + type: business_service + status: impacted + additional_fields: + highest_impacting_priority: + id: PQOMK4S + order: 128 + - id: PF9KMXH + name: Analytics Backend + type: business_service + status: not_impacted + additional_fields: + highest_impacting_priority: null + additional_fields: + total_impacted_count: 1 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + '429': + $ref: '#/components/responses/TooManyRequests' + parameters: + - $ref: '#/components/parameters/url_slug' + - $ref: '#/components/parameters/impacts_additional_fields' components: schemas: CursorPagination: @@ -145,12 +327,6 @@ components: type: string name: type: string - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true LiveListResponse: type: object properties: @@ -197,1428 +373,6 @@ components: order: type: integer readOnly: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access responses: Unauthorized: description: | @@ -1627,7 +381,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -1635,18 +411,35 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1674,1278 +467,195 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 UnprocessableEntity: description: Unprocessable Entity. Some arguments failed validation checks. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + impacts_additional_fields: + name: additional_fields[] + in: query + description: Provides access to additional fields such as highest priority per business service and total impacted count + explode: true + schema: + type: string + enum: + - services.highest_impacting_priority + - total_impacted_count + url_slug: + name: url_slug + in: path + description: The `url_slug` for a status dashboard + required: true + schema: + type: string x-stackQL-resources: status_dashboards: id: pagerduty.status_dashboards.status_dashboards name: status_dashboards title: Status Dashboards methods: - list_status_dashboards: + list: operation: $ref: '#/paths/~1status_dashboards/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.status_dashboards - _list_status_dashboards: - operation: - $ref: '#/paths/~1status_dashboards/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_status_dashboard_by_id: + get: operation: $ref: '#/paths/~1status_dashboards~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.status_dashboard - _get_status_dashboard_by_id: - operation: - $ref: '#/paths/~1status_dashboards~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/status_dashboards/methods/get_status_dashboard_by_id' - - $ref: '#/components/x-stackQL-resources/status_dashboards/methods/list_status_dashboards' + - $ref: '#/components/x-stackQL-resources/status_dashboards/methods/get' + - $ref: '#/components/x-stackQL-resources/status_dashboards/methods/list' insert: [] update: [] delete: [] + replace: [] service_impacts: id: pagerduty.status_dashboards.service_impacts name: service_impacts title: Service Impacts methods: - get_status_dashboard_service_impacts_by_id: + list: operation: $ref: '#/paths/~1status_dashboards~1{id}~1service_impacts/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.services - _get_status_dashboard_service_impacts_by_id: - operation: - $ref: '#/paths/~1status_dashboards~1{id}~1service_impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/service_impacts/methods/get_status_dashboard_service_impacts_by_id' + - $ref: '#/components/x-stackQL-resources/service_impacts/methods/list' insert: [] update: [] delete: [] + replace: [] url_slugs: id: pagerduty.status_dashboards.url_slugs name: url_slugs title: Url Slugs methods: - get_status_dashboard_by_url_slug: + get: operation: $ref: '#/paths/~1status_dashboards~1url_slugs~1{url_slug}/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.status_dashboard - _get_status_dashboard_by_url_slug: - operation: - $ref: '#/paths/~1status_dashboards~1url_slugs~1{url_slug}/get' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/url_slugs/methods/get_status_dashboard_by_url_slug' + - $ref: '#/components/x-stackQL-resources/url_slugs/methods/get' insert: [] update: [] delete: [] - url_slugs_service_impacts: - id: pagerduty.status_dashboards.url_slugs_service_impacts - name: url_slugs_service_impacts - title: Url Slugs Service Impacts + replace: [] + url_slug_service_impacts: + id: pagerduty.status_dashboards.url_slug_service_impacts + name: url_slug_service_impacts + title: Url Slug Service Impacts methods: - get_status_dashboard_service_impacts_by_url_slug: + list: operation: $ref: '#/paths/~1status_dashboards~1url_slugs~1{url_slug}~1service_impacts/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.services - _get_status_dashboard_service_impacts_by_url_slug: - operation: - $ref: '#/paths/~1status_dashboards~1url_slugs~1{url_slug}~1service_impacts/get' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/url_slugs_service_impacts/methods/get_status_dashboard_service_impacts_by_url_slug' + - $ref: '#/components/x-stackQL-resources/url_slug_service_impacts/methods/list' insert: [] update: [] delete: [] -paths: - /status_dashboards: - get: - tags: - - Status Dashboards - operationId: listStatusDashboards - summary: List Status Dashboards - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/CursorPagination' - - type: object - properties: - status_dashboards: - type: array - items: - $ref: '#/components/schemas/StatusDashboard' - examples: - response: - summary: Response Example - value: - limit: 100 - next_cursor: null - status_dashboards: - - id: PFCVPS0 - url_slug: analytics-api - name: Analytics API - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - description: |- - Get all your account's custom Status Dashboard views - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/early_access_status_dashboards' - '/status_dashboards/{id}': - get: - tags: - - Status Dashboards - operationId: getStatusDashboardById - summary: Get a single Status Dashboard by `id` - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - status_dashboard: - $ref: '#/components/schemas/StatusDashboard' - examples: - response: - summary: Response Example - value: - status_dashboard: - id: PFCVPS0 - url_slug: analytics-api - name: Analytics API - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - description: |- - Get a Status Dashboard by its PagerDuty `id`. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/early_access_status_dashboards' - '/status_dashboards/{id}/service_impacts': - get: - tags: - - Status Dashboards - operationId: getStatusDashboardServiceImpactsById - summary: Get impacted Business Services for a Status Dashboard by `id`. - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/LiveListResponse' - - type: object - properties: - services: - type: array - items: - $ref: '#/components/schemas/Impact' - - type: object - properties: - additional_fields: - type: object - properties: - total_impacted_count: - type: integer - examples: - response: - summary: Response Example - value: - limit: 100 - more: false - services: - - id: PD1234 - name: Web API - type: business_service - status: impacted - additional_fields: - highest_impacting_priority: - id: PQOMK4S - order: 128 - - id: PF9KMXH - name: Analytics Backend - type: business_service - status: not_impacted - additional_fields: - highest_impacting_priority: null - additional_fields: - total_impacted_count: 1 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - description: |- - Get impacted Business Services for a Status Dashboard by `id` - - This endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted on the specified Status Dashboard up to the limit of 200. - - The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. - - To get Impact information about a specific Business Service on the Status Dashboard that does not appear in the Impact-sorted response, use the `ids[]` parameter on the `/business_services/impacts` endpoint. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/impacts_additional_fields' - - $ref: '#/components/parameters/early_access_status_dashboards' - '/status_dashboards/url_slugs/{url_slug}': - get: - tags: - - Status Dashboards - operationId: getStatusDashboardByUrlSlug - summary: Get a single Status Dashboard by `url_slug` - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - status_dashboard: - $ref: '#/components/schemas/StatusDashboard' - examples: - response: - summary: Response Example - value: - status_dashboard: - id: PFCVPS0 - url_slug: analytics-api - name: Analytics API - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - description: |- - Get a Status Dashboard by its PagerDuty `url_slug`. A `url_slug` is a human-readable reference - for a custom Status Dashboard that may be created or changed in the UI. It will generally be a `dash-separated-string-like-this`. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/url_slug' - - $ref: '#/components/parameters/early_access_status_dashboards' - '/status_dashboards/url_slugs/{url_slug}/service_impacts': - get: - tags: - - Status Dashboards - operationId: getStatusDashboardServiceImpactsByUrlSlug - summary: Get impacted Business Services for a Status Dashboard by `url_slug` - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/LiveListResponse' - - type: object - properties: - services: - type: array - items: - $ref: '#/components/schemas/Impact' - - type: object - properties: - additional_fields: - type: object - properties: - total_impacted_count: - type: integer - examples: - response: - summary: Response Example - value: - limit: 100 - more: false - services: - - id: PD1234 - name: Web API - type: business_service - status: impacted - additional_fields: - highest_impacting_priority: - id: PQOMK4S - order: 128 - - id: PF9KMXH - name: Analytics Backend - type: business_service - status: not_impacted - additional_fields: - highest_impacting_priority: null - additional_fields: - total_impacted_count: 1 - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - '429': - $ref: '#/components/responses/TooManyRequests' - description: |- - Get Business Service Impacts for the Business Services on a Status Dashboard by its `url_slug`. A `url_slug` is a human-readable reference - for a custom Status Dashboard that may be created or changed in the UI. It will generally be a `dash-separated-string-like-this`. - - This endpoint does not return an exhaustive list of Business Services but rather provides access to the most impacted on the Status Dashboard up to the limit of 200. - - The returned Business Services are sorted first by Impact, secondarily by most recently impacted, and finally by name. - - To get impact information about a specific Business Service on the Status Dashboard that does not appear in the Impact-sored response, use the `ids[]` parameter on the `/business_services/impacts` endpoint. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/url_slug' - - $ref: '#/components/parameters/impacts_additional_fields' - - $ref: '#/components/parameters/early_access_status_dashboards' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/status_pages.yaml b/providers/src/pagerduty/v00.00.00000/services/status_pages.yaml new file mode 100644 index 00000000..9710ff9c --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/status_pages.yaml @@ -0,0 +1,3213 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Status Pages + description: 'Status pages: impacts, services, severities, statuses, posts, post updates, postmortems and subscriptions.' + version: 2.0.0 +paths: + /status_pages: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPages + description: | + List Status Pages. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Pages + parameters: + - $ref: '#/components/parameters/status_page_type' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + status_pages: + type: array + items: + $ref: '#/components/schemas/StatusPage' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + status_pages: + - id: PT4KHLK + name: My brand Status Page + published_at: '2017-09-13T10:11:12.000Z' + status_page_type: private + type: status_page + url: https://status.mybrand.example + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/impacts: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPageImpacts + description: | + List Impacts for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Impacts + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_impact_post_type' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + impacts: + type: array + items: + $ref: '#/components/schemas/StatusPageImpact' + examples: + response: + summary: Response Example + value: + impacts: + - description: operational + id: PIJ90N7 + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/impacts/PIJ90N7 + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_impact + - description: partial outage + id: PF9KMXH + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/impacts/PF9KMXH + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_impact + - description: outage + id: PBAZLIU + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/impacts/PBAZLIU + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_impact + limit: 25 + more: false + offset: 0 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/impacts/{impact_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getStatusPageImpact + description: | + Get an Impact for a Status Page by Status Page ID and Impact ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Impact + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_impact_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + impact: + $ref: '#/components/schemas/StatusPageImpact' + examples: + response: + summary: Response Example + value: + impact: + description: operational + id: PIJ90N7 + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/impacts/PIJ90N7 + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_impact + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/services: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPageServices + description: | + List Services for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Services + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + services: + type: array + items: + $ref: '#/components/schemas/StatusPageService' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + services: + - business_service: + id: P32NFFO + self: https://api.pagerduty.com/business_services/P32NFFO + type: business_service + id: PEYSGVF + name: Events API (US) + status_page: + id: PIJ90N7 + type: status_page + type: status_page_service + total: 1 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/services/{service_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getStatusPageService + description: | + Get a Service for a Status Page by Status Page ID and Service ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Service + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_service_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + service: + $ref: '#/components/schemas/StatusPageService' + examples: + response: + summary: Response Example + value: + service: + business_service: + id: P32NFFO + self: https://api.pagerduty.com/business_services/P32NFFO + type: business_service + id: PEYSGVF + name: Events API (US) + status_page: + id: PIJ90N7 + type: status_page + type: status_page_service + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/severities: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPageSeverities + description: | + List Severities for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Severities + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_severity_post_type' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + severities: + type: array + items: + $ref: '#/components/schemas/StatusPageSeverity' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + severities: + - description: all good + id: PIJ90N7 + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/severities/PIJ90N7 + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_severity + - description: minor + id: PF9KMXH + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/severities/PF9KMXH + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_severity + - description: major + id: PBAZLIU + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/severities/PBAZLIU + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_severity + total: 3 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/severities/{severity_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getStatusPageSeverity + description: | + Get a Severity for a Status Page by Status Page ID and Severity ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Severity + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_severity_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + severity: + $ref: '#/components/schemas/StatusPageSeverity' + examples: + response: + summary: Response Example + value: + severity: + description: all good + id: PIJ90N7 + post_type: incident + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_severity + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/statuses: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPageStatuses + description: | + List Statuses for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Statuses + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_status_post_type' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + statuses: + type: array + items: + $ref: '#/components/schemas/StatusPageStatus' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + statuses: + - description: investigating + id: PIJ90N7 + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/statuses/PIJ90N7 + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_status + - description: detected + id: PF9KMXH + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/statuses/PF9KMXH + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_status + - description: resolved + id: PF9KMXH + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/statuses/PF9KMXH + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_status + total: 3 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/statuses/{status_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getStatusPageStatus + description: | + Get a Status for a Status Page by Status Page ID and Status ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Status + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_status_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + status: + $ref: '#/components/schemas/StatusPageStatus' + examples: + response: + summary: Response Example + value: + status: + description: investigating + id: PIJ90N7 + post_type: incident + self: https://api.pagerduty.com/status_pages/PQ8W0D0/statuses/PIJ90N7 + status_page: + id: PQ8W0D0 + type: status_page + type: status_page_status + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/posts: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPagePosts + description: | + List Posts for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Posts + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_type' + - $ref: '#/components/parameters/status_page_post_reviewed_status' + - $ref: '#/components/parameters/status_page_post_status' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + posts: + type: array + items: + $ref: '#/components/schemas/StatusPagePost' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + posts: + - ends_at: '2023-12-12T11:00:00.000Z' + id: PIJ90N7 + post_type: maintenance + postmortem: + id: PWZ0PTR + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/postmortem + type: status_page_postmortem + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7 + starts_at: '2023-12-12T11:00:00.000Z' + status_page: + id: PR5LMML + type: status_page + title: maintenance window for database upgrade + type: status_page_post + updates: + - id: P7HUBBZ + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/post_updates/P7HUBBZ + type: status_page_post_update + total: 3 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: createStatusPagePost + description: | + Create a Post for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.write` + summary: Create a Status Page Post + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + post: + $ref: '#/components/schemas/StatusPagePostPostRequest' + required: + - post + example: + post: + ends_at: '2023-12-12T11:00:00.000Z' + post_type: maintenance + starts_at: '2023-12-12T11:00:00.000Z' + status_page: + id: PR5LMML + type: status_page + title: maintenance window for database upgrade + type: status_page_post + updates: + - impacted_services: + - impact: + id: PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + type: status_page_service + message:

Message

+ update_frequency_ms: null + notify_subscribers: false + severity: + id: PY5OM08 + type: status_page_severity + status: + id: P0400H4 + type: status_page_status + type: status_page_post_update + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + post: + $ref: '#/components/schemas/StatusPagePost' + example: + post: + ends_at: '2023-12-12T11:00:00.000Z' + id: PIJ90N7 + post_type: maintenance + postmortem: + id: PWZ0PTR + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/postmortem + type: status_page_postmortem + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7 + starts_at: '2023-12-12T11:00:00.000Z' + status_page: + id: PR5LMML + type: status_page + title: maintenance window for database upgrade + type: status_page_post + updates: + - id: P7HUBBZ + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/post_updates/P7HUBBZ + type: status_page_post_update + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/posts/{post_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getStatusPagePost + description: | + Get a Post for a Status Page by Status Page ID and Post ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Post + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + - $ref: '#/components/parameters/status_page_post_include' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + post: + $ref: '#/components/schemas/StatusPagePost' + examples: + response: + summary: Response Example + value: + post: + ends_at: '2023-12-12T11:00:00.000Z' + id: PIJ90N7 + post_type: maintenance + postmortem: + id: PWZ0PTR + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/postmortem + type: status_page_postmortem + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7 + starts_at: '2023-12-12T11:00:00.000Z' + status_page: + id: PR5LMML + type: status_page + title: maintenance window for database upgrade + type: status_page_post + updates: + - id: P7HUBBZ + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/PIJ90N7/post_updates/P7HUBBZ + type: status_page_post_update + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: updateStatusPagePost + description: | + Update a Post for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.write` + summary: Update a Status Page Post + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + post: + $ref: '#/components/schemas/StatusPagePostPutRequest' + required: + - post + example: + post: + ends_at: '2023-12-12T11:00:00.000Z' + post_type: maintenance + starts_at: '2023-12-12T11:00:00.000Z' + status_page: + id: PR5LMML + type: status_page + title: maintenance window for database upgrade + type: status_page_post + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + post: + $ref: '#/components/schemas/StatusPagePost' + examples: + response: + summary: Response Example + value: + post: + ends_at: '2023-12-12T11:00:00.000Z' + post_type: maintenance + starts_at: '2023-12-12T11:00:00.000Z' + status_page: + id: PR5LMML + type: status_page + title: maintenance window for database upgrade + type: status_page_post + updates: + - impacted_services: + - impact: + id: PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + type: status_page_service + message:

Message

+ update_frequency_ms: null + notify_subscribers: false + severity: + id: PY5OM08 + type: status_page_severity + status: + id: P0400H4 + type: status_page_status + type: status_page_post_update + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: deleteStatusPagePost + description: | + Delete a Post for a Status Page by Status Page ID and Post ID. + + Scoped OAuth requires: `status_pages.write` + summary: Delete a Status Page Post + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/posts/{post_id}/post_updates: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPagePostUpdates + description: | + List Post Updates for a Status Page by Status Page ID and Post ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Post Updates + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + - $ref: '#/components/parameters/status_page_post_update_reviewed_status' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + post_updates: + type: array + items: + $ref: '#/components/schemas/StatusPagePostUpdate' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + post_updates: + - id: PXSOCH0 + impacted_services: + - impact: + id: PY5OM08 + self: https://api.pagerduty.com/status_pages/PR5LMML/impacts/PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + self: https://api.pagerduty.com/status_pages/PR5LMML/services/PYHMEI3 + type: status_page_service + message:

We will be undergoing schedule maitenance at this date and time

+ notify_subscribers: false + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-12-12T10:08:19.000Z' + reviewed_status: approved + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/post_updates/PXSOCH0 + severity: + id: PY5OM08 + self: https://api.pagerduty.com/status_pages/PR5LMML/severities/PY5OM08 + type: status_page_severity + status: + id: P0400H4 + self: https://api.pagerduty.com/status_pages/PR5LMML/statuses/P0400H4 + type: status_page_status + type: status_page_post_update + total: 1 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: createStatusPagePostUpdate + description: | + Create a Post Update for a Post by Post ID. + + Scoped OAuth requires: `status_pages.write` + summary: Create a Status Page Post Update + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + post_update: + $ref: '#/components/schemas/StatusPagePostUpdateRequest' + required: + - post_update + example: + post_update: + impacted_services: + - impact: + id: PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + type: status_page_service + message:

Message

+ notify_subscribers: false + post: + id: P6F2CJ3 + type: status_page_post + severity: + id: PY5OM08 + type: status_page_severity + status: + id: P0400H4 + type: status_page_status + type: status_page_post_update + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + post_update: + $ref: '#/components/schemas/StatusPagePostUpdate' + example: + post_update: + id: PXSOCH0 + impacted_services: + - impact: + id: PY5OM08 + self: https://api.pagerduty.com/status_pages/PR5LMML/impacts/PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + self: https://api.pagerduty.com/status_pages/PR5LMML/services/PYHMEI3 + type: status_page_service + message:

We will be undergoing schedule maitenance at this date and time

+ notify_subscribers: false + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-12-12T10:08:19.000Z' + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/post_updates/PXSOCH0 + severity: + id: P6F2CJ4 + self: https://api.pagerduty.com/status_pages/PR5LMML/severities/P6F2CJ4 + type: status_page_severity + status: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/statuses/P6F2CJ3 + type: status_page_status + type: status_page_post_update + update_frequency_ms: 300000 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/posts/{post_id}/post_updates/{post_update_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getPostUpdate + description: | + Get a Post Update for a Post by Post ID and Post Update ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Post Update + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + - $ref: '#/components/parameters/status_page_post_update_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + post_update: + $ref: '#/components/schemas/StatusPagePostUpdate' + examples: + response: + summary: Response Example + value: + post_update: + id: PXSOCH0 + impacted_services: + - impact: + id: PY5OM08 + self: https://api.pagerduty.com/status_pages/PR5LMML/impacts/PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + self: https://api.pagerduty.com/status_pages/PR5LMML/services/PYHMEI3 + type: status_page_service + message:

We will be undergoing schedule maitenance at this date and time

+ notify_subscribers: false + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-12-12T10:08:19.000Z' + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/post_updates/PXSOCH0 + severity: + id: P6F2CJ4 + self: https://api.pagerduty.com/status_pages/PR5LMML/severities/P6F2CJ4 + type: status_page_severity + status: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/statuses/P6F2CJ3 + type: status_page_status + type: status_page_post_update + update_frequency_ms: 300000 + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: updateStatusPagePostUpdate + description: | + Update a Post Update for a Post by Post ID and Post Update ID. + + Scoped OAuth requires: `status_pages.write` + summary: Update a Status Page Post Update + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + - $ref: '#/components/parameters/status_page_post_update_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + post_update: + $ref: '#/components/schemas/StatusPagePostUpdateRequest' + required: + - post_update + example: + post_update: + impacted_services: + - impact: + id: PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + type: status_page_service + message:

Message

+ notify_subscribers: false + post: + id: P6F2CJ3 + type: status_page_post + severity: + id: PY5OM08 + type: status_page_severity + status: + id: P0400H4 + type: status_page_status + type: status_page_post_update + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + post_update: + $ref: '#/components/schemas/StatusPagePostUpdate' + examples: + response: + summary: Response Example + value: + post_update: + id: PXSOCH0 + impacted_services: + - impact: + id: PY5OM08 + self: https://api.pagerduty.com/status_pages/PR5LMML/impacts/PY5OM08 + type: status_page_impact + service: + id: PYHMEI3 + self: https://api.pagerduty.com/status_pages/PR5LMML/services/PYHMEI3 + type: status_page_service + message:

We will be undergoing schedule maitenance at this date and time

+ notify_subscribers: false + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-12-12T10:08:19.000Z' + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/post_updates/PXSOCH0 + severity: + id: P6F2CJ4 + self: https://api.pagerduty.com/status_pages/PR5LMML/severities/P6F2CJ4 + type: status_page_severity + status: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/statuses/P6F2CJ3 + type: status_page_status + type: status_page_post_update + update_frequency_ms: 300000 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: deleteStatusPagePostUpdate + description: | + Delete a Post Update for a Post by Post ID and Post Update ID. + + Scoped OAuth requires: `status_pages.write` + summary: Delete a Status Page Post Update + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + - $ref: '#/components/parameters/status_page_post_update_id' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/posts/{post_id}/postmortem: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getPostmortem + description: | + Get a Postmortem for a Post by Post ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Post Postmortem + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + postmortem: + $ref: '#/components/schemas/StatusPagePostmortem' + examples: + response: + summary: Response Example + value: + postmortem: + id: PIJ90N7 + message:

Something wrong happened and this is a postmortem.

+ notify_subscribers: true + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-09-13T10:34:04.000Z' + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/postmortem + type: status_page_post_postmortem + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: createOrUpdateStatusPagePostmortem + description: | + Create or Update a Postmortem for a Post by Post ID. + + Scoped OAuth requires: `status_pages.write` + summary: Create or Update a Post Postmortem + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + postmortem: + $ref: '#/components/schemas/StatusPagePostmortemRequest' + required: + - postmortem + example: + postmortem: + message:

Something wrong happened and this is a postmortem.

+ notify_subscribers: true + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + type: status_page_post_postmortem + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + postmortem: + $ref: '#/components/schemas/StatusPagePostmortem' + examples: + response: + summary: Response Example + value: + postmortem: + id: PIJ90N7 + message:

Something wrong happened and this is a postmortem.

+ notify_subscribers: true + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-09-13T10:34:04.000Z' + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/postmortem + type: status_page_post_postmortem + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + postmortem: + $ref: '#/components/schemas/StatusPagePostmortem' + examples: + response: + summary: Response Example + value: + postmortem: + id: PIJ90N7 + message:

Something wrong happened and this is a postmortem.

+ notify_subscribers: true + post: + id: P6F2CJ3 + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3 + type: status_page_post + reported_at: '2023-09-13T10:34:04.000Z' + self: https://api.pagerduty.com/status_pages/PR5LMML/posts/P6F2CJ3/postmortem + type: status_page_post_postmortem + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: deleteStatusPagePostmortem + description: | + Delete a Postmortem for a Post by Post ID. + + Scoped OAuth requires: `status_pages.write` + summary: Delete a Post Postmortem + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_post_id' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/subscriptions: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: listStatusPageSubscriptions + description: | + List Subscriptions for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.read` + summary: List Status Page Subscriptions + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_subscription_status' + - $ref: '#/components/parameters/status_page_subscription_channel' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + subscriptions: + type: array + items: + $ref: '#/components/schemas/StatusPageSubscription' + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + subscriptions: + - channel: email + contact: address@email.example + id: PWZ0PTR + self: https://api.pagerduty.com/status_pages/PIJ90N7/subscriptions/PWZ0PTR + status: active + status_page: + id: PIJ90N7 + type: status_page + subscribable_object: + id: PIJ90N7 + type: status_page + type: status_page_susbcription + total: 1 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: createStatusPageSubscription + description: | + Create a Subscription for a Status Page by Status Page ID. + + Scoped OAuth requires: `status_pages.write` + summary: Create a Status Page Subscription + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + subscription: + type: object + title: StatusPageSubscriptionRequest + description: Request schema for creating a StatusPageSubscription. + properties: + channel: + description: The channel of the Subscription. + enum: + - webhook + - email + nullable: false + title: SubscriptionChannel + type: string + contact: + description: The subscriber's contact - email address or webhook URL. + type: string + nullable: false + status_page: + description: Status Page + nullable: false + properties: + id: + description: The id of the status page. + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + subscribable_object: + type: object + title: SubscribableObject + description: The subscribed entity for a given subscription. + properties: + id: + description: The ID of the subscribed entity for a given subscription. + type: string + nullable: false + type: + description: The type of the subscribed entity for a given subscription. + enum: + - status_page + - status_page_service + - status_page_post + type: string + nullable: false + type: + description: A string that determines the schema of the object. + type: string + required: + - channel + - contact + - subscribable_object + - status_page + - type + required: + - subscription + example: + subscription: + channel: email + contact: joe@email.example + status_page: + id: PIJ90N7 + type: status_page + subscribable_object: + id: PSX4LJI + type: status_page_service + type: status_page_subscription + responses: + '201': + description: Created + content: + application/json: + schema: + type: object + properties: + subscription: + $ref: '#/components/schemas/StatusPageSubscription' + example: + subscription: + channel: email + contact: address@email.example + id: PWZ0PTR + self: https://api.pagerduty.com/status_pages/PIJ90N7/subscriptions/PWZ0PTR + status: active + status_page: + id: PIJ90N7 + type: status_page + subscribable_object: + id: PSX4LJI + type: status_page_service + type: status_page_subscription + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + /status_pages/{id}/subscriptions/{subscription_id}: + get: + x-pd-requires-scope: status_pages.read + tags: + - Status Pages + operationId: getStatusPageSubscription + description: | + Get a Subscription for a Status Page by Status Page ID and Subscription ID. + + Scoped OAuth requires: `status_pages.read` + summary: Get a Status Page Subscription + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_subscription_id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + subscription: + $ref: '#/components/schemas/StatusPageSubscription' + examples: + response: + summary: Response Example + value: + subscription: + channel: email + contact: address@email.example + id: PWZ0PTR + self: https://api.pagerduty.com/status_pages/PIJ90N7/subscriptions/PWZ0PTR + status: active + status_page: + id: PIJ90N7 + type: status_page + subscribable_object: + id: PSX4LJI + type: status_page_service + type: status_page_subscription + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: status_pages.write + tags: + - Status Pages + operationId: deleteStatusPageSubscription + description: | + Delete a Subscription for a Status Page by Status Page ID and Subscription ID. + + Scoped OAuth requires: `status_pages.write` + summary: Delete a Status Page Subscription + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/status_page_subscription_id' + responses: + '204': + description: No Content + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + StatusPage: + type: object + title: StatusPage + description: A Status Page with all the configuration needed to present the system status in a public or private manner. + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Status Page entry. + nullable: false + readOnly: true + name: + type: string + description: The name of a Status Page to be presented as a brand title (for example, the rendered Status Page HTML header). + nullable: false + minLength: 1 + maxLength: 125 + published_at: + type: string + description: The date time moment when a Status Page was published to be publicly available. + nullable: true + readOnly: true + format: date-time + status_page_type: + type: string + description: The type of Status Pages to retrieve - public is accessible to everyone on the internet or private requiring some sort of authentication/authorization layer. + nullable: false + enum: + - public + - private + url: + type: string + description: The URL from which the Status Page can be accessed on the internet (either customer's domain or default *.trust.pagerduty.com). + nullable: false + format: url + type: + type: string + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by _reference if the object is a reference. + StatusPageImpact: + type: object + title: StatusPageImpact + description: A StatusPageImpact resource represents a level of impact for a given Status Page Post. + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Impact entry. + nullable: false + readOnly: true + self: + type: string + description: The API resource URL of the Impact. + nullable: false + readOnly: true + description: + type: string + description: The description is a human-readable text that describes the Impact level. + nullable: false + post_type: + type: string + description: The type of the Post. + nullable: false + enum: + - incident + - maintenance + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Impact. + StatusPageService: + type: object + title: StatusPageService + description: A Service represents a PagerDuty service that is linked to a Status Page. + properties: + id: + description: An unique identifier within Status Page scope that defines a Service entry. + type: string + nullable: false + readOnly: true + self: + type: string + description: The API resource URL of the Service. + nullable: false + readOnly: true + name: + type: string + description: The name of the Service. + nullable: false + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + business_service: + description: Business Service + nullable: false + properties: + id: + description: Business Service unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + type: + type: string + description: A string that determines the schema of the object. + StatusPageSeverity: + type: object + title: StatusPageSeverity + description: A Severity represents a level of impact for a given Status Page post. + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Severity entry. + nullable: false + readOnly: true + self: + type: string + description: The API resource URL of the Severity. + nullable: false + readOnly: true + description: + type: string + description: The description is a human-readable text that describes the Severity level. + nullable: false + post_type: + type: string + description: The type of the Post. + nullable: false + enum: + - incident + - maintenance + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Severity. + StatusPageStatus: + type: object + title: StatusPageStatus + description: A Status represents a level of undergoing work and/or assessment for a given Status Page post. + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Status entry. + nullable: false + readOnly: true + self: + type: string + description: The API resource URL of the Status. + nullable: false + readOnly: true + description: + type: string + description: The description is a human-readable text that describes the Status level. + nullable: false + post_type: + type: string + description: The type of the Post. + nullable: false + enum: + - incident + - maintenance + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Status. + StatusPagePost: + type: object + title: StatusPagePost + description: A Post represents a communication resource presented in the Status Page about certain aspects of one or more services associated. + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a single Post resource. + nullable: false + readOnly: true + self: + type: string + description: The API resource URL of the Post. + nullable: false + readOnly: true + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post. + nullable: false + readOnly: true + default: status_page_post + post_type: + type: string + description: The type of the Post. + nullable: false + enum: + - incident + - maintenance + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + linked_resource: + description: Linked resource + nullable: false + properties: + id: + description: Linked resource unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + postmortem: + description: Postmortem + nullable: false + properties: + id: + description: Postmortem unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + title: + type: string + description: The title given to a Post. + nullable: false + starts_at: + type: string + description: The date and time the Post intent becomes effective - only for maintenance post type. + nullable: true + format: date-time + ends_at: + type: string + description: The date and time the Post intent is concluded - only for maintenance post type. + nullable: true + format: date-time + updates: + type: array + description: List of status_page_post_update references associated to a Post. + items: + type: object + description: Post Update associated to a given Post as a referenced or included resource + nullable: false + anyOf: + - $ref: '#/components/schemas/StatusPagePostUpdate' + minItems: 1 + maxItems: 50 + StatusPagePostPostRequest: + type: object + title: StatusPagePostRequest + description: Request schema for creating/updating a given Status Page Post resource. + properties: + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post. + nullable: false + enum: + - status_page_post + title: + type: string + description: The title given to a Post. + nullable: false + minLength: 1 + maxLength: 128 + post_type: + type: string + description: The type of the Post. + nullable: false + enum: + - incident + - maintenance + starts_at: + type: string + description: The date and time the Post intent becomes effective - only for maintenance post type. + nullable: true + format: date-time + ends_at: + type: string + description: The date and time the Post intent is concluded - only for maintenance post type. + nullable: true + format: date-time + updates: + type: array + description: Post Updates to be associated with a Post + items: + $ref: '#/components/schemas/StatusPagePostUpdateRequest' + nullable: false + minItems: 1 + maxItems: 50 + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + required: + - type + - title + - post_type + - starts_at + - ends_at + - updates + - status_page + StatusPagePostPutRequest: + type: object + title: StatusPagePostPutRequest + description: Request schema for creating a given Status Page Post resource. + properties: + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post. + nullable: false + enum: + - status_page_post + title: + type: string + description: The title given to a Post. + nullable: false + minLength: 1 + maxLength: 128 + post_type: + type: string + description: The type of the Post. + nullable: false + enum: + - incident + - maintenance + starts_at: + type: string + description: The date and time the Post intent becomes effective - only for maintenance post type. + nullable: true + format: date-time + ends_at: + type: string + description: The date and time the Post intent is concluded - only for maintenance post type. + nullable: true + format: date-time + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + required: + - type + - title + - post_type + - starts_at + - ends_at + - status_page + StatusPagePostUpdate: + type: object + title: StatusPagePostUpdate + description: An update for a Post. + properties: + id: + type: string + description: The ID of the Post Update. + nullable: false + readOnly: true + self: + type: string + description: The path to which the Post Update resource is accessible. + nullable: false + readOnly: true + post: + description: Status Page Post + nullable: false + properties: + id: + description: Status page post unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + message: + type: string + description: The message of the Post Update. + nullable: false + reviewed_status: + type: string + description: The status of the Post Updates to retrieve. + nullable: false + enum: + - approved + - not_reviewed + status: + description: Status Page Status + nullable: false + properties: + id: + description: Status page Status unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + severity: + description: Status Page Severity + nullable: false + properties: + id: + description: Status page Severity unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + impacted_services: + type: array + description: Impacted services represent the status page services affected by a post update, and its impact. + items: + type: object + title: StatusPagePostUpdateImpact + description: Status Page Post Update Impact + properties: + service: + description: Status Page Service + nullable: false + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Service entry. + nullable: false + readOnly: true + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Service. + type: object + impact: + description: Status Page Impact + nullable: false + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Status Page Impact entry. + nullable: false + readOnly: true + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Impact. + type: object + minItems: 0 + update_frequency_ms: + type: integer + description: The frequency of the next Post Update in milliseconds. + nullable: true + notify_subscribers: + type: boolean + description: Determines if the subscribers should be notified of the Post Update. + nullable: false + reported_at: + type: string + description: The date and time the Post Update was reported. + nullable: true + format: date-time + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post Update. + StatusPagePostUpdateRequest: + type: object + title: StatusPagePostUpdateRequest + description: Attributes for Post Update creation/update + properties: + self: + type: string + description: The path to which the Post Update resource is accessible. + nullable: false + readOnly: true + post: + description: Status Page Post + nullable: false + properties: + id: + description: Status page post unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + message: + type: string + description: The message of the Post Update. + nullable: false + status: + description: Status Page Status + nullable: false + properties: + id: + description: Status page Status unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + severity: + description: Status Page Severity + nullable: false + properties: + id: + description: Status page Severity unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + impacted_services: + type: array + description: Impacted services represent the status page services affected by a post update, and its impact. + items: + type: object + title: StatusPagePostUpdateImpact + description: Status Page Post Update Impact + properties: + service: + description: Status Page Service + nullable: false + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Service entry. + nullable: false + readOnly: true + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Service. + type: object + impact: + description: Status Page Impact + nullable: false + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a Status Page Impact entry. + nullable: false + readOnly: true + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Impact. + type: object + minItems: 0 + update_frequency_ms: + type: integer + description: The frequency of the next Post Update in milliseconds. + nullable: true + notify_subscribers: + type: boolean + description: Determines if the subscribers should be notified of the Post Update. + nullable: false + reported_at: + type: string + description: The date and time the Post Update was reported. + nullable: true + format: date-time + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post Update. + required: + - type + - message + - status + - severity + - update_frequency_ms + - notify_subscribers + - impacted_services + - post + StatusPagePostmortem: + type: object + title: StatusPagePostmortem + description: A Postmortem represents a communication resource presented in the Status Page about follow-up made to a certain Post. + properties: + id: + type: string + description: An unique identifier within Status Page scope that defines a single Postmortem resource. + nullable: false + readOnly: true + self: + type: string + description: The API resource URL of the Postmortem. + nullable: false + readOnly: true + post: + description: Status Page Post + nullable: false + properties: + id: + description: The id of the status page post. + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + message: + type: string + description: The message of the Postmortem (supports Rich-Text). + nullable: false + maxLength: 10000 + notify_subscribers: + type: boolean + description: Whether or not subscribers of the Status Page should be notified about the Postmortem. + nullable: false + reported_at: + type: string + description: The date and time the Postmortem was reported. + nullable: false + format: date-time + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post Postmortem. + StatusPagePostmortemRequest: + type: object + title: PostmortemRequest + description: Request to create/update a given Postmortem resource. + properties: + type: + type: string + description: The type of the object returned by the API - in this case, a Status Page Post Postmortem. + nullable: false + readOnly: true + enum: + - status_page_post_postmortem + default: status_page_post_postmortem + post: + description: Status Page Post + nullable: false + properties: + id: + description: Status page post unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + message: + type: string + description: The message of the Postmortem (supports Rich-Text). + nullable: false + maxLength: 10000 + notify_subscribers: + type: boolean + description: Whether or not subscribers of the Status Page should be notified about the Postmortem. + nullable: false + required: + - type + - message + - post + - notify_subscribers + StatusPageSubscription: + type: object + title: StatusPageSubscription + description: A StatusPageSubscription resource represents a subscription to a specific status page entity. + properties: + channel: + description: The channel of the subscription. + enum: + - webhook + - email + - slack + nullable: false + title: SubscriptionChannel + type: string + contact: + description: The subscriber's contact - email address, webhook URL, etc... + type: string + id: + description: The ID of the Subscription. + type: string + self: + description: The path in which the Subscription resource is accessible. + type: string + status: + description: The status of the Subscription. + enum: + - active + - pending + - suspended + nullable: false + title: SubscriptionStatus + type: string + status_page: + description: Status Page + nullable: false + properties: + id: + description: Status page unique identifier + type: string + type: + description: A string that determines the schema of the object. + type: string + required: + - id + type: object + subscribable_object: + description: The subscribed entity for a given subscription. + properties: + id: + description: The ID of the subscribed entity. + type: string + type: + description: The type of the subscribed entity. + enum: + - status_page + - status_page_service + - status_page_post + type: string + title: SubscribableObject + type: object + type: + description: A string that determines the schema of the object. + type: string + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + status_page_type: + name: status_page_type + description: The type of the Status Page. + in: query + required: false + schema: + enum: + - public + - private + nullable: false + type: string + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + status_page_impact_post_type: + name: post_type + description: Filter by Post type. + in: query + required: false + schema: + enum: + - incident + - maintenance + nullable: false + type: string + status_page_impact_id: + name: impact_id + description: The ID of the Status Page Impact. + in: path + required: true + schema: + type: string + status_page_service_id: + name: service_id + description: The ID of the Status Page service. + in: path + required: true + schema: + type: string + status_page_severity_post_type: + name: post_type + description: Filter by Post type. + in: query + required: false + schema: + enum: + - incident + - maintenance + nullable: false + type: string + status_page_severity_id: + name: severity_id + description: The ID of the Status Page severity. + in: path + required: true + schema: + type: string + status_page_status_post_type: + name: post_type + description: Filter by Post type. + in: query + required: false + schema: + enum: + - incident + - maintenance + nullable: false + type: string + status_page_status_id: + name: status_id + description: The ID of the Status Page status. + in: path + required: true + schema: + type: string + status_page_post_type: + name: post_type + description: Filter by Post type. + in: query + required: false + schema: + enum: + - incident + - maintenance + nullable: false + type: string + status_page_post_reviewed_status: + name: reviewed_status + description: Filter by the reviewed status of the Post to retrieve. + in: query + required: false + schema: + enum: + - approved + - not_reviewed + nullable: false + type: string + status_page_post_status: + name: status[] + description: Filter by an array of Status identifiers. + in: query + required: false + schema: + type: array + items: + type: string + uniqueItems: true + status_page_post_id: + name: post_id + description: The ID of the Status Page Post. + in: path + required: true + schema: + type: string + status_page_post_include: + name: include[] + description: Array of additional Models to include in response. + in: query + required: false + schema: + items: + enum: + - status_page_post_update + nullable: false + type: string + nullable: false + type: array + status_page_post_update_reviewed_status: + name: reviewed_status + description: Filter by the reviewed status of the Post Update to retrieve. + in: query + required: false + schema: + enum: + - approved + - not_reviewed + nullable: false + type: string + status_page_post_update_id: + name: post_update_id + description: The ID of the Status Page Post Update. + in: path + required: true + schema: + type: string + status_page_subscription_status: + name: status + description: Filter by Subscription status. + in: query + required: false + schema: + enum: + - active + - pending + nullable: false + type: string + status_page_subscription_channel: + name: channel + description: Filter by Subscription channel. + in: query + required: false + schema: + enum: + - webhook + - email + - slack + nullable: false + type: string + status_page_subscription_id: + name: subscription_id + description: The ID of the Status Page subscription. + in: path + required: true + schema: + type: string + x-stackQL-resources: + status_pages: + id: pagerduty.status_pages.status_pages + name: status_pages + title: Status Pages + methods: + list: + operation: + $ref: '#/paths/~1status_pages/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.status_pages + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/status_pages/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + impacts: + id: pagerduty.status_pages.impacts + name: impacts + title: Impacts + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1impacts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.impacts + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1impacts~1{impact_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.impact + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/impacts/methods/get' + - $ref: '#/components/x-stackQL-resources/impacts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + services: + id: pagerduty.status_pages.services + name: services + title: Services + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1services/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.services + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1services~1{service_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.service + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/services/methods/get' + - $ref: '#/components/x-stackQL-resources/services/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + severities: + id: pagerduty.status_pages.severities + name: severities + title: Severities + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1severities/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.severities + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1severities~1{severity_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.severity + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/severities/methods/get' + - $ref: '#/components/x-stackQL-resources/severities/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + statuses: + id: pagerduty.status_pages.statuses + name: statuses + title: Statuses + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1statuses/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.statuses + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1statuses~1{status_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.status + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/statuses/methods/get' + - $ref: '#/components/x-stackQL-resources/statuses/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + posts: + id: pagerduty.status_pages.posts + name: posts + title: Posts + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.posts + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.post + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/posts/methods/get' + - $ref: '#/components/x-stackQL-resources/posts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/posts/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/posts/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/posts/methods/delete' + replace: [] + post_updates: + id: pagerduty.status_pages.post_updates + name: post_updates + title: Post Updates + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1post_updates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.post_updates + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1post_updates/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1post_updates~1{post_update_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.post_update + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1post_updates~1{post_update_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1post_updates~1{post_update_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/post_updates/methods/get' + - $ref: '#/components/x-stackQL-resources/post_updates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/post_updates/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/post_updates/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/post_updates/methods/delete' + replace: [] + postmortems: + id: pagerduty.status_pages.postmortems + name: postmortems + title: Postmortems + methods: + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1postmortem/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.postmortem + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1postmortem/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1status_pages~1{id}~1posts~1{post_id}~1postmortem/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/postmortems/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/postmortems/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/postmortems/methods/delete' + replace: [] + subscriptions: + id: pagerduty.status_pages.subscriptions + name: subscriptions + title: Subscriptions + methods: + list: + operation: + $ref: '#/paths/~1status_pages~1{id}~1subscriptions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.subscriptions + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1status_pages~1{id}~1subscriptions/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1status_pages~1{id}~1subscriptions~1{subscription_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.subscription + delete: + operation: + $ref: '#/paths/~1status_pages~1{id}~1subscriptions~1{subscription_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/subscriptions/methods/get' + - $ref: '#/components/x-stackQL-resources/subscriptions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/subscriptions/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/subscriptions/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/tags.yaml b/providers/src/pagerduty/v00.00.00000/services/tags.yaml index d55adcfd..fa4c99b8 100644 --- a/providers/src/pagerduty/v00.00.00000/services/tags.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/tags.yaml @@ -1,2847 +1,212 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Tags + description: Tags and the entities they are applied to. version: 2.0.0 - title: PagerDuty API - tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - EntityReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - - team_reference - - escalation_policy_reference - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: +paths: + /{entity_type}/{id}/change_tags: + post: + x-pd-requires-scope: tags.write + tags: + - Tags + operationId: createEntityTypeByIdChangeTags + description: | + Assign existing or new tags. + + A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `tags.write` + summary: Assign tags + parameters: + - $ref: '#/components/parameters/entity_type' + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + description: Tags to add to or remove from the entity. + properties: + add: + type: array + description: | + Array of tags and/or tag references to add to the entity. + For elements with type `tag_reference`, the tag with the corresponding `id` is added to the entity. + For elements with type `tag`, if there is an existing tag with the given + label that tag is added to the entity. If there is no existing tag with that label and the user has permission + to create tags, a new tag is created with that label and assigned to the entity. + items: + title: Tags to add + type: object + properties: + type: + type: string + enum: + - tag + - tag_reference + label: + type: string + description: The label of the tag. Should be used when type is "tag". + maxLength: 191 + id: + type: string + description: The id of the tag. Should be used when type is "tag_reference". + readOnly: true + required: + - type + remove: + type: array + description: Array of tag references to remove from the entity. + items: + title: Tags to remove. + type: object + properties: + type: + type: string + enum: + - tag_reference + id: + type: string + description: The id of the tag + readOnly: true + required: + - type + - id + examples: + tags: + summary: Request Example + value: + add: + - type: tag + label: Batman + - type: tag_reference + id: P5IYCNZ + remove: + - type: tag_reference + id: POE7RY8 + - type: tag_reference + id: PG68P1M + responses: + '200': + description: The tags were added and/or removed. + content: + application/json: + schema: + type: string + description: (opaque JSON object) + examples: + response: + summary: Request Example + value: + add: + - type: tag + label: Batman + - type: tag_reference + id: P5IYCNZ + remove: + - type: tag_reference + id: POE7RY8 + - type: tag_reference + id: PG68P1M + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /{entity_type}/{id}/tags: + get: + x-pd-requires-scope: tags.read + tags: + - Tags + operationId: getEntityTypeByIdTags + description: | + Get related tags for Users, Teams or Escalation Policies. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false + Scoped OAuth requires: `tags.read` + summary: Get tags for entities + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/entity_type' + - $ref: '#/components/parameters/id' + responses: + '200': + description: An array of tags. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + tags: + type: array + items: + $ref: '#/components/schemas/Tag' + required: + - tags + examples: + response: + summary: Response Example + value: + tags: + - type: tag + summary: Batman + self: https://api.pagerduty.com/tags/P5IYCNZ + label: Batman + id: P5IYCNZ + html_url: null + limit: 100 + offset: 0 + total: 1 + more: false + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /tags: + get: + x-pd-requires-scope: tags.read + tags: + - Tags + operationId: listTags description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - tags: - id: pagerduty.tags.tags - name: tags - title: Tags - methods: - create_entity_type_by_id_change_tags: - operation: - $ref: '#/paths/~1{entity_type}~1{id}~1change_tags/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_entity_type_by_id_tags: - operation: - $ref: '#/paths/~1{entity_type}~1{id}~1tags/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.tags - _get_entity_type_by_id_tags: - operation: - $ref: '#/paths/~1{entity_type}~1{id}~1tags/get' - response: - mediaType: application/json - openAPIDocKey: '200' - list_tags: - operation: - $ref: '#/paths/~1tags/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.tags - _list_tags: - operation: - $ref: '#/paths/~1tags/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_tags: - operation: - $ref: '#/paths/~1tags/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_tag: - operation: - $ref: '#/paths/~1tags~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.tag - _get_tag: - operation: - $ref: '#/paths/~1tags~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_tag: - operation: - $ref: '#/paths/~1tags~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - get_tags_by_entity_type: - operation: - $ref: '#/paths/~1tags~1{id}~1{entity_type}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.type - _get_tags_by_entity_type: - operation: - $ref: '#/paths/~1tags~1{id}~1{entity_type}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/tags/methods/get_entity_type_by_id_tags' - - $ref: '#/components/x-stackQL-resources/tags/methods/get_tags_by_entity_type' - - $ref: '#/components/x-stackQL-resources/tags/methods/get_tag' - - $ref: '#/components/x-stackQL-resources/tags/methods/list_tags' - insert: - - $ref: '#/components/x-stackQL-resources/tags/methods/create_entity_type_by_id_change_tags' - - $ref: '#/components/x-stackQL-resources/tags/methods/create_tags' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/tags/methods/delete_tag' -paths: - '/{entity_type}/{id}/change_tags': - post: - x-pd-requires-scope: tags.write - tags: - - Tags - operationId: createEntityTypeByIdChangeTags - description: | - Assign existing or new tags. - - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) - - Scoped OAuth requires: `tags.write` - summary: Assign tags - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/entity_type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - description: Tags to add to or remove from the entity. - properties: - add: - type: array - description: | - Array of tags and/or tag references to add to the entity. - For elements with type `tag_reference`, the tag with the corresponding `id` is added to the entity. - For elements with type `tag`, if there is an existing tag with the given - label that tag is added to the entity. If there is no existing tag with that label and the user has permission - to create tags, a new tag is created with that label and assigned to the entity. - items: - title: Tags to add - type: object - properties: - type: - type: string - enum: - - tag - - tag_reference - label: - type: string - description: The label of the tag. Should be used when type is "tag". - maxLength: 191 - id: - type: string - description: The id of the tag. Should be used when type is "tag_reference". - readOnly: true - required: - - type - remove: - type: array - description: Array of tag references to remove from the entity. - items: - title: Tags to remove. - type: object - properties: - type: - type: string - enum: - - tag_reference - id: - type: string - description: The id of the tag - readOnly: true - required: - - type - - id - examples: - tags: - summary: Request Example - value: - add: - - type: tag - label: Batman - - type: tag_reference - id: P5IYCNZ - remove: - - type: tag_reference - id: POE7RY8 - - type: tag_reference - id: PG68P1M - responses: - '200': - description: The tags were added and/or removed. - content: - application/json: - schema: - type: object - examples: - response: - summary: Request Example - value: - add: - - type: tag - label: Batman - - type: tag_reference - id: P5IYCNZ - remove: - - type: tag_reference - id: POE7RY8 - - type: tag_reference - id: PG68P1M - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/{entity_type}/{id}/tags': - get: - x-pd-requires-scope: tags.read - tags: - - Tags - operationId: getEntityTypeByIdTags - description: | - Get related tags for Users, Teams or Escalation Policies. - - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) - - Scoped OAuth requires: `tags.read` - summary: Get tags for entities - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/entity_type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: An array of tags. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - tags: - type: array - items: - $ref: '#/components/schemas/Tag' - required: - - tags - examples: - response: - summary: Response Example - value: - tags: - - type: tag - summary: Batman - self: 'https://api.pagerduty.com/tags/P5IYCNZ' - label: Batman - id: P5IYCNZ - html_url: null - limit: 100 - offset: 0 - total: 1 - more: false - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - /tags: - get: - x-pd-requires-scope: tags.read - tags: - - Tags - operationId: listTags - description: | - List all of your account's tags. + List all of your account's tags. A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) Scoped OAuth requires: `tags.read` summary: List tags parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/offset_limit' - $ref: '#/components/parameters/offset_offset' - $ref: '#/components/parameters/offset_total' @@ -2852,16 +217,31 @@ paths: content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - tags: - type: array - items: - $ref: '#/components/schemas/Tag' - required: - - tags + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + tags: + type: array + items: + $ref: '#/components/schemas/Tag' + required: + - tags examples: response: summary: Response Example @@ -2869,7 +249,7 @@ paths: tags: - type: tag summary: Batman - self: 'https://api.pagerduty.com/tags/P5IYCNZ' + self: https://api.pagerduty.com/tags/P5IYCNZ label: Batman id: P5IYCNZ html_url: null @@ -2893,13 +273,11 @@ paths: A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) Scoped OAuth requires: `tags.write` summary: Create a tag - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + parameters: [] requestBody: content: application/json: @@ -2918,8 +296,56 @@ paths: type: tag label: Batman responses: - '201': - description: The tag that was created. + '201': + description: The tag that was created. + content: + application/json: + schema: + type: object + properties: + tag: + $ref: '#/components/schemas/Tag' + required: + - tag + examples: + response: + summary: Response Example + value: + tag: + type: tag + summary: Batman + self: https://api.pagerduty.com/tags/P5IYCNZ + label: Batman + id: P5IYCNZ + html_url: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + /tags/{id}: + get: + x-pd-requires-scope: tags.read + tags: + - Tags + operationId: getTag + description: | + Get details about an existing Tag. + + A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) + + Scoped OAuth requires: `tags.read` + summary: Get a tag + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The tag requested. content: application/json: schema: @@ -2936,156 +362,571 @@ paths: tag: type: tag summary: Batman - self: 'https://api.pagerduty.com/tags/P5IYCNZ' + self: https://api.pagerduty.com/tags/P5IYCNZ label: Batman id: P5IYCNZ html_url: null - '400': - $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: tags.write + tags: + - Tags + operationId: deleteTag + description: | + Remove an existing Tag. + + A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) + + Scoped OAuth requires: `tags.write` + summary: Delete a tag + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The tag was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' - '/tags/{id}': + /tags/{id}/{entity_type}: get: x-pd-requires-scope: tags.read tags: - Tags - operationId: getTag + operationId: getTagsByEntityType description: | - Get details about an existing Tag. + Get related Users, Teams or Escalation Policies for the Tag. A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#tags) Scoped OAuth requires: `tags.read` - summary: Get a tag + summary: Get connected entities parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/entity_type' responses: '200': - description: The tag requested. + description: An array of connected entities. content: application/json: schema: type: object properties: - tag: - $ref: '#/components/schemas/Tag' - required: - - tag - examples: - response: - summary: Response Example - value: - tag: - type: tag - summary: Batman - self: 'https://api.pagerduty.com/tags/P5IYCNZ' - label: Batman - id: P5IYCNZ - html_url: null - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: tags.write - tags: - - Tags - operationId: deleteTag - description: | - Remove an existing Tag. - - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) - - Scoped OAuth requires: `tags.write` - summary: Delete a tag - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The tag was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/tags/{id}/{entity_type}': - get: - x-pd-requires-scope: tags.read - tags: - - Tags - operationId: getTagsByEntityType + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + users: + type: array + items: + $ref: '#/components/schemas/EntityReference' + teams: + type: array + items: + $ref: '#/components/schemas/EntityReference' + escalation_policies: + type: array + items: + $ref: '#/components/schemas/EntityReference' + examples: + response: + summary: Response Example + value: + users: + - id: PXPGF42 + type: user_reference + - id: PAM4FGS + type: user_reference + limit: 100 + offset: 0 + total: 2 + more: false + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + EntityReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + entity_type: + name: entity_type + in: path + description: Type of entity related with the tag + required: true + schema: + type: string + enum: + - users + - teams + - escalation_policies + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Get related Users, Teams or Escalation Policies for the Tag. - - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#tags) + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `tags.read` - summary: Get connected entities - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/entity_type' - responses: - '200': - description: An array of connected entities. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - users: - type: array - items: - $ref: '#/components/schemas/EntityReference' - teams: - type: array - items: - $ref: '#/components/schemas/EntityReference' - escalation_policies: - type: array - items: - $ref: '#/components/schemas/EntityReference' - examples: - response: - summary: Response Example - value: - users: - - id: PXPGF42 - type: user_reference - - id: PAM4FGS - type: user_reference - limit: 100 - offset: 0 - total: 2 - more: false - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + tag_query: + name: query + in: query + description: Filters the result, showing only the tags whose label matches the query. + required: false + schema: + type: string + x-stackQL-resources: + entity_tags: + id: pagerduty.tags.entity_tags + name: entity_tags + title: Entity Tags + methods: + change_tags: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1{entity_type}~1{id}~1change_tags/post' + response: + mediaType: application/json + openAPIDocKey: '200' + list: + operation: + $ref: '#/paths/~1{entity_type}~1{id}~1tags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tags + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/entity_tags/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + tags: + id: pagerduty.tags.tags + name: tags + title: Tags + methods: + list: + operation: + $ref: '#/paths/~1tags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tags + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1tags/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1tags~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tag + delete: + operation: + $ref: '#/paths/~1tags~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tags/methods/get' + - $ref: '#/components/x-stackQL-resources/tags/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/tags/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/tags/methods/delete' + replace: [] + tagged_entities: + id: pagerduty.tags.tagged_entities + name: tagged_entities + title: Tagged Entities + methods: + list: + operation: + $ref: '#/paths/~1tags~1{id}~1{entity_type}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tagged_entities/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/teams.yaml b/providers/src/pagerduty/v00.00.00000/services/teams.yaml index 45cd6a08..b9fcba6e 100644 --- a/providers/src/pagerduty/v00.00.00000/services/teams.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/teams.yaml @@ -1,3196 +1,496 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Teams + description: Teams, their members, escalation policies, notification subscriptions and audit records. version: 2.0.0 - title: PagerDuty API - teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Team: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - type: - type: string - description: The type of object being created. - default: team - enum: +paths: + /teams: + post: + x-pd-requires-scope: teams.write + tags: + - Teams + operationId: createTeam + description: | + Create a new Team. + + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) + + Scoped OAuth requires: `teams.write` + summary: Create a team + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + team: + $ref: '#/components/schemas/Team' + required: - team - name: - type: string - description: The name of the team. - maxLength: 100 - description: - type: string - description: The description of the team. - maxLength: 1024 - parent: - $ref: '#/components/schemas/TeamReference' - required: - - name - - type - example: - type: team - name: Engineering - description: The engineering team - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - AuditRecordResponseSchema: - allOf: - - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/AuditRecord' - response_metadata: - nullable: true - anyOf: - - $ref: '#/components/schemas/AuditMetadata' - required: - - records - - $ref: '#/components/schemas/CursorPagination' - AuditRecord: - type: object - readOnly: true - description: An Audit Trail record - properties: - id: - type: string - self: - type: string - nullable: true - description: Record URL. - execution_time: - type: string - format: date-time - description: 'The date/time the action executed, in ISO8601 format and millisecond precision.' - execution_context: - type: object - description: Action execution context - properties: - request_id: - type: string - nullable: true - description: Request Id - remote_address: - type: string - nullable: true - description: remote address - nullable: true - actors: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - method: - type: object - description: The method information - properties: - description: - type: string - nullable: true - truncated_token: - description: Truncated token containing the last 4 chars of the token's actual value. - type: string - nullable: true - example: 3xyz - type: - $ref: '#/components/parameters/audit_method_type/schema' - required: - - type - root_resource: - $ref: '#/components/schemas/Reference' - action: - type: string - example: create - details: - type: object - nullable: true - description: | - Additional details to provide further information about the action or - the resource that has been audited. - properties: - resource: - $ref: '#/components/schemas/Reference' - fields: - description: | - A set of fields that have been affected. - The fields that have not been affected MAY be returned. - type: array - nullable: true - items: + examples: + request: + summary: Request Example + value: + team: + type: team + name: Engineering + description: The engineering team + description: The team to be created. + responses: + '201': + description: The team that was created. + content: + application/json: + schema: type: object - description: | - Information about the affected field. - When available, field's before and after values are returned: - - #### Resource creation - - `value` MAY be returned + properties: + team: + $ref: '#/components/schemas/Team' + required: + - team + examples: + response: + summary: Response Example + value: + team: + id: PQ9K7I8 + type: team + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + name: Engineering + description: All engineering + default_role: manager + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + get: + x-pd-requires-scope: teams.read + tags: + - Teams + operationId: listTeams + description: | + List teams of your PagerDuty account, optionally filtered by a search query. - #### Resource update - - `value` MAY be returned - - `before_value` MAY be returned + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - #### Resource deletion - - `before_value` MAY be returned + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) + + Scoped OAuth requires: `teams.read` + summary: List teams + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/query' + responses: + '200': + description: A paginated array of teams. + content: + application/json: + schema: + type: object properties: - name: - type: string - description: Name of the resource field - example: name - description: - type: string + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. nullable: true - description: Human readable description of the resource field - example: First and Last name + readOnly: true + teams: + type: array + items: + $ref: '#/components/schemas/Team' + required: + - teams + examples: + response: + summary: Response Example value: - type: string - nullable: true - description: new or updated value of the field - example: Jonathan - before_value: - type: string - nullable: true - description: previous or deleted value of the field - example: John + teams: + - id: PQ9K7I8 + type: team + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + name: Engineering + description: All engineering + limit: 100 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List or create teams. + /teams/{id}: + get: + x-pd-requires-scope: teams.read + tags: + - Teams + operationId: getTeam + description: | + Get details about an existing team. + + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) + + Scoped OAuth requires: `teams.read` + summary: Get a team + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_teams' + responses: + '200': + description: The team requested. + content: + application/json: + schema: + type: object + properties: + team: + $ref: '#/components/schemas/Team' required: - - name - references: - description: A set of references that have been affected. - type: array - nullable: true - items: + - team + examples: + response: + summary: Response Example + value: + team: + id: PQ9K7I8 + type: team + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + name: Engineering + description: All engineering + default_role: manager + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: teams.write + tags: + - Teams + operationId: deleteTeam + description: | + Remove an existing team. + + Succeeds only if the team has no associated Escalation Policies, Services, Schedules and Subteams. + + All associated unresovled incidents will be reassigned to another team (if specified) or will loose team association, thus becoming account-level (with visibility implications). + + Note that the incidents reassignment process is asynchronous and has no guarantee to complete before the API call return. + + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) + + Scoped OAuth requires: `teams.write` + summary: Delete a team + parameters: + - $ref: '#/components/parameters/reassignment_team' + - $ref: '#/components/parameters/id' + responses: + '204': + description: The team was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: teams.write + tags: + - Teams + operationId: updateTeam + description: | + Update an existing team. + + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) + + Scoped OAuth requires: `teams.write` + summary: Update a team + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + team: + $ref: '#/components/schemas/Team' + required: + - team + examples: + request: + summary: Request Example + value: + team: + type: team + name: Engineering + description: The engineering team + description: The team to be updated. + responses: + '200': + description: The team that was updated. + content: + application/json: + schema: type: object properties: - name: - type: string - description: Name of the reference field - example: team_members - description: - type: string - nullable: true - description: Human readable description of the references field - example: First and Last name - added: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - removed: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' + team: + $ref: '#/components/schemas/Team' required: - - name - required: - - resource - required: - - id - - execution_time - - method - - root_resource - - action - AuditMetadata: - type: object - properties: - messages: - type: array - nullable: true - items: - type: string - example: Message about the result - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - NotificationSubscription: - title: NotificationSubscription - description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable. - type: object - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - description: The type of the entity being subscribed - enum: - - user - - team - subscribable_id: - type: string - description: The ID of the entity being subscribed to - subscribable_type: - type: string - description: The type of the entity being subscribed to - enum: - - incident - - business_service - account_id: - type: string - description: The ID of the account belonging to the subscriber entity - x-examples: - example-1: - subscriber_id: string - subscriber_type: user - subscribable_id: string - subscribable_type: incident - account_id: string - NotificationSubscriptionWithContext: - title: NotificationSubscriptionWithContext - type: object - description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. - x-examples: - example-1: - subscriber_id: string - subscriber_type: user - subscribable_id: string - subscribable_type: incident - account_id: string - result: success - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - enum: - - user - - team - description: The type of the entity being subscribed - subscribable_id: - type: string - description: The ID of the entity being subscribed to - subscribable_type: - type: string - enum: - - incident - - business_service - description: The type of the entity being subscribed to - account_id: - type: string - description: The type of the entity being subscribed to - result: - type: string - enum: - - success - - duplicate - - unauthorized - description: The resulting status of the subscription - NotificationSubscribable: - title: NotificationSubscribable - description: A reference of a subscribable entity. - type: object - properties: - subscribable_id: - type: string - description: The ID of the entity to subscribe to - subscribable_type: - type: string - description: The type of the entity being subscribed to - enum: - - incident - - business_service - example: - subscribable_id: PD1234 - subscribable_type: incident - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: + - team + examples: + response: + summary: Response Example + value: + team: + id: PQ9K7I8 + type: team + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + name: Engineering + description: All engineering + default_role: manager + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage a team. + /teams/{id}/audit/records: + get: + x-pd-requires-scope: audit_records.read + tags: + - Teams + operationId: listTeamsAuditRecords + summary: List audit records for a team + description: | + The returned records are sorted by the `execution_time` from newest to oldest. - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordTeamResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records of changes made to the team. + /teams/{id}/escalation_policies/{escalation_policy_id}: + delete: + tags: + - Teams + x-pd-requires-scope: teams.write + operationId: deleteTeamEscalationPolicy + description: | + Remove an escalation policy from a team. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id + Scoped OAuth requires: `teams.write` + summary: Remove an escalation policy from a team + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/team_escalation_policy_id' + responses: + '204': + description: The escalation policy was removed from the team. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + tags: + - Teams + x-pd-requires-scope: teams.write + operationId: updateTeamEscalationPolicy description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Add an escalation policy to a team. + + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) + + Scoped OAuth requires: `teams.write` + summary: Add an escalation policy to a team + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/team_escalation_policy_id' + responses: + '204': + description: The escalation policy was added to the team. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage an escalation policy for a team. + /teams/{id}/members: + get: + x-pd-requires-scope: teams.read + tags: + - Teams + operationId: listTeamUsers description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Get information about members on a team. + A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - UnprocessableEntity: - description: Unprocessable Entity. Some arguments failed validation checks. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - teams: - id: pagerduty.teams.teams - name: teams - title: Teams - methods: - create_team: - operation: - $ref: '#/paths/~1teams/post' - response: - mediaType: application/json - openAPIDocKey: '201' - list_teams: - operation: - $ref: '#/paths/~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.teams - _list_teams: - operation: - $ref: '#/paths/~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_team: - operation: - $ref: '#/paths/~1teams~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.team - _get_team: - operation: - $ref: '#/paths/~1teams~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_team: - operation: - $ref: '#/paths/~1teams~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_team: - operation: - $ref: '#/paths/~1teams~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/teams/methods/get_team' - - $ref: '#/components/x-stackQL-resources/teams/methods/list_teams' - insert: - - $ref: '#/components/x-stackQL-resources/teams/methods/create_team' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/teams/methods/delete_team' - audit_records: - id: pagerduty.teams.audit_records - name: audit_records - title: Audit Records - methods: - list_teams_audit_records: - operation: - $ref: '#/paths/~1teams~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.records - _list_teams_audit_records: - operation: - $ref: '#/paths/~1teams~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/audit_records/methods/list_teams_audit_records' - insert: [] - update: [] - delete: [] - escalation_policies: - id: pagerduty.teams.escalation_policies - name: escalation_policies - title: Escalation Policies - methods: - delete_team_escalation_policy: - operation: - $ref: '#/paths/~1teams~1{id}~1escalation_policies~1{escalation_policy_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_team_escalation_policy: - operation: - $ref: '#/paths/~1teams~1{id}~1escalation_policies~1{escalation_policy_id}/put' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/delete_team_escalation_policy' - members: - id: pagerduty.teams.members - name: members - title: Members - methods: - list_team_users: - operation: - $ref: '#/paths/~1teams~1{id}~1members/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.members - _list_team_users: - operation: - $ref: '#/paths/~1teams~1{id}~1members/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_team_user: - operation: - $ref: '#/paths/~1teams~1{id}~1users~1{user_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_team_user: - operation: - $ref: '#/paths/~1teams~1{id}~1users~1{user_id}/put' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/members/methods/list_team_users' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/members/methods/delete_team_user' - notification_subscriptions: - id: pagerduty.teams.notification_subscriptions - name: notification_subscriptions - title: Notification Subscriptions - methods: - get_team_notification_subscriptions: - operation: - $ref: '#/paths/~1teams~1{id}~1notification_subscriptions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.subscriptions - _get_team_notification_subscriptions: - operation: - $ref: '#/paths/~1teams~1{id}~1notification_subscriptions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_team_notification_subscriptions: - operation: - $ref: '#/paths/~1teams~1{id}~1notification_subscriptions/post' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_team_notification_subscriptions: - operation: - $ref: '#/paths/~1teams~1{id}~1notification_subscriptions~1unsubscribe/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/get_team_notification_subscriptions' - insert: - - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/create_team_notification_subscriptions' - update: [] - delete: [] -paths: - /teams: - post: - x-pd-requires-scope: teams.write - tags: - - Teams - operationId: createTeam - description: | - Create a new Team. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) - - Scoped OAuth requires: `teams.write` - summary: Create a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - requestBody: - content: - application/json: - schema: - type: object - properties: - team: - $ref: '#/components/schemas/Team' - required: - - team - examples: - request: - summary: Request Example - value: - team: - type: team - name: Engineering - description: The engineering team - description: The team to be created. - responses: - '201': - description: The team that was created. - content: - application/json: - schema: - type: object - properties: - team: - $ref: '#/components/schemas/Team' - required: - - team - examples: - response: - summary: Response Example - value: - team: - id: PQ9K7I8 - type: team - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - name: Engineering - description: All engineering - base_role: observer - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - get: - x-pd-requires-scope: teams.read - tags: - - Teams - operationId: listTeams - description: | - List teams of your PagerDuty account, optionally filtered by a search query. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) Scoped OAuth requires: `teams.read` - summary: List teams + summary: List members of a team parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/offset_limit' - $ref: '#/components/parameters/offset_offset' - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_teams_members' responses: '200': - description: A paginated array of teams. + description: A paginated array of users within the requested team. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - teams: - type: array - items: - $ref: '#/components/schemas/Team' - required: - - teams + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + members: + type: array + uniqueItems: false + items: + type: object + properties: + user: + $ref: '#/components/schemas/UserReference' + role: + type: string examples: response: summary: Response Example value: - teams: - - id: PQ9K7I8 - type: team - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - name: Engineering - description: All engineering + members: + - user: + id: P0XJYI9 + type: user_reference + summary: Jane Doe + self: https://api.pagerduty.com/users/P0XJYI9 + html_url: https://subdomain.pagerduty.com/users/P0XJYI9 + role: manager limit: 100 offset: 0 more: false @@ -3199,122 +499,154 @@ paths: $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/teams/{id}': + description: List information about members within a team. + /teams/{id}/notification_subscriptions: get: - x-pd-requires-scope: teams.read + x-pd-requires-scope: subscribers.read + summary: List Team Notification Subscriptions tags: - Teams - operationId: getTeam + operationId: getTeamNotificationSubscriptions description: | - Get details about an existing team. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. + Retrieve a list of Notification Subscriptions the given Team has. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) + + > Teams must be added through `POST /teams/{id}/notification_subscriptions` to be returned from this endpoint. - Scoped OAuth requires: `teams.read` - summary: Get a team + Scoped OAuth requires: `subscribers.read` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_teams' responses: '200': - description: The team requested. + description: OK content: application/json: schema: type: object properties: - team: - $ref: '#/components/schemas/Team' + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + subscriptions: + type: array + items: + type: object + properties: + subscription: + $ref: '#/components/schemas/NotificationSubscription' + subscribable_name: + type: string + nullable: true + description: The name of the subscribable required: - - team + - subscriptions examples: response: summary: Response Example value: - team: - id: PQ9K7I8 - type: team - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - name: Engineering - description: All engineering - default_role: observer - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: teams.write - tags: - - Teams - operationId: deleteTeam - description: | - Remove an existing team. - - Succeeds only if the team has no associated Escalation Policies, Services, Schedules and Subteams. - - All associated unresovled incidents will be reassigned to another team (if specified) or will loose team association, thus becoming account-level (with visibility implications). - - Note that the incidents reassignment process is asynchronous and has no guarantee to complete before the API call return. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) - - Scoped OAuth requires: `teams.write` - summary: Delete a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/reassignment_team' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The team was deleted successfully. + subscriptions: + - subscription: + subscriber_id: PD1234 + subscriber_type: team + subscribable_id: PD1234 + subscribable_type: incident + subscribable_name: null + account_id: PD1234 + - subscription: + subscriber_id: PD1234 + subscriber_type: team + subscribable_id: PD1234 + subscribable_type: business_service + subscribable_name: Online Payment + account_id: PD1234 + limit: 2 + offset: 0 + total: 1000 + more: true + '400': + $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: teams.write + post: + x-pd-requires-scope: subscribers.write + summary: Create Team Notification Subscriptions tags: - Teams - operationId: updateTeam + operationId: createTeamNotificationSubscriptions + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + subscriptions: + type: array + items: + $ref: '#/components/schemas/NotificationSubscriptionWithContext' + examples: + response: + summary: Response Example + value: + subscriptions: + - account_id: PD1234 + subscribable_id: PD1234 + subscribable_type: incident + subscriber_id: PD1234 + subscriber_type: team + result: success + - account_id: PD1234 + subscribable_id: PD1234 + subscribable_type: business_service + subscriber_id: PD1234 + subscriber_type: team + result: duplicate + - account_id: PD1234 + subscribable_id: PD1235 + subscribable_type: business_service + subscriber_id: PD1234 + subscriber_type: team + result: unauthorized + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' description: | - Update an existing team. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) + Create new Notification Subscriptions for the given Team. - Scoped OAuth requires: `teams.write` - summary: Update a team + Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -3322,124 +654,117 @@ paths: schema: type: object properties: - team: - $ref: '#/components/schemas/Team' + subscribables: + type: array + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/NotificationSubscribable' required: - - team + - subscribables examples: request: summary: Request Example value: - team: - type: team - name: Engineering - description: The engineering team - description: The team to be updated. + subscribables: + - subscribable_type: incident + subscribable_id: PD1234 + - subscribable_type: business_service + subscribable_id: PD1234 + - subscribable_type: business_service + subscribable_id: PD1235 + description: The entities to subscribe to. + /teams/{id}/notification_subscriptions/unsubscribe: + post: + x-pd-requires-scope: subscribers.write + tags: + - Teams + operationId: removeTeamNotificationSubscriptions responses: '200': - description: The team that was updated. + description: OK content: application/json: schema: type: object properties: - team: - $ref: '#/components/schemas/Team' + deleted_count: + type: number + unauthorized_count: + type: number + non_existent_count: + type: number required: - - team + - deleted_count + - unauthorized_count + - non_existent_count examples: response: summary: Response Example value: - team: - id: PQ9K7I8 - type: team - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - name: Engineering - description: All engineering - default_role: observer + deleted_count: 1 + unauthorized_count: 1 + non_existent_count: 0 '401': $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/teams/{id}/audit/records': - get: - x-pd-requires-scope: audit_records.read - tags: - - Teams - operationId: listTeamsAuditRecords - summary: List audit records for a team + '422': + $ref: '#/components/responses/UnprocessableEntity' description: | - The returned records are sorted by the `execution_time` from newest to oldest. - - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - - For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + Unsubscribe the given Team from Notifications on the matching Subscribable entities. - Scoped OAuth requires: `audit_records.read` + Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/audit_since' - - $ref: '#/components/parameters/audit_until' - responses: - '200': - description: Records matching the query criteria. - content: - application/json: - schema: - $ref: '#/components/schemas/AuditRecordResponseSchema' - examples: - response: - $ref: '#/components/examples/AuditRecordTeamResponse' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/teams/{id}/escalation_policies/{escalation_policy_id}': + requestBody: + content: + application/json: + schema: + type: object + properties: + subscribables: + type: array + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/NotificationSubscribable' + required: + - subscribables + examples: + request: + summary: Response Example + value: + subscribables: + - subscribable_type: incident + subscribable_id: PD1234 + - subscribable_type: business_service + subscribable_id: PD1234 + description: The entities to unsubscribe from. + summary: Remove Team Notification Subscriptions + /teams/{id}/users/{user_id}: delete: + x-pd-requires-scope: teams.write tags: - Teams - x-pd-requires-scope: teams.write - operationId: deleteTeamEscalationPolicy + operationId: deleteTeamUser description: | - Remove an escalation policy from a team. + Remove a user from a team. A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) Scoped OAuth requires: `teams.write` - summary: Remove an escalation policy from a team + summary: Remove a user from a team parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/team_escalation_policy_id' + - $ref: '#/components/parameters/team_user_id' responses: '204': - description: The escalation policy was removed from the team. + description: The user was removed to the team. '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3453,418 +778,1224 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' put: - tags: - - Teams x-pd-requires-scope: teams.write - operationId: updateTeamEscalationPolicy - description: | - Add an escalation policy to a team. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) - - Scoped OAuth requires: `teams.write` - summary: Add an escalation policy to a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/team_escalation_policy_id' - responses: - '204': - description: The escalation policy was added to the team. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/teams/{id}/members': - get: - x-pd-requires-scope: teams.read tags: - Teams - operationId: listTeamUsers + operationId: updateTeamUser description: | - Get information about members on a team. + Add a user to a team. Attempting to add a user with the `read_only_user` role will return a 400 error. A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#teams) - Scoped OAuth requires: `teams.read` - summary: List members of a team + Scoped OAuth requires: `teams.write` + summary: Add a user to a team parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_teams_members' + - $ref: '#/components/parameters/team_user_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + role: + type: string + description: The role of the user on the team. + enum: + - observer + - responder + - manager + examples: + role: + summary: Request Example + value: + role: observer + description: The role of the user on the team. responses: - '200': - description: A paginated array of users within the requested team. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - members: - type: array - uniqueItems: false - items: - type: object - properties: - user: - $ref: '#/components/schemas/UserReference' - role: - type: string - examples: - response: - summary: Response Example - value: - members: - - user: - id: P0XJYI9 - type: user_reference - summary: Jane Doe - self: 'https://api.pagerduty.com/users/P0XJYI9' - html_url: 'https://subdomain.pagerduty.com/users/P0XJYI9' - role: manager - limit: 100 - offset: 0 - more: false - total: null + '204': + description: The user was added to the team. '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/teams/{id}/notification_subscriptions': - get: - x-pd-requires-scope: subscribers.read - summary: List Team Notification Subscriptions - tags: - - Teams - operationId: getTeamNotificationSubscriptions - description: | - Retrieve a list of Notification Subscriptions the given Team has. + description: Manage team memberships. +components: + schemas: + Team: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the team. + maxLength: 100 + description: + type: string + description: The description of the team. + maxLength: 1024 + default_role: + type: string + description: The team is private if the value is "none", or public if it is "manager" (the default permissions for a non-member of the team are either "none", or their base role up until "manager"). + default: manager + enum: + - manager + - none + required: + - name + - type + example: + type: team + name: Engineering + description: The engineering team + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + NotificationSubscription: + title: NotificationSubscription + description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable. + type: object + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + description: The type of the entity being subscribed + enum: + - user + - team + subscribable_id: + type: string + description: The ID of the entity being subscribed to + subscribable_type: + type: string + description: The type of the entity being subscribed to + enum: + - incident + - business_service + account_id: + type: string + description: The ID of the account belonging to the subscriber entity + x-examples: + example-1: + subscriber_id: string + subscriber_type: user + subscribable_id: string + subscribable_type: incident + account_id: string + NotificationSubscriptionWithContext: + title: NotificationSubscriptionWithContext + type: object + description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. + x-examples: + example-1: + subscriber_id: string + subscriber_type: user + subscribable_id: string + subscribable_type: incident + account_id: string + result: success + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + enum: + - user + - team + description: The type of the entity being subscribed + subscribable_id: + type: string + description: The ID of the entity being subscribed to + subscribable_type: + type: string + enum: + - incident + - business_service + description: The type of the entity being subscribed to + account_id: + type: string + description: The type of the entity being subscribed to + result: + type: string + enum: + - success + - duplicate + - unauthorized + description: The resulting status of the subscription + NotificationSubscribable: + title: NotificationSubscribable + description: A reference of a subscribable entity. + type: object + properties: + subscribable_id: + type: string + description: The ID of the entity to subscribe to + subscribable_type: + type: string + description: The type of the entity being subscribed to + enum: + - incident + - business_service + example: + subscribable_id: PD1234 + subscribable_type: incident + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: - - > Teams must be added through `POST /teams/{id}/notification_subscriptions` to be returned from this endpoint. + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - Scoped OAuth requires: `subscribers.read` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - subscriptions: - type: array - items: - type: object - properties: - subscription: - $ref: '#/components/schemas/NotificationSubscription' - subscribable_name: - type: string - nullable: true - description: The name of the subscribable - required: - - subscriptions - examples: - response: - summary: Response Example + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: + type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned + + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned + + #### Resource deletion + - `before_value` MAY be returned + properties: + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name value: - subscriptions: - - subscription: - subscriber_id: PD1234 - subscriber_type: team - subscribable_id: PD1234 - subscribable_type: incident - subscribable_name: null - account_id: PD1234 - - subscription: - subscriber_id: PD1234 - subscriber_type: team - subscribable_id: PD1234 - subscribable_type: business_service - subscribable_name: Online Payment - account_id: PD1234 - limit: 2 - offset: 0 - total: 1000 - more: true - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: subscribers.write - summary: Create Team Notification Subscriptions - tags: - - Teams - operationId: createTeamNotificationSubscriptions - responses: - '200': - description: OK - content: - application/json: - schema: + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: + type: object + properties: + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + required: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - subscriptions: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/NotificationSubscriptionWithContext' - examples: - response: - summary: Response Example - value: - subscriptions: - - account_id: PD1234 - subscribable_id: PD1234 - subscribable_type: incident - subscriber_id: PD1234 - subscriber_type: team - result: success - - account_id: PD1234 - subscribable_id: PD1234 - subscribable_type: business_service - subscriber_id: PD1234 - subscriber_type: team - result: duplicate - - account_id: PD1234 - subscribable_id: PD1235 - subscribable_type: business_service - subscriber_id: PD1234 - subscriber_type: team - result: unauthorized - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Create new Notification Subscriptions for the given Team. - - Scoped OAuth requires: `subscribers.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - subscribables: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/NotificationSubscribable' - required: - - subscribables - examples: - request: - summary: Request Example - value: - subscribables: - - subscribable_type: incident - subscribable_id: PD1234 - - subscribable_type: business_service - subscribable_id: PD1234 - - subscribable_type: business_service - subscribable_id: PD1235 - description: The entities to subscribe to. - '/teams/{id}/notification_subscriptions/unsubscribe': - post: - x-pd-requires-scope: subscribers.write - tags: - - Teams - operationId: removeTeamNotificationSubscriptions - responses: - '200': - description: OK - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + UnprocessableEntity: + description: Unprocessable Entity. Some arguments failed validation checks. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - deleted_count: - type: number - unauthorized_count: - type: number - non_existent_count: - type: number - required: - - deleted_count - - unauthorized_count - - non_existent_count - examples: - response: - summary: Response Example - value: - deleted_count: 1 - unauthorized_count: 1 - non_existent_count: 0 - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '422': - $ref: '#/components/responses/UnprocessableEntity' + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Unsubscribe the given Team from Notifications on the matching Subscribable entities. + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `subscribers.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - subscribables: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/NotificationSubscribable' - required: - - subscribables - examples: - request: - summary: Response Example - value: - subscribables: - - subscribable_type: incident - subscribable_id: PD1234 - - subscribable_type: business_service - subscribable_id: PD1234 - description: The entities to unsubscribe from. - '/teams/{id}/users/{user_id}': - delete: - x-pd-requires-scope: teams.write - tags: - - Teams - operationId: deleteTeamUser + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + include_teams: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - privileges + uniqueItems: true + reassignment_team: + name: reassignment_team + in: query description: | - Remove a user from a team. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) - - Scoped OAuth requires: `teams.write` - summary: Remove a user from a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/team_user_id' - responses: - '204': - description: The user was removed to the team. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: teams.write - tags: - - Teams - operationId: updateTeamUser + Team to reassign unresolved incident to. + If an unresolved incident exists on both the reassignment team and + the team being deleted, a duplicate will not be made. If not supplied, + unresolved incidents will be made account-level. + required: false + schema: + type: string + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false description: | - Add a user to a team. Attempting to add a user with the `read_only_user` role will return a 400 error. - - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#teams) - - Scoped OAuth requires: `teams.write` - summary: Add a user to a team - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/team_user_id' - requestBody: - content: - application/json: - schema: - type: object - properties: - role: - type: string - description: The role of the user on the team. - enum: - - observer - - responder - - manager - examples: - role: - summary: Request Example - value: - role: observer - description: The role of the user on the team. - responses: - '204': - description: The user was added to the team. - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + team_escalation_policy_id: + name: escalation_policy_id + in: path + description: The escalation policy ID on the team. + required: true + schema: + type: string + include_teams_members: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - users + uniqueItems: true + team_user_id: + name: user_id + in: path + description: The user ID on the team. + required: true + schema: + type: string + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: + + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. + + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. + + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + AuditRecordTeamResponse: + summary: Response Example + value: + records: + - id: PDRECORD_USER_ROLE_ON_TEAM + execution_time: '2020-06-04T15:30:16.272Z' + execution_context: + request_id: 111lDEOIH-534-4ljhLHJjh111 + remote_address: 201.19.20.19 + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + method: + type: browser + root_resource: + id: PD_TEAM123 + type: team_reference + summary: my DevOps team + self: https://api.pagerduty.com/teams/PD_TEAM123 + html_url: https://mydomain.pagerduty.com/teams/PD_TEAM123 + action: update + details: + resource: + id: PD_ADMIN_USER123 + type: user_reference + summary: AA Admin User + self: https://api.pagerduty.com/users/PD_ADMIN_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_ADMIN_USER123 + fields: + - name: members.role + value: manager + - id: PDRECORD_USER_ADDED_TO_TEAM + execution_time: '2020-06-04T15:30:16.272Z' + execution_context: + request_id: 111lDEOIH-534-4ljhLHJjh111 + remote_address: 201.19.20.19 + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + method: + type: browser + root_resource: + id: PD_TEAM123 + type: team_reference + summary: DevOps + action: update + details: + resource: + id: PD_TEAM123 + type: team_reference + summary: DevOps + references: + - name: members + added: + - id: PD_ADMIN_USER123 + type: user_reference + summary: AA Admin User + self: https://api.pagerduty.com/users/PD_ADMIN_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_ADMIN_USER123 + - id: PDRECORD_TEAM_CREATED + execution_time: '2020-06-04T15:25:04.113Z' + execution_context: + request_id: 222lDEOIH-534-4ljhLHJjh222 + remote_address: 201.19.20.19 + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + method: + type: browser + root_resource: + id: PD_TEAM123 + type: team_reference + summary: DevOps + self: https://api.pagerduty.com/teams/PD_TEAM123 + html_url: https://mydomain.pagerduty.com/teams/PD_TEAM123 + action: create + details: + resource: + id: PD_TEAM123 + type: team_reference + summary: DevOps + self: https://api.pagerduty.com/teams/PD_TEAM123 + html_url: https://mydomain.pagerduty.com/teams/PD_TEAM123 + fields: + - name: name + value: DevOps + - name: description + value: MyDevOps Team + - name: default_role + value: manager + next_cursor: null + limit: 10 + x-stackQL-resources: + teams: + id: pagerduty.teams.teams + name: teams + title: Teams + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '201' + list: + operation: + $ref: '#/paths/~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.teams + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1teams~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.team + delete: + operation: + $ref: '#/paths/~1teams~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/teams/methods/get' + - $ref: '#/components/x-stackQL-resources/teams/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/teams/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/teams/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/teams/methods/delete' + replace: [] + audit_records: + id: pagerduty.teams.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1teams~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + escalation_policies: + id: pagerduty.teams.escalation_policies + name: escalation_policies + title: Escalation Policies + methods: + remove: + operation: + $ref: '#/paths/~1teams~1{id}~1escalation_policies~1{escalation_policy_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + add: + operation: + $ref: '#/paths/~1teams~1{id}~1escalation_policies~1{escalation_policy_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/escalation_policies/methods/remove' + replace: [] + members: + id: pagerduty.teams.members + name: members + title: Members + methods: + list: + operation: + $ref: '#/paths/~1teams~1{id}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.members + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + remove: + operation: + $ref: '#/paths/~1teams~1{id}~1users~1{user_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams~1{id}~1users~1{user_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/members/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/members/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/members/methods/remove' + replace: [] + notification_subscriptions: + id: pagerduty.teams.notification_subscriptions + name: notification_subscriptions + title: Notification Subscriptions + methods: + list: + operation: + $ref: '#/paths/~1teams~1{id}~1notification_subscriptions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.subscriptions + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams~1{id}~1notification_subscriptions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unsubscribe: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1teams~1{id}~1notification_subscriptions~1unsubscribe/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/create' + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/templates.yaml b/providers/src/pagerduty/v00.00.00000/services/templates.yaml index aed5cb21..4723f687 100644 --- a/providers/src/pagerduty/v00.00.00000/services/templates.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/templates.yaml @@ -1,2815 +1,509 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Templates + description: Message templates (status updates and other templated content). version: 2.0.0 - title: PagerDuty API - templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - Template: - allOf: - - $ref: '#/components/schemas/EditableTemplate' - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - type: - type: string - enum: - - template - created_by: - description: User/Account object reference of the creator - oneOf: - - $ref: '#/components/schemas/UserReference' - - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - account_reference - updated_by: - description: User/Account object reference of the updator - oneOf: - - $ref: '#/components/schemas/UserReference' - - $ref: '#/components/schemas/Template/allOf/1/properties/created_by/oneOf/1' - EditableTemplate: - type: object - properties: - template_type: - type: string - description: The type of template (`status_update` is the only supported template at this time) - enum: - - status_update - name: - type: string - description: The name of the template - description: - type: string - nullable: true - description: Description of the template - templated_fields: - type: object - properties: - email_subject: - type: string - nullable: true - description: The subject of the e-mail - email_body: - type: string - nullable: true - description: The HTML body of the e-mail message - message: - type: string - nullable: true - description: |- - The short-message of the template (SMS, Push notification, Slack, - etc) - UserReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - user_reference - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - StatusUpdateTemplateInput: - type: object - properties: - incident_id: - type: string - description: The incident id to render the template for - status_update: - type: object - properties: - message: - type: string - description: An optional status update message that will be sent to the template - external: - description: An optional object collection that can be referenced in the template. - RenderedTemplate: - type: object - properties: - templated_fields: - type: object - properties: - email_subject: - type: string - description: The rendered e-mail subject - email_body: - type: string - description: The rendered e-mail body - message: - type: string - description: 'The rendered short message (SMS, Push, Slack, etc)' - warnings: - description: |- - List of render warnings messages for each rendered field. - (Ex: ["{{incident.invalid_field}} does not exist."]) - type: object - properties: - email_subject: - type: array - description: List of warnings for email_subject - email_body: - type: array - description: List of warnings for email_body - message: - type: array - description: List of warnings for message field - errors: - description: List of errors - type: array - items: - type: string - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false +paths: + /templates: + get: + x-pd-requires-scope: templates.read + tags: + - Templates + operationId: getTemplates description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + Get a list of all the template on an account - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header + Scoped OAuth requires: `templates.read` + summary: List templates + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/template_query' + - $ref: '#/components/parameters/template_type' + - $ref: '#/components/parameters/sort_by_template' + responses: + '200': + description: A paginated array of templates. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + templates: + type: array + items: + $ref: '#/components/schemas/Template' + required: + - templates + examples: + response: + summary: Response Example + value: + limit: 25 + more: false + offset: 0 + templates: + - created_at: '2022-12-30T16:00:00Z' + created_by: + id: PDZR4CN + self: https://api.pagerduty.com/users/PDZR4CN + type: user_reference + description: Sample template description + id: PBZUP2B + name: Sample Template 160 + self: https://api.pagerduty.com/templates/PBZUP2B + template_type: status_update + type: template + updated_at: '2022-12-30T16:00:00Z' + updated_by: + id: PGY287N + self: https://api.pagerduty.com/users/PGY287N + type: user_reference + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '500': + $ref: '#/components/responses/InternalServerError' + post: + x-pd-requires-scope: templates.write + tags: + - Templates + operationId: createTemplate description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Create a new template + + Scoped OAuth requires: `templates.write` + summary: Create a template + requestBody: + content: + application/json: + schema: + type: object + properties: + template: + $ref: '#/components/schemas/EditableTemplate' + required: + - template + examples: + request: + summary: Request Example + value: + template: + description: Sample template description + templated_fields: + email_body:

sample
+ email_subject: Sample email Subject + message: Sample SMS message + name: Sample Template + template_type: status_update + required: true + responses: + '201': + description: Template successfully created + content: + application/json: + x-type: true + schema: + type: object + properties: + template: + $ref: '#/components/schemas/Template' + required: + - template + examples: + response: + summary: Response Example + value: + template: + created_at: '2022-08-19T13:46:22Z' + created_by: + id: PF9KMXH + self: https://api.pagerduty.com/users/PF9KMXH + type: user_reference + description: Sample template description + templated_fields: + email_body:
sample
+ email_subject: Sample email Subject + message: Sample SMS message + id: PCCR863 + name: Sample Template + self: https://api.pagerduty.com/templates/PCCR863 + template_type: status_update + type: template + updated_at: '2022-08-19T13:46:22Z' + updated_by: + id: PF9KMXH + self: https://api.pagerduty.com/users/PF9KMXH + type: user_reference + '400': + $ref: '#/components/responses/ArgumentError' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '500': + $ref: '#/components/responses/InternalServerError' + description: List and Create Templates + /templates/{id}: + get: + x-pd-requires-scope: templates.read + tags: + - Templates + operationId: getTemplate description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Get a single template on the account - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: + Scoped OAuth requires: `templates.read` + summary: Get a template + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: Successful operation + content: + application/json: + schema: + type: object + properties: + template: + $ref: '#/components/schemas/Template' + required: + - template + examples: + response: + summary: Response Example + value: + template: + created_at: '2022-12-30T16:00:00Z' + created_by: + id: PDZR4CN + self: https://api.pagerduty.com/users/PDZR4CN + type: user_reference + description: Sample template description + templated_fields: + email_body:
sample
+ email_subject: Sample email Subject + message: Sample template message + id: PBZUP2B + name: Sample Template 160 + self: https://api.pagerduty.com/templates/PBZUP2B + template_type: status_update + type: template + updated_at: '2022-12-30T16:00:00Z' + updated_by: + id: PGY287N + self: https://api.pagerduty.com/users/PGY287N + type: user_reference + '400': + $ref: '#/components/responses/ArgumentError' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + put: + x-pd-requires-scope: templates.write + tags: + - Templates + operationId: updateTemplate + description: | + Update an existing template + + Scoped OAuth requires: `templates.write` + summary: Update a template + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + template: + $ref: '#/components/schemas/EditableTemplate' + required: + - template + examples: + request: + summary: Request Example + value: + template: + description: Sample template description + templated_fields: + email_body:
sample
+ email_subject: Sample email Subject + message: Sample SMS message + name: Sample Template + template_type: status_update + required: true + responses: + '200': + description: Successful operation + content: + application/json: + schema: type: object properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: + template: + $ref: '#/components/schemas/Template' + required: + - template + examples: + response: + summary: Response Example + value: + template: + created_at: '2022-08-19T13:46:22Z' + created_by: + id: PF9KMXH + self: https://api.pagerduty.com/users/PF9KMXH + type: user_reference + description: Sample template description + templated_fields: + email_body:
sample
+ email_subject: Sample email Subject + message: Sample SMS message + id: PCCR863 + name: Sample Template + self: https://api.pagerduty.com/templates/PCCR863 + template_type: status_update + type: template + updated_at: '2022-08-19T13:46:22Z' + updated_by: + id: PF9KMXH + self: https://api.pagerduty.com/users/PF9KMXH + type: user_reference + '400': + $ref: '#/components/responses/ArgumentError' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + delete: + x-pd-requires-scope: templates.write + tags: + - Templates + operationId: deleteTemplate + description: | + Delete a specific of templates on the account + + Scoped OAuth requires: `templates.write` + summary: Delete a template + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: Successful operation + '400': + $ref: '#/components/responses/ArgumentError' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + description: Update and Delete Templates + /templates/{id}/render: + post: + x-pd-requires-scope: templates.read + tags: + - Templates + operationId: renderTemplate + summary: Render a template + description: | + Render a template. This endpoint has a variable request body depending on the template type. For the `status_update` template type, the caller will provide the incident id, and a status update message. + + Scoped OAuth requires: `templates.read` + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + incident_id: + type: string + description: The incident id to render the template for + status_update: + type: object + properties: + message: type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - templates: - id: pagerduty.templates.templates - name: templates - title: Templates - methods: - get_templates: - operation: - $ref: '#/paths/~1templates/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.templates - _get_templates: - operation: - $ref: '#/paths/~1templates/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_template: - operation: - $ref: '#/paths/~1templates/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_template: - operation: - $ref: '#/paths/~1templates~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.template - _get_template: - operation: - $ref: '#/paths/~1templates~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_template: - operation: - $ref: '#/paths/~1templates~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_template: - operation: - $ref: '#/paths/~1templates~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - render_template: - operation: - $ref: '#/paths/~1templates~1{id}~1render/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/templates/methods/get_template' - - $ref: '#/components/x-stackQL-resources/templates/methods/get_templates' - insert: - - $ref: '#/components/x-stackQL-resources/templates/methods/create_template' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/templates/methods/delete_template' -paths: - /templates: + description: An optional status update message that will be sent to the template + external: + description: An optional object collection that can be referenced in the template. + examples: + request: + summary: Request Example + value: + incident_id: QT4KHLK034QWE34 + status_update: + message: Status update message + required: true + responses: + '200': + description: Successful operation + content: + application/json: + schema: + $ref: '#/components/schemas/RenderedTemplate' + examples: + response: + value: + templated_fields: + email_subject: 'Update: Status update message' + email_body:
Status update message
+ message: 'Update: Status update message' + warnings: + - email_body: + - '{{incident.bad_value}} does not exist.' + errors: [] + '400': + $ref: '#/components/responses/ArgumentError' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '500': + $ref: '#/components/responses/InternalServerError' + /templates/fields: get: x-pd-requires-scope: templates.read tags: - Templates - operationId: getTemplates + operationId: getTemplateFields description: | - Get a list of all the template on an account + Get a list of fields that can be used on the account templates. Scoped OAuth requires: `templates.read` - summary: List templates - parameters: - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/template_query' - - $ref: '#/components/parameters/template_type' - - $ref: '#/components/parameters/sort_by_template' + summary: List template fields + parameters: [] responses: '200': - description: A paginated array of templates. + description: An array of template fields. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - templates: - type: array - items: - $ref: '#/components/schemas/Template' - required: - - templates + type: object + properties: + fields: + type: array + items: + title: Field + type: object + properties: + data_type: + type: string + description: The kind of data the template field is allowed to contain. + enum: + - boolean + - integer + - float + - string + - datetime + - url + default_value: + type: string + description: The default value of the template field. + nullable: true + description: + type: string + description: A short description of the template field. + nullable: true + domain_name: + type: object + properties: + order: + type: integer + summary: + type: string + example: + type: string + description: An example value for the template field. + nullable: true + keyword: + type: string + nullable: true + summary: + type: string + description: A short summary of the template field. + type: + type: string + description: The type of template field. + enum: + - standard_field + - custom_field + required: + - fields examples: response: summary: Response Example value: - limit: 25 - more: false - offset: 0 - templates: - - created_at: '2022-12-30T16:00:00Z' - created_by: - id: PDZR4CN - self: 'https://api.pagerduty.com/users/PDZR4CN' - type: user_reference - description: Sample template description - id: PBZUP2B - name: Sample Template 160 - self: 'https://api.pagerduty.com/templates/PBZUP2B' - template_type: status_update - type: template - updated_at: '2022-12-30T16:00:00Z' - updated_by: - id: PGY287N - self: 'https://api.pagerduty.com/users/PGY287N' - type: user_reference - total: null + fields: + - data_type: datetime + default_value: null + description: The time the incident was created. + domain: + order: 1 + summary: Incident + example: '2023-11-22T07:12:50Z' + keyword: null + summary: incident.created_at + type: standard_field + - data_type: string + default_value: null + description: The name of the escalation policy attached to the service that the incident is on + domain: + order: 1 + summary: Incident + example: Another Escalation Policy + keyword: name + summary: incident.escalation_policy.summary + type: standard_field + - data_type: string + default_value: default value + description: An account defined custom field + domain: + order: 1 + summary: Incident + example: null + keyword: null + summary: incident.custom_field + type: custom_field '400': $ref: '#/components/responses/ArgumentError' '402': @@ -2818,304 +512,667 @@ paths: $ref: '#/components/responses/Forbidden' '500': $ref: '#/components/responses/InternalServerError' - post: - x-pd-requires-scope: templates.write - tags: - - Templates - operationId: createTemplate - description: | - Create a new template - - Scoped OAuth requires: `templates.write` - summary: Create a template - requestBody: - content: - application/json: - schema: - type: object +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + Template: + type: object + properties: + template_type: + type: string + description: The type of template (`status_update` is the only supported template at this time) + enum: + - status_update + name: + type: string + description: The name of the template + description: + type: string + nullable: true + description: Description of the template + templated_fields: + type: object + properties: + email_subject: + type: string + nullable: true + description: The subject of the e-mail + email_body: + type: string + nullable: true + description: The HTML body of the e-mail message + message: + type: string + nullable: true + description: |- + The short-message of the template (SMS, Push notification, Slack, + etc) + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + type: + type: string + enum: + - template + created_by: + description: User/Account object reference of the creator + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object properties: - template: - $ref: '#/components/schemas/EditableTemplate' + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app required: - - template - examples: - request: - summary: Request Example - value: - template: - description: Sample template description - templated_fields: - email_body:
sample
- email_subject: Sample email Subject - message: Sample SMS message - name: Sample Template - template_type: status_update - required: true - responses: - '201': - description: Template successfully created - content: - application/json: - x-type: true - schema: + - type + - id + description: (opaque JSON object) + updated_by: + description: User/Account object reference of the updator + oneOf: + - $ref: '#/components/schemas/UserReference' + - type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + EditableTemplate: + type: object + properties: + template_type: + type: string + description: The type of template (`status_update` is the only supported template at this time) + enum: + - status_update + name: + type: string + description: The name of the template + description: + type: string + nullable: true + description: Description of the template + templated_fields: + type: object + properties: + email_subject: + type: string + nullable: true + description: The subject of the e-mail + email_body: + type: string + nullable: true + description: The HTML body of the e-mail message + message: + type: string + nullable: true + description: |- + The short-message of the template (SMS, Push notification, Slack, + etc) + StatusUpdateTemplateInput: + type: object + properties: + incident_id: + type: string + description: The incident id to render the template for + status_update: + type: object + properties: + message: + type: string + description: An optional status update message that will be sent to the template + external: + description: An optional object collection that can be referenced in the template. + RenderedTemplate: + type: object + properties: + templated_fields: + type: object + properties: + email_subject: + type: string + description: The rendered e-mail subject + email_body: + type: string + description: The rendered e-mail body + message: + type: string + description: The rendered short message (SMS, Push, Slack, etc) + warnings: + description: |- + List of render warnings messages for each rendered field. + (Ex: ["{{incident.invalid_field}} does not exist."]) + type: object + properties: + email_subject: + type: array + description: List of warnings for email_subject + items: + type: string + email_body: + type: array + description: List of warnings for email_body + items: + type: string + message: + type: array + description: List of warnings for message field + items: + type: string + errors: + description: List of errors + type: array + items: + type: string + UserReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - template: - $ref: '#/components/schemas/Template' - required: - - template - examples: - response: - summary: Response Example - value: - template: - created_at: '2022-08-19T13:46:22Z' - created_by: - id: PF9KMXH - self: 'https://api.pagerduty.com/users/PF9KMXH' - type: user_reference - description: Sample template description - templated_fields: - email_body:
sample
- email_subject: Sample email Subject - message: Sample SMS message - id: PCCR863 - name: Sample Template - self: 'https://api.pagerduty.com/templates/PCCR863' - template_type: status_update - type: template - updated_at: '2022-08-19T13:46:22Z' - updated_by: - id: PF9KMXH - self: 'https://api.pagerduty.com/users/PF9KMXH' - type: user_reference - '400': - $ref: '#/components/responses/ArgumentError' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '500': - $ref: '#/components/responses/InternalServerError' - '/templates/{id}': - get: - x-pd-requires-scope: templates.read - tags: - - Templates - operationId: getTemplate + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - Get a single template on the account - - Scoped OAuth requires: `templates.read` - summary: Get a template - parameters: - - $ref: '#/components/parameters/id' - responses: - '200': - description: Successful operation - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - template: - $ref: '#/components/schemas/Template' - required: - - template - examples: - response: - summary: Response Example - value: - template: - created_at: '2022-12-30T16:00:00Z' - created_by: - id: PDZR4CN - self: 'https://api.pagerduty.com/users/PDZR4CN' - type: user_reference - description: Sample template description - templated_fields: - email_body:
sample
- email_subject: Sample email Subject - message: Sample template message - id: PBZUP2B - name: Sample Template 160 - self: 'https://api.pagerduty.com/templates/PBZUP2B' - template_type: status_update - type: template - updated_at: '2022-12-30T16:00:00Z' - updated_by: - id: PGY287N - self: 'https://api.pagerduty.com/users/PGY287N' - type: user_reference - '400': - $ref: '#/components/responses/ArgumentError' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - put: - x-pd-requires-scope: templates.write - tags: - - Templates - operationId: updateTemplate + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Update an existing template - - Scoped OAuth requires: `templates.write` - summary: Update a template - parameters: - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - template: - $ref: '#/components/schemas/EditableTemplate' - required: - - template - examples: - request: - summary: Request Example - value: - template: - description: Sample template description - templated_fields: - email_body:
sample
- email_subject: Sample email Subject - message: Sample SMS message - name: Sample Template - template_type: status_update - required: true - responses: - '200': - description: Successful operation - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - template: - $ref: '#/components/schemas/Template' - required: - - template - examples: - response: - summary: Response Example - value: - template: - created_at: '2022-08-19T13:46:22Z' - created_by: - id: PF9KMXH - self: 'https://api.pagerduty.com/users/PF9KMXH' - type: user_reference - description: Sample template description - templated_fields: - email_body:
sample
- email_subject: Sample email Subject - message: Sample SMS message - id: PCCR863 - name: Sample Template - self: 'https://api.pagerduty.com/templates/PCCR863' - template_type: status_update - type: template - updated_at: '2022-08-19T13:46:22Z' - updated_by: - id: PF9KMXH - self: 'https://api.pagerduty.com/users/PF9KMXH' - type: user_reference - '400': - $ref: '#/components/responses/ArgumentError' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - x-pd-requires-scope: templates.write - tags: - - Templates - operationId: deleteTemplate - description: | - Delete a specific of templates on the account - - Scoped OAuth requires: `templates.write` - summary: Delete a template - parameters: - - $ref: '#/components/parameters/id' - responses: - '204': - description: Successful operation - '400': - $ref: '#/components/responses/ArgumentError' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' - '/templates/{id}/render': - post: - x-pd-requires-scope: templates.read - tags: - - Templates - operationId: renderTemplate - summary: Render a template + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Render a template. This endpoint has a variable request body depending on the template type. For the `status_update` template type, the caller will provide the incident id, and a status update message. + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `templates.read` - parameters: - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/StatusUpdateTemplateInput' - examples: - request: - summary: Request Example - value: - incident_id: QT4KHLK034QWE34 - status_update: - message: Status update message - required: true - responses: - '200': - description: Successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/RenderedTemplate' - examples: - response: - value: - templated_fields: - email_subject: 'Update: Status update message' - email_body:
Status update message
- message: 'Update: Status update message' - warnings: - - email_body: - - '{{incident.bad_value}} does not exist.' - errors: [] - '400': - $ref: '#/components/responses/ArgumentError' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '500': - $ref: '#/components/responses/InternalServerError' + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + template_query: + name: query + description: Template name or description to search + in: query + schema: + type: string + template_type: + name: template_type + description: Filters templates by type. + in: query + schema: + type: string + default: status_update + sort_by_template: + name: sort_by + in: query + description: Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending. + style: form + explode: false + schema: + type: string + enum: + - name + - name:asc + - name:desc + - created_at + - created_at:asc + - created_at:desc + default: created_at:asc + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + x-stackQL-resources: + templates: + id: pagerduty.templates.templates + name: templates + title: Templates + methods: + list: + operation: + $ref: '#/paths/~1templates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.templates + config: + queryParamPushdown: + orderBy: + paramName: sort_by + syntax: suffix + supportedColumns: + - name + - created_at + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1templates/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1templates~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.template + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1templates~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1templates~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + render: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1templates~1{id}~1render/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/templates/methods/get' + - $ref: '#/components/x-stackQL-resources/templates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/templates/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/templates/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/templates/methods/delete' + replace: [] + fields: + id: pagerduty.templates.fields + name: fields + title: Fields + methods: + list: + operation: + $ref: '#/paths/~1templates~1fields/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.fields + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/fields/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/users.yaml b/providers/src/pagerduty/v00.00.00000/services/users.yaml index 7e73c0b3..b1e88df1 100644 --- a/providers/src/pagerduty/v00.00.00000/services/users.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/users.yaml @@ -1,3940 +1,1992 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Users + description: Users and their contact methods, notification rules, subscriptions, sessions, licenses and OAuth delegations. version: 2.0.0 - title: PagerDuty API - users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - User: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - name: - type: string - description: The name of the user. - maxLength: 100 - type: - type: string - description: The type of object being created. - default: user - enum: - - user - email: - type: string - format: email - description: The user's email address. - minLength: 6 - maxLength: 100 - time_zone: - type: string - format: tzinfo - description: 'The preferred time zone name. If null, the account''s time zone will be used.' - color: - type: string - description: The schedule color. - role: - description: 'The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`.' - type: string - enum: - - admin - - limited_user - - observer - - owner - - read_only_user - - restricted_access - - read_only_limited_user - - user - avatar_url: - type: string - format: url - description: The URL of the user's avatar. - readOnly: true - description: - type: string - description: The user's bio. - nullable: true - invitation_sent: - type: boolean - readOnly: true - description: 'If true, the user has an outstanding invitation.' - job_title: - type: string - description: The user's title. - maxLength: 100 - teams: - type: array - readOnly: true - description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. - items: - $ref: '#/components/schemas/TeamReference' - contact_methods: - type: array - readOnly: true - description: The list of contact methods for the user. - items: - $ref: '#/components/schemas/ContactMethodReference' - notification_rules: - readOnly: true - type: array - description: The list of notification rules for the user. - items: - $ref: '#/components/schemas/NotificationRuleReference' - license: - description: The License assigned to the User - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - license_reference - required: - - name - - email - - type - example: - type: user - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - job_title: Director of Engineering - avatar_url: 'https://secure.gravatar.com/avatar/1d1a39d4635208d5664082a6c654a73f.png?d=mm&r=PG' - description: I'm the boss - Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - TeamReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - team_reference - ContactMethodReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - email_contact_method_reference - - phone_contact_method_reference - - push_notification_contact_method_reference - - sms_contact_method_reference - NotificationRuleReference: - allOf: - - $ref: '#/components/schemas/Reference' - - type: object - properties: - type: - type: string - enum: - - assignment_notification_rule_reference - Reference: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - required: - - type - - id - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - AuditRecordResponseSchema: - allOf: - - type: object - properties: - records: - type: array - items: - $ref: '#/components/schemas/AuditRecord' - response_metadata: - nullable: true - anyOf: - - $ref: '#/components/schemas/AuditMetadata' - required: - - records - - $ref: '#/components/schemas/CursorPagination' - AuditRecord: - type: object - readOnly: true - description: An Audit Trail record - properties: - id: - type: string - self: - type: string - nullable: true - description: Record URL. - execution_time: - type: string - format: date-time - description: 'The date/time the action executed, in ISO8601 format and millisecond precision.' - execution_context: - type: object - description: Action execution context - properties: - request_id: - type: string - nullable: true - description: Request Id - remote_address: - type: string - nullable: true - description: remote address - nullable: true - actors: - type: array - nullable: true - items: - $ref: '#/components/schemas/Reference' - method: - type: object - description: The method information - properties: - description: - type: string - nullable: true - truncated_token: - description: Truncated token containing the last 4 chars of the token's actual value. - type: string - nullable: true - example: 3xyz - type: - $ref: '#/components/parameters/audit_method_type/schema' - required: - - type - root_resource: - $ref: '#/components/schemas/Reference' - action: - type: string - example: create - details: - type: object - nullable: true - description: | - Additional details to provide further information about the action or - the resource that has been audited. - properties: - resource: - $ref: '#/components/schemas/Reference' - fields: - description: | - A set of fields that have been affected. - The fields that have not been affected MAY be returned. - type: array - nullable: true - items: - type: object - description: | - Information about the affected field. - When available, field's before and after values are returned: - - #### Resource creation - - `value` MAY be returned +paths: + /users: + get: + x-pd-requires-scope: users.read + tags: + - Users + operationId: listUsers + description: | + List users of your PagerDuty account, optionally filtered by a search query. - #### Resource update - - `value` MAY be returned - - `before_value` MAY be returned + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - #### Resource deletion - - `before_value` MAY be returned - properties: - name: - type: string - description: Name of the resource field - example: name - description: - type: string - nullable: true - description: Human readable description of the resource field - example: First and Last name - value: - type: string - nullable: true - description: new or updated value of the field - example: Jonathan - before_value: - type: string - nullable: true - description: previous or deleted value of the field - example: John - required: - - name - references: - description: A set of references that have been affected. - type: array - nullable: true - items: + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.read` + summary: List users + parameters: + - $ref: '#/components/parameters/query' + - $ref: '#/components/parameters/team_ids' + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/include_user' + responses: + '200': + description: A paginated array of users. + content: + application/json: + schema: type: object properties: - name: - type: string - description: Name of the reference field - example: team_members - description: - type: string - nullable: true - description: Human readable description of the references field - example: First and Last name - added: - type: array + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. nullable: true - items: - $ref: '#/components/schemas/Reference' - removed: + readOnly: true + users: type: array - nullable: true items: - $ref: '#/components/schemas/Reference' + $ref: '#/components/schemas/User' required: - - name - required: - - resource - required: - - id - - execution_time - - method - - root_resource - - action - AuditMetadata: - type: object - properties: - messages: - type: array - nullable: true - items: - type: string - example: Message about the result - CursorPagination: - type: object - properties: - limit: - type: integer - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - readOnly: true - next_cursor: - type: string - description: | - An opaque string than 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. - example: dXNlcjaVMzc5V0ZYTlo= - nullable: true - readOnly: true - required: - - limit - - next_cursor - PhoneContactMethod: - description: 'The Phone Contact Method of the User, used for Voice or SMS.' - allOf: - - $ref: '#/components/schemas/ContactMethod' - - type: object - properties: - type: - type: string - enum: - - phone_contact_method - - sms_contact_method - country_code: - type: integer - description: The 1-to-3 digit country calling code. - minimum: 1 - maximum: 1999 - enabled: - type: boolean - description: 'If true, this phone is capable of receiving SMS messages.' - readOnly: true - blacklisted: - type: boolean - description: 'If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it.' - readOnly: true - required: - - country_code - example: - type: phone_contact_method - label: work - country_code: 123 - address: '1234567' - PushContactMethod: - description: The Push Contact Method of the User. - allOf: - - $ref: '#/components/schemas/ContactMethod' - - type: object - properties: - type: - type: string - enum: - - push_notification_contact_method - device_type: - type: string - description: The type of device. - enum: - - android - - ios - readOnly: true - sounds: - type: array - items: - $ref: '#/components/schemas/PushContactMethodSound' - created_at: - type: string - format: date-time - description: Time at which the contact method was created. - blacklisted: - type: boolean - description: 'If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it.' - readOnly: true - required: - - device_type - example: - type: push_notification_contact_method - label: work - device_type: android - address: '12341234' - EmailContactMethod: - description: The Email Contact Method of the User. - allOf: - - $ref: '#/components/schemas/ContactMethod' - - type: object - properties: - type: - type: string - enum: - - email_contact_method - send_short_email: - type: boolean - description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. - default: false - example: - type: email_contact_method - label: work - address: grady.haylie.126@hickle.net - send_short_email: false - ContactMethod: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - description: The method to contact a user. - properties: - type: - type: string - description: The type of contact method being created. - enum: - - email_contact_method - - phone_contact_method - - push_notification_contact_method - - sms_contact_method - label: - type: string - description: 'The label (e.g., "Work", "Mobile", etc.).' - address: - type: string - description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' - discriminator: - propertyName: type - required: - - type - - label - - address - PushContactMethodSound: - type: object - properties: - type: - type: string - description: The type of sound. - enum: - - alert_high_urgency - - alert_low_urgency - file: - type: string - description: The sound file name. - LicenseWithCounts: - allOf: - - type: object - required: - - id - - description - - name - - valid_roles - properties: - id: - type: string - description: Uniquely identifies the resource - description: - type: string - description: | - Description of the License. May include the names of add-ons associated with - the License, if there are any. - name: - type: string - description: | - Name of the License. - valid_roles: - type: array - description: The roles a User with this License can have - items: - type: string - role_group: - type: string - enum: - - FullUser - - Stakeholder - description: Indicates whether this License is assignable to full or stakeholder Users - example: FullUser - type: - type: string - description: Type of object - self: - type: string - description: API URL to access the License - html_url: - type: string - description: HTML URL to access the License - summary: - type: string - description: Summary of the License - - type: object - properties: - current_value: - type: integer - description: How many of these Licenses are currently allocated to Users - allocations_available: - type: integer - nullable: true - description: | - How many of these licenses are available to be allocated to a user. If this - value is "null" then there is no limit on the number of allocations allowed. - NotificationRule: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - description: A rule for contacting the user. - properties: - type: - type: string - description: The type of object being created. - default: assignment_notification_rule - enum: - - assignment_notification_rule - start_delay_in_minutes: - type: integer - description: 'The delay before firing the rule, in minutes.' - minimum: 0 - contact_method: - $ref: '#/components/schemas/ContactMethodReference' - urgency: - type: string - enum: - - high - - low - description: Which incident urgency this rule is used for. Account must have the `urgencies` ability to have a low urgency notification rule. - required: - - start_delay_in_minutes - - urgency - - contact_method - - type - example: - type: assignment_notification_rule - start_delay_in_minutes: 0 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - urgency: high - NotificationSubscription: - title: NotificationSubscription - description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable. - type: object - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - description: The type of the entity being subscribed - enum: - - user - - team - subscribable_id: - type: string - description: The ID of the entity being subscribed to - subscribable_type: - type: string - description: The type of the entity being subscribed to - enum: - - incident - - business_service - account_id: - type: string - description: The ID of the account belonging to the subscriber entity - x-examples: - example-1: - subscriber_id: string - subscriber_type: user - subscribable_id: string - subscribable_type: incident - account_id: string - NotificationSubscriptionWithContext: - title: NotificationSubscriptionWithContext - type: object - description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. - x-examples: - example-1: - subscriber_id: string - subscriber_type: user - subscribable_id: string - subscribable_type: incident - account_id: string - result: success - properties: - subscriber_id: - type: string - description: The ID of the entity being subscribed - subscriber_type: - type: string - enum: - - user - - team - description: The type of the entity being subscribed - subscribable_id: - type: string - description: The ID of the entity being subscribed to - subscribable_type: - type: string - enum: - - incident - - business_service - description: The type of the entity being subscribed to - account_id: - type: string - description: The type of the entity being subscribed to - result: - type: string - enum: - - success - - duplicate - - unauthorized - description: The resulting status of the subscription - NotificationSubscribable: - title: NotificationSubscribable - description: A reference of a subscribable entity. - type: object - properties: - subscribable_id: - type: string - description: The ID of the entity to subscribe to - subscribable_type: - type: string - description: The type of the entity being subscribed to - enum: - - incident - - business_service - example: - subscribable_id: PD1234 - subscribable_type: incident - HandoffNotificationRule: - type: object - description: A rule for contacting the user for Handoff Notifications. - properties: - id: - type: string - readOnly: true - notify_advance_in_minutes: - type: integer - description: 'The delay before firing the rule, in minutes.' - minimum: 0 - handoff_type: - type: string - description: The type of handoff being created. - default: both - enum: - - both - - oncall - - offcall - contact_method: - $ref: '#/components/schemas/ContactMethodReference' - required: - - id - - handoff_type - - contact_method - example: - id: PXPGF42 - notify_advance_in_minutes: 180 - handoff_type: both - contact_method: - id: PXPGF42 - type: email_contact_method_reference - UserSession: - type: object - properties: - id: - type: string - readOnly: true - user_id: - type: string - readOnly: true - created_at: - type: string - format: date-time - readOnly: true - description: The date/time the user session was first created. - type: - type: string - readOnly: true - description: The type of the session - enum: - - browser - - oauth - summary: - type: string - readOnly: true - description: The summary of the session - required: - - id - - user_id - - created_at - - type - - summary - example: - id: PXPGF42 - user_id: PXPGF42 - created_at: '2018-10-06T21:30:42Z' - summary: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' - type: browser - StatusUpdateNotificationRule: - type: object - description: A rule for contacting the user for Incident Status Updates. - properties: - contact_method: - $ref: '#/components/schemas/ContactMethodReference' - required: - - contact_method - example: - contact_method: - id: PXPGF42 - type: email_contact_method_reference - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: - type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - ArgumentError: - description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Unauthorized: - description: | - Caller did not supply credentials or did not provide the correct credentials. - If you are using an API key, it may be invalid or your Authorization header may be malformed. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Forbidden: - description: | - Caller is not authorized to view the requested resource. - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. - content: - application/json: - schema: - type: object - properties: - error: - type: object - properties: - code: - type: integer - readOnly: true - message: - type: string - readOnly: true - description: Error message string - errors: - type: array - readOnly: true - items: - type: string - readOnly: true - description: Human-readable error details - example: - message: Not Found - code: 2100 - PaymentRequired: - description: | - Account does not have the abilities to perform the action. Please review the response for the required abilities. - You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - NotFound: - description: The requested resource was not found. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - InternalServerError: - description: Internal Server Error the PagerDuty server experienced an error. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - UnprocessableEntity: - description: Unprocessable Entity. Some arguments failed validation checks. - content: - application/json: - schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - x-stackQL-resources: - users: - id: pagerduty.users.users - name: users - title: Users - methods: - list_users: - operation: - $ref: '#/paths/~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.users - _list_users: - operation: - $ref: '#/paths/~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user: - operation: - $ref: '#/paths/~1users/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_user: - operation: - $ref: '#/paths/~1users~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.user - _get_user: - operation: - $ref: '#/paths/~1users~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user: - operation: - $ref: '#/paths/~1users~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_user: - operation: - $ref: '#/paths/~1users~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/get_user' - - $ref: '#/components/x-stackQL-resources/users/methods/list_users' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/create_user' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/delete_user' - audit_records: - id: pagerduty.users.audit_records - name: audit_records - title: Audit Records - methods: - list_users_audit_records: - operation: - $ref: '#/paths/~1users~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.records - _list_users_audit_records: - operation: - $ref: '#/paths/~1users~1{id}~1audit~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/audit_records/methods/list_users_audit_records' - insert: [] - update: [] - delete: [] - contact_methods: - id: pagerduty.users.contact_methods - name: contact_methods - title: Contact Methods - methods: - get_user_contact_methods: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.methods - _get_user_contact_methods: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user_contact_method: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_user_contact_method: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.contact_method - _get_user_contact_method: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_contact_method: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_user_contact_method: - operation: - $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/contact_methods/methods/get_user_contact_method' - - $ref: '#/components/x-stackQL-resources/contact_methods/methods/get_user_contact_methods' - insert: - - $ref: '#/components/x-stackQL-resources/contact_methods/methods/create_user_contact_method' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/contact_methods/methods/delete_user_contact_method' - license: - id: pagerduty.users.license - name: license - title: License - methods: - get_user_license: - operation: - $ref: '#/paths/~1users~1{id}~1license/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.license - _get_user_license: - operation: - $ref: '#/paths/~1users~1{id}~1license/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/license/methods/get_user_license' - insert: [] - update: [] - delete: [] - notification_rules: - id: pagerduty.users.notification_rules - name: notification_rules - title: Notification Rules - methods: - get_user_notification_rules: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rules - _get_user_notification_rules: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_user_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.notification_rule - _get_user_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_user_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/notification_rules/methods/get_user_notification_rule' - - $ref: '#/components/x-stackQL-resources/notification_rules/methods/get_user_notification_rules' - insert: - - $ref: '#/components/x-stackQL-resources/notification_rules/methods/create_user_notification_rule' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/notification_rules/methods/delete_user_notification_rule' - notification_subscriptions: - id: pagerduty.users.notification_subscriptions - name: notification_subscriptions - title: Notification Subscriptions - methods: - get_user_notification_subscriptions: - operation: - $ref: '#/paths/~1users~1{id}~1notification_subscriptions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.subscriptions - _get_user_notification_subscriptions: - operation: - $ref: '#/paths/~1users~1{id}~1notification_subscriptions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user_notification_subscriptions: - operation: - $ref: '#/paths/~1users~1{id}~1notification_subscriptions/post' - response: - mediaType: application/json - openAPIDocKey: '200' - unsubscribe_user_notification_subscriptions: - operation: - $ref: '#/paths/~1users~1{id}~1notification_subscriptions~1unsubscribe/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/get_user_notification_subscriptions' - insert: - - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/create_user_notification_subscriptions' - update: [] - delete: [] - oncall_handoff_notification_rules: - id: pagerduty.users.oncall_handoff_notification_rules - name: oncall_handoff_notification_rules - title: Oncall Handoff Notification Rules - methods: - get_user_handoff_notification_rules: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.oncall_handoff_notification_rules - _get_user_handoff_notification_rules: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user_handoff_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_user_handoff_notifiaction_rule: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.oncall_handoff_notification_rule - _get_user_handoff_notifiaction_rule: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_handoff_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_user_handoff_notification: - operation: - $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/get_user_handoff_notifiaction_rule' - - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/get_user_handoff_notification_rules' - insert: - - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/create_user_handoff_notification_rule' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/delete_user_handoff_notification_rule' - sessions: - id: pagerduty.users.sessions - name: sessions - title: Sessions - methods: - get_user_sessions: - operation: - $ref: '#/paths/~1users~1{id}~1sessions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.sessions - _get_user_sessions: - operation: - $ref: '#/paths/~1users~1{id}~1sessions/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_sessions: - operation: - $ref: '#/paths/~1users~1{id}~1sessions/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - get_user_session: - operation: - $ref: '#/paths/~1users~1{id}~1sessions~1{type}~1{session_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.user_session - _get_user_session: - operation: - $ref: '#/paths/~1users~1{id}~1sessions~1{type}~1{session_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_session: - operation: - $ref: '#/paths/~1users~1{id}~1sessions~1{type}~1{session_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/sessions/methods/get_user_session' - - $ref: '#/components/x-stackQL-resources/sessions/methods/get_user_sessions' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/sessions/methods/delete_user_session' - - $ref: '#/components/x-stackQL-resources/sessions/methods/delete_user_sessions' - status_update_notification_rules: - id: pagerduty.users.status_update_notification_rules - name: status_update_notification_rules - title: Status Update Notification Rules - methods: - get_user_status_update_notification_rules: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.rules - _get_user_status_update_notification_rules: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_user_status_update_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules/post' - response: - mediaType: application/json - openAPIDocKey: '201' - get_user_status_update_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.notification_rule - _get_user_status_update_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_user_status_update_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - update_user_status_update_notification_rule: - operation: - $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/get_user_status_update_notification_rule' - - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/get_user_status_update_notification_rules' - insert: - - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/create_user_status_update_notification_rule' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/delete_user_status_update_notification_rule' - me: - id: pagerduty.users.me - name: me - title: Me - methods: - get_current_user: - operation: - $ref: '#/paths/~1users~1me/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.user - _get_current_user: - operation: - $ref: '#/paths/~1users~1me/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/me/methods/get_current_user' - insert: [] - update: [] - delete: [] -paths: - /users: + - users + examples: + response: + summary: Response Example + value: + users: + - id: PXPGF42 + type: user + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + invitation_sent: false + created_via_sso: true + contact_methods: + - id: PTDVERC + type: email_contact_method_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK + html_url: null + job_title: Director of Engineering + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + - id: PAM4FGS + type: user + summary: Kyler Kuhn + self: https://api.pagerduty.com/users/PAM4FGS + html_url: https://subdomain.pagerduty.com/users/PAM4FGS + name: Kyler Kuhn + email: 126_dvm_kyler_kuhn@beahan.name + time_zone: Asia/Hong_Kong + color: red + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: Actually, I am the boss + invitation_sent: false + created_via_sso: false + contact_methods: + - id: PVMGSML + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PAM4FGS/contact_methods/PVMGSMLL + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK + html_url: null + job_title: Senior Engineer + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: users.write + tags: + - Users + operationId: createUser + description: | + Create a new user. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.write` + summary: Create a user + parameters: + - $ref: '#/components/parameters/from_header' + requestBody: + content: + application/json: + schema: + type: object + properties: + user: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + license: + description: The License assigned to the User + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + required: + - name + - email + - type + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + required: + - user + examples: + request: + summary: Request Example + value: + user: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + license: + id: PTDVERC + type: license_reference + description: The user to be created. + responses: + '201': + description: The user that was created. + content: + application/json: + schema: + type: object + properties: + user: + $ref: '#/components/schemas/User' + required: + - user + examples: + response: + summary: Response Example + value: + user: + id: PXPGF42 + type: user + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + invitation_sent: false + created_via_sso: true + contact_methods: + - id: PTDVERC + type: email_contact_method_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK + html_url: null + job_title: Director of Engineering + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List and create users. + /users/{id}: + get: + x-pd-requires-scope: users.read + tags: + - Users + operationId: getUser + description: | + Get details about an existing user. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.read` + summary: Get a user + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_user_detail' + responses: + '200': + description: The user requested. + content: + application/json: + schema: + type: object + properties: + user: + $ref: '#/components/schemas/User' + required: + - user + examples: + response: + summary: Response Example + value: + user: + id: PXPGF42 + type: user + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + invitation_sent: false + created_via_sso: true + contact_methods: + - id: PTDVERC + type: email_contact_method_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK + html_url: null + job_title: Director of Engineering + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + http_cal_url: https://webcal.pagerduty.com/private/ABCDEFGHIJKLMNOP/feed + web_cal_url: webcal://webcal.pagerduty.com/private/ABCDEFGHIJKLMNOP/feed + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: users.write + tags: + - Users + operationId: deleteUser + description: | + Remove an existing user. + + Returns 400 if the user has assigned incidents unless your [pricing plan](https://www.pagerduty.com/pricing) has the `offboarding` feature and the account is [configured](https://support.pagerduty.com/docs/offboarding#section-additional-configurations) appropriately. + + Note that the incidents reassignment process is asynchronous and has no guarantee to complete before the api call return. + + [*Learn more about `offboarding` feature*](https://support.pagerduty.com/docs/offboarding). + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.write` + summary: Delete a user + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The user was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: users.write + tags: + - Users + operationId: updateUser + description: | + Update an existing user. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.write` + summary: Update a user + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + user: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + license: + description: The License assigned to the User + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + required: + - name + - email + - type + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + required: + - user + examples: + request: + summary: Request Example + value: + user: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + license: + id: PTDVERC + type: license_reference + description: The user to be updated. + responses: + '200': + description: The user that was updated. + content: + application/json: + schema: + type: object + properties: + user: + $ref: '#/components/schemas/User' + required: + - user + examples: + response: + summary: Response Example + value: + user: + id: PXPGF42 + type: user + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + invitation_sent: false + created_via_sso: true + contact_methods: + - id: PTDVERC + type: email_contact_method_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK + html_url: null + job_title: Director of Engineering + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage a user. + /users/{id}/audit/records: + get: + x-pd-requires-scope: audit_records.read + tags: + - Users + operationId: listUsersAuditRecords + summary: List audit records for a user + description: | + The response will include audit records with changes that are made to the identified user not changes made by the identified user. + + + The returned records are sorted by the `execution_time` from newest to oldest. + + See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. + + For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + + Scoped OAuth requires: `audit_records.read` + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/audit_since' + - $ref: '#/components/parameters/audit_until' + responses: + '200': + description: Records matching the query criteria. + content: + application/json: + schema: + $ref: '#/components/schemas/AuditRecordResponseSchema' + examples: + response: + $ref: '#/components/examples/AuditRecordUserResponse' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List audit records of changes made to the user. + /users/{id}/contact_methods: + get: + x-pd-requires-scope: users:contact_methods.read + tags: + - Users + operationId: getUserContactMethods + description: | + List contact methods of your PagerDuty user. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.read` + summary: List a user's contact methods + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: A list of contact methods. + content: + application/json: + schema: + type: object + properties: + contact_methods: + type: array + items: + oneOf: + - $ref: '#/components/schemas/PhoneContactMethod' + - $ref: '#/components/schemas/PushContactMethod' + - $ref: '#/components/schemas/EmailContactMethod' + - $ref: '#/components/schemas/WhatsAppContactMethod' + examples: + response: + summary: Response Example + value: + contact_methods: + - id: PXPGF42 + type: email_contact_method + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42 + label: Work + address: grady.haylie.126@hickle.net + send_short_email: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: users:contact_methods.write + tags: + - Users + operationId: createUserContactMethod + description: | + Create a new contact method for the User. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.write` + summary: Create a user contact method + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + contact_method: + description: The Phone Contact Method of the User, used for Voice or SMS. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving notifications. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + device_type: + type: string + description: The type of device. + enum: + - android + - ios + readOnly: true + sounds: + type: array + items: + $ref: '#/components/schemas/PushContactMethodSound' + created_at: + type: string + format: date-time + description: Time at which the contact method was created. + send_short_email: + type: boolean + description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. + default: false + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + - device_type + example: + type: phone_contact_method + label: work + country_code: 123 + address: '1234567' + device_type: android + send_short_email: false + enabled: true + required: + - contact_method + examples: + request: + summary: Request Example + value: + contact_method: + id: PXPGF42 + type: email_contact_method + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42 + label: Work + address: grady.haylie.126@hickle.net + send_short_email: false + description: The contact method to be created. + responses: + '201': + description: The contact method that was created. + content: + application/json: + schema: + type: object + properties: + contact_method: + description: The Phone Contact Method of the User, used for Voice or SMS. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving notifications. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + device_type: + type: string + description: The type of device. + enum: + - android + - ios + readOnly: true + sounds: + type: array + items: + $ref: '#/components/schemas/PushContactMethodSound' + created_at: + type: string + format: date-time + description: Time at which the contact method was created. + send_short_email: + type: boolean + description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. + default: false + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + - device_type + example: + type: phone_contact_method + label: work + country_code: 123 + address: '1234567' + device_type: android + send_short_email: false + enabled: true + examples: + response: + summary: Response Example + value: + contact_method: + id: PXPGF42 + type: email_contact_method + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42 + label: Work + address: grady.haylie.126@hickle.net + send_short_email: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List a user's contact methods. + /users/{id}/contact_methods/{contact_method_id}: + get: + x-pd-requires-scope: users:contact_methods.read + tags: + - Users + operationId: getUserContactMethod + description: | + Get details about a User's contact method. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.read` + summary: Get a user's contact method + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_contact_method_id' + responses: + '200': + description: The user's contact method requested. + content: + application/json: + schema: + type: object + properties: + contact_method: + description: The Phone Contact Method of the User, used for Voice or SMS. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving notifications. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + device_type: + type: string + description: The type of device. + enum: + - android + - ios + readOnly: true + sounds: + type: array + items: + $ref: '#/components/schemas/PushContactMethodSound' + created_at: + type: string + format: date-time + description: Time at which the contact method was created. + send_short_email: + type: boolean + description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. + default: false + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + - device_type + example: + type: phone_contact_method + label: work + country_code: 123 + address: '1234567' + device_type: android + send_short_email: false + enabled: true + examples: + response: + summary: Response Example + value: + contact_method: + id: PXPGF42 + type: email_contact_method + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42 + label: Work + address: grady.haylie.126@hickle.net + send_short_email: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: users:contact_methods.write + tags: + - Users + operationId: deleteUserContactMethod + description: | + Remove a user's contact method. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.write` + summary: Delete a user's contact method + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_contact_method_id' + responses: + '204': + description: The contact method was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: users:contact_methods.write + tags: + - Users + operationId: updateUserContactMethod + description: | + Update a User's contact method. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.write` + summary: Update a user's contact method + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_contact_method_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + contact_method: + description: The Phone Contact Method of the User, used for Voice or SMS. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving notifications. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + device_type: + type: string + description: The type of device. + enum: + - android + - ios + readOnly: true + sounds: + type: array + items: + $ref: '#/components/schemas/PushContactMethodSound' + created_at: + type: string + format: date-time + description: Time at which the contact method was created. + send_short_email: + type: boolean + description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. + default: false + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + - device_type + example: + type: phone_contact_method + label: work + country_code: 123 + address: '1234567' + device_type: android + send_short_email: false + enabled: true + required: + - contact_method + examples: + request: + summary: Request Example + value: + contact_method: + id: PXPGF42 + type: email_contact_method + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42 + label: Work + address: grady.haylie.126@hickle.net + send_short_email: false + description: The user's contact method to be updated. + responses: + '200': + description: The user's contact method that was updated. + content: + application/json: + schema: + type: object + properties: + contact_method: + description: The Phone Contact Method of the User, used for Voice or SMS. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving notifications. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + device_type: + type: string + description: The type of device. + enum: + - android + - ios + readOnly: true + sounds: + type: array + items: + $ref: '#/components/schemas/PushContactMethodSound' + created_at: + type: string + format: date-time + description: Time at which the contact method was created. + send_short_email: + type: boolean + description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. + default: false + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + - device_type + example: + type: phone_contact_method + label: work + country_code: 123 + address: '1234567' + device_type: android + send_short_email: false + enabled: true + examples: + response: + summary: Response Example + value: + contact_method: + id: PXPGF42 + type: email_contact_method + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42 + label: Work + address: grady.haylie.126@hickle.net + send_short_email: false + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage a user's contact method. + /users/{id}/oauth_delegations: + get: + summary: List a user's delegations + description: | + Get a list of OAuth delegations for a specific user. + + This endpoint replaces the deprecated `/users/{id}/sessions` endpoint. + + **Required OAuth Scope:** For Scoped OAuth requests, this operation requires the `oauth_delegations.read` scope. + + Scoped OAuth requires: `oauth_delegations.read` + x-pd-requires-scope: oauth_delegations.read + tags: + - Users + operationId: listUserDelegations + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/oauth_delegation_filter_type' + - $ref: '#/components/parameters/oauth_delegation_status' + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + responses: + '200': + description: Delegations retrieved sucessfully + content: + application/json: + schema: + $ref: '#/components/schemas/UserOAuthDelegations' + examples: + response: + summary: Response Example + value: + oauth_delegations: + - id: e53326c6-a713-409c-8f7e-ps1xczid + type: web + client_id: PagerDutyLogin + self: https://api.pagerduty.com/users/PXPGF42/oauth_delegations/e53326c6-a713-409c-8f7e-ps1xczid + created_at: '2026-01-01T12:00:00Z' + expires_at: '2026-01-08T12:00:00Z' + status: issued + scope: openid profile + limit: 25 + more: false + next_cursor: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: List a user's delegations. + /users/{id}/oauth_delegations/{delegation_id}: + get: + summary: Get a user's delegation + description: | + Get details about a specific OAuth delegation. + + This endpoint replaces the deprecated `/users/{id}/sessions/{session_id}` endpoint. + + **Required OAuth Scope:** For Scoped OAuth requests, this operation requires the `oauth_delegations.read` scope. + + Scoped OAuth requires: `oauth_delegations.read` + x-pd-requires-scope: oauth_delegations.read + tags: + - Users + operationId: getUserDelegation + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/oauth_delegation_id' + responses: + '200': + description: Delegation retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthDelegation' + examples: + response: + summary: Response Example + value: + oauth_delegation: + client_id: PagerDutyLogin + created_at: '2026-01-01T12:00:00Z' + expires_at: '2026-01-08T12:00:00Z' + id: e53326c6-a713-409c-8f7e-ps1xczid + scope: openid profile + self: https://api.pagerduty.com/users/PXPGF42/oauth_delegations/e53326c6-a713-409c-8f7e-ps1xczid + status: issued + type: web + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + '500': + $ref: '#/components/responses/InternalServerError' + description: Retrieves details about a specific OAuth delegation. + /users/{id}/license: + get: + x-pd-requires-scope: licenses.read + tags: + - Users + operationId: getUserLicense + description: | + Get the License allocated to a User + + Scoped OAuth requires: `licenses.read` + summary: Get the License allocated to a User + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The License allocated to the User + content: + application/json: + schema: + type: object + properties: + license: + type: object + required: + - id + - description + - name + - valid_roles + properties: + id: + type: string + description: Uniquely identifies the resource + description: + type: string + description: | + Description of the License. May include the names of add-ons associated with + the License, if there are any. + name: + type: string + description: | + Name of the License. + valid_roles: + type: array + description: The roles a User with this License can have + items: + type: string + role_group: + type: string + enum: + - FullUser + - Stakeholder + description: Indicates whether this License is assignable to full or stakeholder Users + example: FullUser + type: + type: string + description: Type of object + self: + type: string + description: API URL to access the License + html_url: + type: string + description: HTML URL to access the License + summary: + type: string + description: Summary of the License + required: + - license + examples: + response: + summary: Response Example + value: + license: + id: PIP248G + name: Business (Full User) + description: Event Intelligence + valid_roles: + - owner + - admin + - user + - limited_user + - observer + - restricted_access + role_group: FullUser + summary: Business (Full User) + type: license + self: null + html_url: null + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + description: The License allocated to a User + /users/{id}/notification_rules: get: - x-pd-requires-scope: users.read + x-pd-requires-scope: users:contact_methods.read tags: - Users - operationId: listUsers + operationId: getUserNotificationRules description: | - List users of your PagerDuty account, optionally filtered by a search query. + List notification rules of your PagerDuty user. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users.read` - summary: List users + Scoped OAuth requires: `users:contact_methods.read` + summary: List a user's notification rules parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/query' - - $ref: '#/components/parameters/team_ids' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/include_user' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/include_notification_rules' + - $ref: '#/components/parameters/urgency' responses: '200': - description: A paginated array of users. + description: A list of notification rules. content: application/json: schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - users: - type: array - items: - $ref: '#/components/schemas/User' - required: - - users + type: object + properties: + notification_rules: + type: array + items: + $ref: '#/components/schemas/NotificationRule' + required: + - notification_rules examples: response: summary: Response Example value: - users: + notification_rules: - id: PXPGF42 - type: user - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/a8b714a39626f2444ee05990b078995f.png?d=mm&r=PG' - description: I'm the boss - invitation_sent: false - contact_methods: - - id: PTDVERC - type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK' - html_url: null - job_title: Director of Engineering - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - - id: PAM4FGS - type: user - summary: Kyler Kuhn - self: 'https://api.pagerduty.com/users/PAM4FGS' - html_url: 'https://subdomain.pagerduty.com/users/PAM4FGS' - name: Kyler Kuhn - email: 126_dvm_kyler_kuhn@beahan.name - time_zone: Asia/Hong_Kong - color: red - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/47857d059adacf9a41dc4030c2e14b0a.png?d=mm&r=PG' - description: 'Actually, I am the boss' - invitation_sent: false - contact_methods: - - id: PVMGSML - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PAM4FGS/contact_methods/PVMGSMLL' - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK' - html_url: null - job_title: Senior Engineer - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - limit: 25 - offset: 0 - more: false - total: null + type: assignment_notification_rule + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 + html_url: null + created_at: '2016-02-01T16:06:27-05:00' + urgency: high + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: users:contact_methods.write + tags: + - Users + operationId: createUserNotificationRule + description: | + Create a new notification rule. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.write` + summary: Create a user notification rule + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + notification_rule: + $ref: '#/components/schemas/NotificationRule' + required: + - notification_rule + examples: + request: + summary: Request Example + value: + notification_rule: + type: assignment_notification_rule + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method + urgency: high + description: The notification rule to be created. + responses: + '201': + description: The notification rule that was created. + content: + application/json: + schema: + type: object + properties: + notification_rule: + $ref: '#/components/schemas/NotificationRule' + required: + - notification_rule + examples: + response: + summary: Response Example + value: + notification_rule: + id: PXPGF42 + type: assignment_notification_rule + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 + html_url: null + created_at: '2016-02-01T16:06:27-05:00' + urgency: high + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List a user's notification rules. + /users/{id}/notification_rules/{notification_rule_id}: + get: + x-pd-requires-scope: users:contact_methods.read + tags: + - Users + operationId: getUserNotificationRule + description: | + Get details about a user's notification rule. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.read` + summary: Get a user's notification rule + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_notification_rule_id' + - $ref: '#/components/parameters/include_notification_rules' + responses: + '200': + description: The user's notification rule requested. + content: + application/json: + schema: + type: object + properties: + notification_rule: + $ref: '#/components/schemas/NotificationRule' + required: + - notification_rule + examples: + response: + summary: Response Example + value: + notification_rule: + id: PXPGF42 + type: assignment_notification_rule + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 + created_at: '2016-02-01T16:06:27-05:00' + urgency: high '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: users.write + delete: + x-pd-requires-scope: users:contact_methods.write tags: - Users - operationId: createUser + operationId: deleteUserNotificationRule description: | - Create a new user. + Remove a user's notification rule. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users.write` - summary: Create a user + Scoped OAuth requires: `users:contact_methods.write` + summary: Delete a user's notification rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/from_header' + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_notification_rule_id' + responses: + '204': + description: The notification rule was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: users:contact_methods.write + tags: + - Users + operationId: updateUserNotificationRule + description: | + Update a user's notification rule. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:contact_methods.write` + summary: Update a user's notification rule + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_notification_rule_id' requestBody: content: application/json: schema: type: object properties: - user: - $ref: '#/components/schemas/User' + notification_rule: + $ref: '#/components/schemas/NotificationRule' required: - - user + - notification_rule examples: request: summary: Request Example value: - user: - type: user - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - job_title: Director of Engineering - avatar_url: 'https://secure.gravatar.com/avatar/1d1a39d4635208d5664082a6c654a73f.png?d=mm&r=PG' - description: I'm the boss - license: - id: PTDVERC - type: license_reference - description: The user to be created. + notification_rule: + type: assignment_notification_rule + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method + urgency: high + description: The user's notification rule to be updated. responses: - '201': - description: The user that was created. + '200': + description: The user's notification rule that was updated. content: application/json: schema: type: object properties: - user: - $ref: '#/components/schemas/User' - required: - - user + notification_rule: + $ref: '#/components/schemas/NotificationRule' examples: response: summary: Response Example value: - user: + notification_rule: id: PXPGF42 - type: user - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/a8b714a39626f2444ee05990b078995f.png?d=mm&r=PG' - description: I'm the boss - invitation_sent: false - contact_methods: - - id: PTDVERC - type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK' - html_url: null - job_title: Director of Engineering - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' + type: assignment_notification_rule + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 + created_at: '2016-02-01T16:06:27-05:00' + urgency: high '400': $ref: '#/components/responses/ArgumentError' '401': @@ -3943,138 +1995,224 @@ paths: $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/users/{id}': + description: Manage a user's notification rule. + /users/{id}/notification_subscriptions: get: - x-pd-requires-scope: users.read + x-pd-requires-scope: subscribers.read + tags: + - Users + operationId: getUserNotificationSubscriptions + description: | + Retrieve a list of Notification Subscriptions the given User has. + + + > Users must be added through `POST /users/{id}/notification_subscriptions` to be returned from this endpoint. + + Scoped OAuth requires: `subscribers.read` + summary: List Notification Subscriptions + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + subscriptions: + type: array + items: + type: object + properties: + subscription: + $ref: '#/components/schemas/NotificationSubscription' + subscribable_name: + type: string + nullable: true + description: The name of the subscribable + required: + - subscriptions + examples: + response: + summary: Response Example + value: + subscriptions: + - subscription: + subscriber_id: PD1234 + subscriber_type: user + subscribable_id: PD1234 + subscribable_type: incident + subscribable_name: null + account_id: PD1234 + - subscription: + subscriber_id: PD1234 + subscriber_type: user + subscribable_id: PD1234 + subscribable_type: business_service + subscribable_name: business service name + account_id: PD1234 + limit: 2 + offset: 0 + total: 1000 + more: true + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: subscribers.write + summary: Create Notification Subcriptions + operationId: createUserNotificationSubscriptions + tags: + - Users + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + subscriptions: + type: array + items: + $ref: '#/components/schemas/NotificationSubscriptionWithContext' + examples: + response: + summary: Response Example + value: + subscriptions: + - account_id: PD1234 + subscribable_id: PD1234 + subscribable_type: incident + subscriber_id: PD1234 + subscriber_type: user + result: success + - account_id: PD1234 + subscribable_id: PD1234 + subscribable_type: business_service + subscriber_id: PD1234 + subscriber_type: user + result: duplicate + - account_id: PD1234 + subscribable_id: PD1235 + subscribable_type: business_service + subscriber_id: PD1234 + subscriber_type: user + result: unauthorized + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '422': + $ref: '#/components/responses/UnprocessableEntity' + description: | + Create new Notification Subscriptions for the given User. + + Scoped OAuth requires: `subscribers.write` + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + type: object + properties: + subscribables: + type: array + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/NotificationSubscribable' + required: + - subscribables + examples: + request: + summary: Request Example + value: + subscribables: + - subscribable_type: incident + subscribable_id: PD1234 + - subscribable_type: business_service + subscribable_id: PD1234 + - subscribable_type: business_service + subscribable_id: PD1235 + description: The entities to subscribe to. + /users/{id}/notification_subscriptions/unsubscribe: + post: + x-pd-requires-scope: subscribers.write + summary: Remove Notification Subscriptions tags: - Users - operationId: getUser - description: | - Get details about an existing user. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.read` - summary: Get a user - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/include_user' responses: '200': - description: The user requested. + description: OK content: application/json: schema: type: object properties: - user: - $ref: '#/components/schemas/User' + deleted_count: + type: number + unauthorized_count: + type: number + non_existent_count: + type: number required: - - user + - deleted_count + - unauthorized_count + - non_existent_count examples: response: summary: Response Example value: - user: - id: PXPGF42 - type: user - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/a8b714a39626f2444ee05990b078995f.png?d=mm&r=PG' - description: I'm the boss - invitation_sent: false - contact_methods: - - id: PTDVERC - type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK' - html_url: null - job_title: Director of Engineering - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: users.write - tags: - - Users - operationId: deleteUser - description: | - Remove an existing user. - - Returns 400 if the user has assigned incidents unless your [pricing plan](https://www.pagerduty.com/pricing) has the `offboarding` feature and the account is [configured](https://support.pagerduty.com/docs/offboarding#section-additional-configurations) appropriately. - - Note that the incidents reassignment process is asynchronous and has no guarantee to complete before the api call return. - - [*Learn more about `offboarding` feature*](https://support.pagerduty.com/docs/offboarding). - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.write` - summary: Delete a user - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The user was deleted successfully. + deleted_count: 1 + unauthorized_count: 1 + non_existent_count: 0 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: users.write - tags: - - Users - operationId: updateUser + '422': + $ref: '#/components/responses/UnprocessableEntity' + operationId: unsubscribeUserNotificationSubscriptions description: | - Update an existing user. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + Unsubscribe the given User from Notifications on the matching Subscribable entities. - Scoped OAuth requires: `users.write` - summary: Update a user + Scoped OAuth requires: `subscribers.write` parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: @@ -4082,124 +2220,135 @@ paths: schema: type: object properties: - user: - $ref: '#/components/schemas/User' + subscribables: + type: array + uniqueItems: true + minItems: 1 + items: + $ref: '#/components/schemas/NotificationSubscribable' required: - - user + - subscribables examples: request: - summary: Request Example + summary: Response Example value: - user: - type: user - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - job_title: Director of Engineering - avatar_url: 'https://secure.gravatar.com/avatar/1d1a39d4635208d5664082a6c654a73f.png?d=mm&r=PG' - description: I'm the boss - license: - id: PTDVERC - type: license_reference - description: The user to be updated. + subscribables: + - subscribable_type: incident + subscribable_id: PD1234 + - subscribable_type: business_service + subscribable_id: PD1234 + description: The entities to unsubscribe from. + /users/{id}/oncall_handoff_notification_rules: + get: + tags: + - Users + x-pd-requires-scope: users.read + operationId: getUserHandoffNotificationRules + description: | + List Handoff Notification Rules of your PagerDuty User. + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.read` + summary: List a User's Handoff Notification Rules + parameters: + - $ref: '#/components/parameters/id' responses: '200': - description: The user that was updated. + description: A list of Handoff Notification Rules. content: application/json: schema: type: object properties: - user: - $ref: '#/components/schemas/User' + oncall_handoff_notification_rules: + type: array + items: + $ref: '#/components/schemas/HandoffNotificationRule' required: - - user + - oncall_handoff_notification_rules examples: response: summary: Response Example value: - user: - id: PXPGF42 - type: user - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/a8b714a39626f2444ee05990b078995f.png?d=mm&r=PG' - description: I'm the boss - invitation_sent: false - contact_methods: - - id: PTDVERC + oncall_handoff_notification_rules: + - id: PXPGF42 + handoff_type: both + notify_advance_in_minutes: 0 + contact_method: + id: PXPGF42 type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK' - html_url: null - job_title: Director of Engineering - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/users/{id}/audit/records': - get: - x-pd-requires-scope: audit_records.read + post: tags: - Users - operationId: listUsersAuditRecords - summary: List audit records for a user + x-pd-requires-scope: users.write + operationId: createUserHandoffNotificationRule description: | - The response will include audit records with changes that are made to the identified user not changes made by the identified user. - - - The returned records are sorted by the `execution_time` from newest to oldest. - - See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set. - - For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/). + Create a new Handoff Notification Rule. + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `audit_records.read` + Scoped OAuth requires: `users.write` + summary: Create a User Handoff Notification Rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/cursor_limit' - - $ref: '#/components/parameters/cursor_cursor' - - $ref: '#/components/parameters/audit_since' - - $ref: '#/components/parameters/audit_until' + requestBody: + content: + application/json: + schema: + type: object + properties: + oncall_handoff_notification_rule: + $ref: '#/components/schemas/HandoffNotificationRule' + required: + - oncall_handoff_notification_rule + examples: + request: + summary: Request Example + value: + oncall_handoff_notification_rule: + id: PXPGF43 + handoff_type: both + notify_advance_in_minutes: 180 + contact_method: + id: PXPGF42 + type: email_contact_method + description: The Handoff Notification Rule to be created. responses: - '200': - description: Records matching the query criteria. + '201': + description: The Handoff Notification Rule that was created. content: application/json: schema: - $ref: '#/components/schemas/AuditRecordResponseSchema' + type: object + properties: + oncall_handoff_notification_rule: + $ref: '#/components/schemas/HandoffNotificationRule' + required: + - oncall_handoff_notification_rule examples: response: - $ref: '#/components/examples/AuditRecordUserResponse' + summary: Response Example + value: + oncall_handoff_notification_rule: + id: PXPGF42 + handoff_type: both + notify_advance_in_minutes: 180 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4208,188 +2357,207 @@ paths: $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '500': - $ref: '#/components/responses/InternalServerError' - '/users/{id}/contact_methods': + description: List a User's Oncall Handoff Notification Rules. + /users/{id}/oncall_handoff_notification_rules/{oncall_handoff_notification_rule_id}: get: - x-pd-requires-scope: 'users:contact_methods.read' tags: - Users - operationId: getUserContactMethods + x-pd-requires-scope: users.read + operationId: getUserHandoffNotifiactionRule description: | - List contact methods of your PagerDuty user. - + Get details about a User's Handoff Notification Rule. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users:contact_methods.read` - summary: List a user's contact methods + Scoped OAuth requires: `users.read` + summary: Get a user's handoff notification rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/oncall_handoff_notification_rule_id' responses: '200': - description: A list of contact methods. + description: The user's handoff notification rule requested. content: application/json: schema: type: object properties: - contact_methods: - type: array - items: - oneOf: - - $ref: '#/components/schemas/PhoneContactMethod' - - $ref: '#/components/schemas/PushContactMethod' - - $ref: '#/components/schemas/EmailContactMethod' + oncall_handoff_notification_rule: + $ref: '#/components/schemas/HandoffNotificationRule' + required: + - oncall_handoff_notification_rule examples: response: summary: Response Example value: - contact_methods: - - id: PXPGF42 - type: email_contact_method + oncall_handoff_notification_rule: + id: PXPGF42 + handoff_type: both + notify_advance_in_minutes: 60 + contact_method: + id: PXPGF42 + type: email_contact_method_reference summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42' - label: Work - address: grady.haylie.126@hickle.net - send_short_email: false + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: 'users:contact_methods.write' + delete: tags: - Users - operationId: createUserContactMethod + x-pd-requires-scope: users.write + operationId: deleteUserHandoffNotificationRule description: | - Create a new contact method for the User. - + Remove a User's Handoff Notification Rule. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + Scoped OAuth requires: `users.write` + summary: Delete a User's Handoff Notification rule + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/oncall_handoff_notification_rule_id' + responses: + '204': + description: The handoff notification rule was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + tags: + - Users + x-pd-requires-scope: users.write + operationId: updateUserHandoffNotification + description: | + Update a User's Handoff Notification Rule. + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.write` - summary: Create a user contact method + Scoped OAuth requires: `users.write` + summary: Update a User's Handoff Notification Rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/oncall_handoff_notification_rule_id' requestBody: content: application/json: schema: type: object properties: - contact_method: - oneOf: - - $ref: '#/components/schemas/PhoneContactMethod' - - $ref: '#/components/schemas/PushContactMethod' - - $ref: '#/components/schemas/EmailContactMethod' + oncall_handoff_notification_rule: + $ref: '#/components/schemas/HandoffNotificationRule' required: - - contact_method + - oncall_handoff_notification_rule examples: request: summary: Request Example value: - contact_method: + oncall_handoff_notification_rule: id: PXPGF42 - type: email_contact_method - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42' - label: Work - address: grady.haylie.126@hickle.net - send_short_email: false - description: The contact method to be created. + handoff_type: both + notify_advance_in_minutes: 60 + contact_method: + id: PXPGF42 + type: email_contact_method + description: The User's Handoff Notification Rule to be updated. responses: - '201': - description: The contact method that was created. + '200': + description: The User's Handoff Notification Rule that was updated. content: application/json: schema: type: object properties: - contact_method: - oneOf: - - $ref: '#/components/schemas/PhoneContactMethod' - - $ref: '#/components/schemas/PushContactMethod' - - $ref: '#/components/schemas/EmailContactMethod' + oncall_handoff_notification_rule: + $ref: '#/components/schemas/HandoffNotificationRule' examples: response: summary: Response Example value: - contact_method: + oncall_handoff_notification_rule: id: PXPGF42 - type: email_contact_method - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42' - label: Work - address: grady.haylie.126@hickle.net - send_short_email: false + handoff_type: oncall + notify_advance_in_minutes: 30 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 '400': $ref: '#/components/responses/ArgumentError' '401': $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' '403': $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/users/{id}/contact_methods/{contact_method_id}': + description: Manage a User's Handoff Notification Rule. + /users/{id}/sessions: get: - x-pd-requires-scope: 'users:contact_methods.read' + x-pd-requires-scope: users:sessions.read tags: - Users - operationId: getUserContactMethod + operationId: getUserSessions description: | - Get details about a User's contact method. + + > ### Deprecated + > This endpoint is deprecated, please use the [List OAuth Delegations endpoint](https://developer.pagerduty.com/api-reference/fc03ba9dffd1f-list-user-oauth-delegations) instead. + + List active sessions of a PagerDuty user. + + Beginning November 2021, active sessions no longer includes newly issued OAuth tokens. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.read` - summary: Get a user's contact method + Scoped OAuth requires: `users:sessions.read` + summary: List a user's active sessions + deprecated: true parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_contact_method_id' responses: '200': - description: The user's contact method requested. + description: A list of the user's active sessions. content: application/json: schema: type: object properties: - contact_method: - oneOf: - - $ref: '#/components/schemas/PhoneContactMethod' - - $ref: '#/components/schemas/PushContactMethod' - - $ref: '#/components/schemas/EmailContactMethod' + user_sessions: + type: array + items: + $ref: '#/components/schemas/UserSession' + required: + - user_sessions examples: response: summary: Response Example value: - contact_method: - id: PXPGF42 - type: email_contact_method - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42' - label: Work - address: grady.haylie.126@hickle.net - send_short_email: false + user_sessions: + - id: PXPGF42 + user_id: PXPGF42 + created_at: '2018-10-06T21:30:42Z' + summary: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36 + type: browser '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4401,27 +2569,33 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' delete: - x-pd-requires-scope: 'users:contact_methods.write' + x-pd-requires-scope: users:sessions.write + deprecated: true tags: - Users - operationId: deleteUserContactMethod + operationId: deleteUserSessions description: | - Remove a user's contact method. + + > ### Deprecated + > This endpoint is deprecated as OAuth token revocation is now synchronous. Please use the [DELETE /oauth_delegations endpoint](https://developer.pagerduty.com/api-reference/ad1161db75db1-delete-all-o-auth-delegations) instead. + + Delete all user sessions. + + Beginning November 2021, user sessions no longer includes newly issued OAuth tokens. + + If you are interested in deleting mobile app sessions, refer to the Delete OAuth Delegations endpoint. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.write` - summary: Delete a user's contact method + Scoped OAuth requires: `users:sessions.write` + summary: Delete all user sessions parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_contact_method_id' responses: '204': - description: The contact method was deleted successfully. + description: The user sessions were all deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': @@ -4430,76 +2604,54 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: 'users:contact_methods.write' + description: List a user's active sessions. + /users/{id}/sessions/{type}/{session_id}: + get: + x-pd-requires-scope: users:sessions.read tags: - Users - operationId: updateUserContactMethod + operationId: getUserSession description: | - Update a User's contact method. + + > ### Deprecated + > This endpoint is deprecated, please use the [Get OAuth Delegation endpoint](https://developer.pagerduty.com/api-reference//e3c7cd550aa2b-get-a-user-oauth-delegation) instead. + Get details about a user's session. + + Beginning November 2021, user sessions no longer includes newly issued OAuth tokens. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.write` - summary: Update a user's contact method + Scoped OAuth requires: `users:sessions.read` + summary: Get a user's session + deprecated: true parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_contact_method_id' - requestBody: - content: - application/json: - schema: - type: object - properties: - contact_method: - oneOf: - - $ref: '#/components/schemas/PhoneContactMethod' - - $ref: '#/components/schemas/PushContactMethod' - - $ref: '#/components/schemas/EmailContactMethod' - required: - - contact_method - examples: - request: - summary: Request Example - value: - contact_method: - id: PXPGF42 - type: email_contact_method - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42' - label: Work - address: grady.haylie.126@hickle.net - send_short_email: false - description: The user's contact method to be updated. + - $ref: '#/components/parameters/type' + - $ref: '#/components/parameters/session_id' responses: '200': - description: The user's contact method that was updated. + description: The user's session requested. content: application/json: schema: type: object properties: - contact_method: - oneOf: - - $ref: '#/components/schemas/PhoneContactMethod' - - $ref: '#/components/schemas/PushContactMethod' - - $ref: '#/components/schemas/EmailContactMethod' + user_session: + $ref: '#/components/schemas/UserSession' + required: + - user_session examples: response: summary: Response Example value: - contact_method: + user_session: id: PXPGF42 - type: email_contact_method - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_method/PXPGF42' - label: Work - address: grady.haylie.126@hickle.net - send_short_email: false + user_id: PXPGF42 + created_at: '2018-10-06T21:30:42Z' + summary: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36 + type: browser '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4510,112 +2662,91 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - '/users/{id}/license': - get: - x-pd-requires-scope: licenses.read + delete: + x-pd-requires-scope: users:sessions.write + deprecated: true tags: - Users - operationId: getUserLicense + operationId: deleteUserSession description: | - Get the License allocated to a User + + > ### Deprecated + > This endpoint is deprecated as OAuth token revocation is now synchronous. Please use the [DELETE /oauth_delegations endpoint](https://developer.pagerduty.com/api-reference/ad1161db75db1-delete-all-o-auth-delegations) instead. - Scoped OAuth requires: `licenses.read` - summary: Get the License allocated to a User + Delete a user's session. + + Beginning November 2021, user sessions no longer includes newly issued OAuth tokens. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users:sessions.write` + summary: Delete a user's session parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/type' + - $ref: '#/components/parameters/session_id' responses: - '200': - description: The License allocated to the User - content: - application/json: - schema: - type: object - properties: - license: - $ref: '#/components/schemas/LicenseWithCounts/allOf/0' - required: - - license - examples: - response: - summary: Response Example - value: - license: - id: PIP248G - name: Business (Full User) - description: Event Intelligence - valid_roles: - - owner - - admin - - user - - limited_user - - observer - - restricted_access - role_group: FullUser - summary: Business (Full User) - type: license - self: null - html_url: null + '204': + description: The user session was deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' - '/users/{id}/notification_rules': + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage a user's active session. + /users/{id}/status_update_notification_rules: get: - x-pd-requires-scope: 'users:contact_methods.read' + x-pd-requires-scope: users.read tags: - Users - operationId: getUserNotificationRules + operationId: getUserStatusUpdateNotificationRules description: | - List notification rules of your PagerDuty user. + List status update notification rules of your PagerDuty user. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.read` - summary: List a user's notification rules + Scoped OAuth requires: `users.read` + summary: List a user's status update notification rules parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - $ref: '#/components/parameters/include_notification_rules' - - $ref: '#/components/parameters/urgency' responses: '200': - description: A list of notification rules. + description: A list of status update notification rules. content: application/json: schema: type: object properties: - notification_rules: + status_update_notification_rules: type: array items: - $ref: '#/components/schemas/NotificationRule' + $ref: '#/components/schemas/StatusUpdateNotificationRule' required: - - notification_rules + - status_update_notification_rules examples: response: summary: Response Example value: - notification_rules: + status_update_notification_rules: - id: PXPGF42 - type: assignment_notification_rule - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN' - start_delay_in_minutes: 0 + type: status_update_notification_rule + summary: contact method PXPGF42 used as status_update_notification_rule + self: https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN contact_method: id: PXPGF42 type: email_contact_method_reference summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 html_url: null created_at: '2016-02-01T16:06:27-05:00' - urgency: high '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4625,75 +2756,68 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' post: - x-pd-requires-scope: 'users:contact_methods.write' + x-pd-requires-scope: users.write tags: - Users - operationId: createUserNotificationRule + operationId: createUserStatusUpdateNotificationRule description: | - Create a new notification rule. + Create a new status update notification rule. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.write` - summary: Create a user notification rule + Scoped OAuth requires: `users.write` + summary: Create a user status update notification rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: - type: object properties: - notification_rule: - $ref: '#/components/schemas/NotificationRule' + status_update_notification_rule: + $ref: '#/components/schemas/StatusUpdateNotificationRule' required: - - notification_rule + - status_update_notification_rule + type: object examples: request: summary: Request Example value: - notification_rule: - type: assignment_notification_rule - start_delay_in_minutes: 0 + status_update_notification_rule: contact_method: id: PXPGF42 - type: email_contact_method_reference - urgency: high - description: The notification rule to be created. + type: email_contact_method + description: The status update notification rule to be created. responses: '201': - description: The notification rule that was created. + description: The status update notification rule that was created. content: application/json: schema: type: object properties: - notification_rule: - $ref: '#/components/schemas/NotificationRule' + status_update_notification_rule: + $ref: '#/components/schemas/StatusUpdateNotificationRule' required: - - notification_rule + - status_update_notification_rule examples: response: summary: Response Example value: - notification_rule: + status_update_notification_rule: id: PXPGF42 - type: assignment_notification_rule - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN' - start_delay_in_minutes: 0 + type: status_update_notification_rule + summary: contact method PXPGF42 used as status_update_notification_rule + self: https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN contact_method: id: PXPGF42 type: email_contact_method_reference summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 html_url: null created_at: '2016-02-01T16:06:27-05:00' - urgency: high '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4704,37 +2828,36 @@ paths: $ref: '#/components/responses/Forbidden' '429': $ref: '#/components/responses/TooManyRequests' - '/users/{id}/notification_rules/{notification_rule_id}': + description: List a user's status update notification rules. + /users/{id}/status_update_notification_rules/{status_update_notification_rule_id}: get: - x-pd-requires-scope: 'users:contact_methods.read' + x-pd-requires-scope: users.read tags: - Users - operationId: getUserNotificationRule + operationId: getUserStatusUpdateNotificationRule description: | - Get details about a user's notification rule. + Get details about a user's status update notification rule. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.read` - summary: Get a user's notification rule + Scoped OAuth requires: `users.read` + summary: Get a user's status update notification rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_notification_rule_id' + - $ref: '#/components/parameters/user_status_update_notification_rule_id' - $ref: '#/components/parameters/include_notification_rules' responses: '200': - description: The user's notification rule requested. + description: The user's status update notification rule requested. content: application/json: schema: type: object properties: notification_rule: - $ref: '#/components/schemas/NotificationRule' + $ref: '#/components/schemas/StatusUpdateNotificationRule' required: - notification_rule examples: @@ -4743,17 +2866,16 @@ paths: value: notification_rule: id: PXPGF42 - type: assignment_notification_rule - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN' - start_delay_in_minutes: 0 + type: status_update_notification_rule + summary: contact method PXPGF42 used as status_update_notification_rule + self: https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN contact_method: - id: PXPGF42 + id: PTDVERC type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + html_url: null created_at: '2016-02-01T16:06:27-05:00' - urgency: high '400': $ref: '#/components/responses/ArgumentError' '401': @@ -4765,27 +2887,153 @@ paths: '429': $ref: '#/components/responses/TooManyRequests' delete: - x-pd-requires-scope: 'users:contact_methods.write' + x-pd-requires-scope: users.write tags: - Users - operationId: deleteUserNotificationRule + operationId: deleteUserStatusUpdateNotificationRule description: | - Remove a user's notification rule. + Remove a user's status update notification rule. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) - Scoped OAuth requires: `users:contact_methods.write` - summary: Delete a user's notification rule + Scoped OAuth requires: `users.write` + summary: Delete a user's status update notification rule parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_notification_rule_id' + - $ref: '#/components/parameters/user_status_update_notification_rule_id' responses: '204': - description: The notification rule was deleted successfully. + description: The status update notification rule was deleted successfully. + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + put: + x-pd-requires-scope: users.write + tags: + - Users + operationId: updateUserStatusUpdateNotificationRule + description: | + Update a user's status update notification rule. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.write` + summary: Update a user's status update notification rule + parameters: + - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/user_status_update_notification_rule_id' + requestBody: + content: + application/json: + schema: + type: object + properties: + status_update_notification_rule: + $ref: '#/components/schemas/StatusUpdateNotificationRule' + required: + - status_update_notification_rule + examples: + request: + summary: Request Example + value: + status_update_notification_rule: + contact_method: + id: PXPGF42 + type: email_contact_method + description: The user's status update notification rule to be updated. + responses: + '200': + description: The user's status update notification rule that was updated. + content: + application/json: + schema: + type: object + properties: + notification_rule: + $ref: '#/components/schemas/StatusUpdateNotificationRule' + examples: + response: + summary: Response Example + value: + status_update_notification_rule: + id: PXPGF42 + type: status_update_notification_rule + summary: contact method PXPGF42 used as status_update_notification_rule + self: https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN + contact_method: + id: PXPGF42 + type: email_contact_method_reference + summary: Work + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42 + html_url: null + created_at: '2016-02-01T16:06:27-05:00' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '402': + $ref: '#/components/responses/PaymentRequired' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Manage a user's status update notification rule. + /users/{id}/regenerate_private_url_key: + post: + x-pd-requires-scope: users.write + tags: + - Users + operationId: regenerateUserPrivateUrlKey + summary: Regenerate a user's calendar feed URL key + description: | + Regenerate the private URL key used to construct a user's personal iCal calendar feed URLs + (`http_cal_url` and `web_cal_url`). The old key is immediately invalidated; callers should + update any stored feed subscriptions with the new key. + + A user may only regenerate their own key. Account admins may regenerate on behalf of any user. + + The calendar feed URLs act as bearer credentials: anyone with the URL can read that user's + on-call calendar without further authentication. Rotate the key here whenever a URL may + have been exposed (for example, if it was shared outside the intended audience or if an + admin with `can_update_user` retrieved it via `GET /users/{id}?include[]=calendar_urls`). + + Users are members of a PagerDuty account that have the ability to interact with Incidents and + other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + + Scoped OAuth requires: `users.write` + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The user's new private URL key. + content: + application/json: + schema: + type: object + properties: + private_url_key: + type: string + description: The newly generated private URL key for calendar feed URLs. + required: + - private_url_key + examples: + response: + summary: Response Example + value: + private_url_key: ABCDEFGHIJKLMNOP '401': $ref: '#/components/responses/Unauthorized' '403': @@ -4794,1156 +3042,2477 @@ paths: $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: 'users:contact_methods.write' + description: Regenerate the private URL key for a user's personal calendar feeds. + /users/me: + get: tags: - Users - operationId: updateUserNotificationRule + operationId: getCurrentUser + description: | + Get details about the current user. + + This endpoint can only be used with a [user-level API key](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or a key generated through an OAuth flow. This will not work if the request is made with an account-level access token. + + Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#users) + summary: Get the current user + parameters: + - $ref: '#/components/parameters/include_user_detail' + responses: + '200': + description: The requesting user. + content: + application/json: + schema: + type: object + properties: + user: + $ref: '#/components/schemas/User' + required: + - user + examples: + response: + summary: Response Example + value: + user: + id: PXPGF42 + type: user + summary: Earline Greenholt + self: https://api.pagerduty.com/users/PXPGF42 + html_url: https://subdomain.pagerduty.com/users/PXPGF42 + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: null + invitation_sent: false + job_title: Director of Engineering + created_via_sso: true, + contact_methods: + - id: PTDVERC + type: email_contact_method_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC + html_url: null + notification_rules: + - id: P8GRWKK + type: assignment_notification_rule_reference + summary: Default + self: https://api.pagerduty.com/users/PXPGF42/notification_rules/PTDVERC + html_url: null + teams: + - id: PQ9K7I8 + type: team_reference + summary: Engineering + self: https://api.pagerduty.com/teams/PQ9K7I8 + html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8 + '400': + $ref: '#/components/responses/ArgumentError' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get the current user. +components: + schemas: + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + User: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + description: The name of the user. + maxLength: 100 + email: + type: string + format: email + description: The user's email address. + minLength: 6 + maxLength: 100 + time_zone: + type: string + format: tzinfo + description: The preferred time zone name. If null, the account's time zone will be used. + color: + type: string + description: The schedule color. + role: + description: The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`. + type: string + enum: + - admin + - limited_user + - observer + - owner + - read_only_user + - restricted_access + - read_only_limited_user + - user + avatar_url: + type: string + format: url + description: The URL of the user's avatar. + readOnly: true + description: + type: string + description: The user's bio. + nullable: true + invitation_sent: + type: boolean + readOnly: true + description: If true, the user has an outstanding invitation. + job_title: + type: string + description: The user's title. + maxLength: 100 + created_via_sso: + type: boolean + readOnly: true + description: If true, the user was created via Single Sign-On (SSO). + teams: + type: array + readOnly: true + description: The list of teams to which the user belongs. Account must have the `teams` ability to set this. + items: + $ref: '#/components/schemas/TeamReference' + contact_methods: + type: array + readOnly: true + description: The list of contact methods for the user. + items: + $ref: '#/components/schemas/ContactMethodReference' + notification_rules: + readOnly: true + type: array + description: The list of notification rules for the user. + items: + $ref: '#/components/schemas/NotificationRuleReference' + http_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + web_cal_url: + type: string + format: uri + readOnly: true + description: |- + iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys. + + **Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed. + required: + - name + - email + - type + example: + type: user + name: Earline Greenholt + email: 125.greenholt.earline@graham.name + time_zone: America/Lima + color: green + role: admin + job_title: Director of Engineering + created_via_sso: false + avatar_url: https://pd-static-assets.pagerduty.com/users/blank-avatar.png + description: I'm the boss + LicenseReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AuditRecordResponseSchema: + type: object + properties: + records: + type: array + items: + $ref: '#/components/schemas/AuditRecord' + response_metadata: + nullable: true + anyOf: + - $ref: '#/components/schemas/AuditMetadata' + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - records + - limit + - next_cursor + PhoneContactMethod: + description: The Phone Contact Method of the User, used for Voice or SMS. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving notifications. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + example: + type: phone_contact_method + label: work + country_code: 123 + address: '1234567' + PushContactMethod: + description: The Push Contact Method of the User. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + device_type: + type: string + description: The type of device. + enum: + - android + - ios + readOnly: true + sounds: + type: array + items: + $ref: '#/components/schemas/PushContactMethodSound' + created_at: + type: string + format: date-time + description: Time at which the contact method was created. + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + discriminator: + propertyName: type + required: + - type + - label + - address + - device_type + example: + type: push_notification_contact_method + label: work + device_type: android + address: '12341234' + EmailContactMethod: + description: The Email Contact Method of the User. + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + send_short_email: + type: boolean + description: Send an abbreviated email message instead of the standard email output. Useful for email-to-SMS gateways and email based pagers. + default: false + enabled: + type: boolean + description: If true, this email address is capable of receiving email notifications. + readOnly: true + discriminator: + propertyName: type + required: + - type + - label + - address + example: + type: email_contact_method + label: work + address: grady.haylie.126@hickle.net + send_short_email: false + enabled: true + WhatsAppContactMethod: description: | - Update a user's notification rule. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + The WhatsApp Contact Method of the User. - Scoped OAuth requires: `users:contact_methods.write` - summary: Update a user's notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_notification_rule_id' - requestBody: - content: - application/json: - schema: - type: object - properties: - notification_rule: - $ref: '#/components/schemas/NotificationRule' - required: - - notification_rule - examples: - request: - summary: Request Example - value: - notification_rule: - type: assignment_notification_rule - start_delay_in_minutes: 0 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - urgency: high - description: The user's notification rule to be updated. - responses: - '200': - description: The user's notification rule that was updated. - content: - application/json: - schema: - type: object - properties: - notification_rule: - $ref: '#/components/schemas/NotificationRule' - examples: - response: - summary: Response Example - value: - notification_rule: - id: PXPGF42 - type: assignment_notification_rule - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/PPSCXAN' - start_delay_in_minutes: 0 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - created_at: '2016-02-01T16:06:27-05:00' - urgency: high - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/users/{id}/notification_subscriptions': - get: - x-pd-requires-scope: subscribers.read - tags: - - Users - operationId: getUserNotificationSubscriptions - description: | - Retrieve a list of Notification Subscriptions the given User has. + **Availability Note:** WhatsApp contact methods are available in select regions and require account-level access. For information about regional availability and how to enable WhatsApp for your account, please refer to the [PagerDuty Knowledge Base](https://support.pagerduty.com/). + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + country_code: + type: integer + description: The 1-to-3 digit country calling code. + minimum: 1 + maximum: 1999 + enabled: + type: boolean + description: If true, this phone is capable of receiving WhatsApp messages. + readOnly: true + blacklisted: + type: boolean + description: If true, this phone has been blacklisted by PagerDuty and no messages will be sent to it. + readOnly: true + discriminator: + propertyName: type + required: + - type + - label + - address + - country_code + example: + type: whatsapp_contact_method + label: work + country_code: 1 + address: '5555555555' + UserOAuthDelegations: + type: object + properties: + oauth_delegations: + type: array + items: + $ref: '#/components/schemas/OAuthDelegation' + description: Array of OAuth delegation objects + limit: + type: integer + description: Number of results per page + example: 25 + more: + type: boolean + description: Whether there are more results available + example: true + next_cursor: + type: string + description: Cursor for retrieving the next page (only present when more is true) + example: eyJsYXN0RXZhbHVhdGVkS2V5Ijp7ImlkIjoiNzg5MWRkNzktZWIwZi00ZjIzLWE4YzQtcGdmeG0wOSJ9fQ== + required: + - oauth_delegations + - limit + - more + OAuthDelegation: + type: object + properties: + id: + type: string + description: The unique identifier for the delegation + example: e53326c6-a713-409c-8f7e-ps1xczid + status: + type: string + enum: + - issued + - revoked + description: The current status of the delegation + example: issued + client_id: + type: string + description: The OAuth client ID + example: PagerDutyLogin + delegation_type: + type: string + enum: + - web + - mobile + - integration + description: The type of delegation + example: web + scope: + type: string + description: The OAuth scopes granted + example: openid + created_at: + type: string + format: date-time + description: When the delegation was created (ISO 8601 format) + example: '2025-10-30T15:45:02Z' + expires_at: + type: string + format: date-time + description: When the delegation expires (ISO 8601 format) + example: '2025-12-29T15:45:02Z' + self: + type: string + format: uri + description: URL to retrieve this delegation in detail + example: https://api.pagerduty.com/users/PBGVC7B/oauth_delegations/e53326c6-a713-409c-8f7e-ps1xczid + required: + - id + - status + - client_id + - delegation_type + - scope + - created_at + - expires_at + - self + LicenseWithCounts: + type: object + required: + - id + - description + - name + - valid_roles + properties: + id: + type: string + description: Uniquely identifies the resource + description: + type: string + description: | + Description of the License. May include the names of add-ons associated with + the License, if there are any. + name: + type: string + description: | + Name of the License. + valid_roles: + type: array + description: The roles a User with this License can have + items: + type: string + role_group: + type: string + enum: + - FullUser + - Stakeholder + description: Indicates whether this License is assignable to full or stakeholder Users + example: FullUser + type: + type: string + description: Type of object + self: + type: string + description: API URL to access the License + html_url: + type: string + description: HTML URL to access the License + summary: + type: string + description: Summary of the License + current_value: + type: integer + description: How many of these Licenses are currently allocated to Users + allocations_available: + type: integer + nullable: true + description: | + How many of these licenses are available to be allocated to a user. If this + value is "null" then there is no limit on the number of allocations allowed. + NotificationRule: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + start_delay_in_minutes: + type: integer + description: The delay before firing the rule, in minutes. + minimum: 0 + contact_method: + $ref: '#/components/schemas/ContactMethodReference' + urgency: + type: string + enum: + - high + - low + description: Which incident urgency this rule is used for. Account must have the `urgencies` ability to have a low urgency notification rule. + description: A rule for contacting the user. + required: + - start_delay_in_minutes + - urgency + - contact_method + - type + example: + type: assignment_notification_rule + start_delay_in_minutes: 0 + contact_method: + id: PXPGF42 + type: email_contact_method_reference + urgency: high + NotificationSubscription: + title: NotificationSubscription + description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable. + type: object + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + description: The type of the entity being subscribed + enum: + - user + - team + subscribable_id: + type: string + description: The ID of the entity being subscribed to + subscribable_type: + type: string + description: The type of the entity being subscribed to + enum: + - incident + - business_service + account_id: + type: string + description: The ID of the account belonging to the subscriber entity + x-examples: + example-1: + subscriber_id: string + subscriber_type: user + subscribable_id: string + subscribable_type: incident + account_id: string + NotificationSubscriptionWithContext: + title: NotificationSubscriptionWithContext + type: object + description: An object describing the relationship of a NotificationSubscriber and a NotificationSubscribable with additional context on status of subscription attempt. + x-examples: + example-1: + subscriber_id: string + subscriber_type: user + subscribable_id: string + subscribable_type: incident + account_id: string + result: success + properties: + subscriber_id: + type: string + description: The ID of the entity being subscribed + subscriber_type: + type: string + enum: + - user + - team + description: The type of the entity being subscribed + subscribable_id: + type: string + description: The ID of the entity being subscribed to + subscribable_type: + type: string + enum: + - incident + - business_service + description: The type of the entity being subscribed to + account_id: + type: string + description: The type of the entity being subscribed to + result: + type: string + enum: + - success + - duplicate + - unauthorized + description: The resulting status of the subscription + NotificationSubscribable: + title: NotificationSubscribable + description: A reference of a subscribable entity. + type: object + properties: + subscribable_id: + type: string + description: The ID of the entity to subscribe to + subscribable_type: + type: string + description: The type of the entity being subscribed to + enum: + - incident + - business_service + example: + subscribable_id: PD1234 + subscribable_type: incident + HandoffNotificationRule: + type: object + description: A rule for contacting the user for Handoff Notifications. + properties: + id: + type: string + readOnly: true + notify_advance_in_minutes: + type: integer + description: The delay before firing the rule, in minutes. + minimum: 0 + handoff_type: + type: string + description: The type of handoff being created. + default: both + enum: + - both + - oncall + - offcall + contact_method: + $ref: '#/components/schemas/ContactMethodReference' + required: + - id + - handoff_type + - contact_method + example: + id: PXPGF42 + notify_advance_in_minutes: 180 + handoff_type: both + contact_method: + id: PXPGF42 + type: email_contact_method_reference + UserSession: + type: object + properties: + id: + type: string + readOnly: true + user_id: + type: string + readOnly: true + created_at: + type: string + format: date-time + readOnly: true + description: The date/time the user session was first created. + type: + type: string + readOnly: true + description: The type of the session + enum: + - browser + - oauth + summary: + type: string + readOnly: true + description: The summary of the session + required: + - id + - user_id + - created_at + - type + - summary + example: + id: PXPGF42 + user_id: PXPGF42 + created_at: '2018-10-06T21:30:42Z' + summary: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36 + type: browser + StatusUpdateNotificationRule: + type: object + description: A rule for contacting the user for Incident Status Updates. + properties: + contact_method: + $ref: '#/components/schemas/ContactMethodReference' + required: + - contact_method + example: + contact_method: + id: PXPGF42 + type: email_contact_method_reference + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + TeamReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + ContactMethodReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + NotificationRuleReference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + Reference: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + required: + - type + - id + description: (opaque JSON object) + AuditRecord: + type: object + readOnly: true + description: An Audit Trail record + properties: + id: + type: string + self: + type: string + nullable: true + description: Record URL. + execution_time: + type: string + format: date-time + description: The date/time the action executed, in ISO8601 format and millisecond precision. + execution_context: + type: object + description: Action execution context + properties: + request_id: + type: string + nullable: true + description: Request Id + remote_address: + type: string + nullable: true + description: remote address + nullable: true + actors: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + method: + type: object + description: The method information + properties: + description: + type: string + nullable: true + truncated_token: + description: Truncated token containing the last 4 chars of the token's actual value. + type: string + nullable: true + example: 3xyz + type: + type: string + description: | + Describes the method used to perform the action: - - > Users must be added through `POST /users/{id}/notification_subscriptions` to be returned from this endpoint. + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - Scoped OAuth requires: `subscribers.read` - summary: List Notification Subscriptions - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - subscriptions: - type: array - items: - type: object - properties: - subscription: - $ref: '#/components/schemas/NotificationSubscription' - subscribable_name: - type: string - nullable: true - description: The name of the subscribable - required: - - subscriptions - examples: - response: - summary: Response Example - value: - subscriptions: - - subscription: - subscriber_id: PD1234 - subscriber_type: user - subscribable_id: PD1234 - subscribable_type: incident - subscribable_name: null - account_id: PD1234 - - subscription: - subscriber_id: PD1234 - subscriber_type: user - subscribable_id: PD1234 - subscribable_type: business_service - subscribable_name: business service name - account_id: PD1234 - limit: 2 - offset: 0 - total: 1000 - more: true - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: subscribers.write - summary: Create Notification Subcriptions - operationId: createUserNotificationSubscriptions - tags: - - Users - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - subscriptions: - type: array - items: - $ref: '#/components/schemas/NotificationSubscriptionWithContext' - examples: - response: - summary: Response Example - value: - subscriptions: - - account_id: PD1234 - subscribable_id: PD1234 - subscribable_type: incident - subscriber_id: PD1234 - subscriber_type: user - result: success - - account_id: PD1234 - subscribable_id: PD1234 - subscribable_type: business_service - subscriber_id: PD1234 - subscriber_type: user - result: duplicate - - account_id: PD1234 - subscribable_id: PD1235 - subscribable_type: business_service - subscriber_id: PD1234 - subscriber_type: user - result: unauthorized - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '422': - $ref: '#/components/responses/UnprocessableEntity' - description: | - Create new Notification Subscriptions for the given User. + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - Scoped OAuth requires: `subscribers.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - subscribables: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/NotificationSubscribable' - required: - - subscribables - examples: - request: - summary: Request Example - value: - subscribables: - - subscribable_type: incident - subscribable_id: PD1234 - - subscribable_type: business_service - subscribable_id: PD1234 - - subscribable_type: business_service - subscribable_id: PD1235 - description: The entities to subscribe to. - '/users/{id}/notification_subscriptions/unsubscribe': - post: - x-pd-requires-scope: subscribers.write - summary: Remove Notification Subscriptions - tags: - - Users - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - properties: - deleted_count: - type: number - unauthorized_count: - type: number - non_existent_count: - type: number - required: - - deleted_count - - unauthorized_count - - non_existent_count - examples: - response: - summary: Response Example - value: - deleted_count: 1 - unauthorized_count: 1 - non_existent_count: 0 - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '422': - $ref: '#/components/responses/UnprocessableEntity' - operationId: unsubscribeUserNotificationSubscriptions - description: | - Unsubscribe the given User from Notifications on the matching Subscribable entities. + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - Scoped OAuth requires: `subscribers.write` - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - subscribables: - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/NotificationSubscribable' - required: - - subscribables - examples: - request: - summary: Response Example - value: - subscribables: - - subscribable_type: incident - subscribable_id: PD1234 - - subscribable_type: business_service - subscribable_id: PD1234 - description: The entities to unsubscribe from. - '/users/{id}/oncall_handoff_notification_rules': - get: - tags: - - Users - x-pd-requires-scope: users.read - operationId: getUserHandoffNotificationRules - description: | - List Handoff Notification Rules of your PagerDuty User. - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - Scoped OAuth requires: `users.read` - summary: List a User's Handoff Notification Rules - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: A list of Handoff Notification Rules. - content: - application/json: - schema: + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + required: + - type + root_resource: + $ref: '#/components/schemas/Reference' + action: + type: string + example: create + details: + type: object + nullable: true + description: | + Additional details to provide further information about the action or + the resource that has been audited. + properties: + resource: + $ref: '#/components/schemas/Reference' + fields: + description: | + A set of fields that have been affected. + The fields that have not been affected MAY be returned. + type: array + nullable: true + items: type: object + description: | + Information about the affected field. + When available, field's before and after values are returned: + + #### Resource creation + - `value` MAY be returned + + #### Resource update + - `value` MAY be returned + - `before_value` MAY be returned + + #### Resource deletion + - `before_value` MAY be returned properties: - oncall_handoff_notification_rules: - type: array - items: - $ref: '#/components/schemas/HandoffNotificationRule' - required: - - oncall_handoff_notification_rules - examples: - response: - summary: Response Example + name: + type: string + description: Name of the resource field + example: name + description: + type: string + nullable: true + description: Human readable description of the resource field + example: First and Last name value: - oncall_handoff_notification_rules: - - id: PXPGF42 - handoff_type: both - notify_advance_in_minutes: 0 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - tags: - - Users - x-pd-requires-scope: users.write - operationId: createUserHandoffNotificationRule - description: | - Create a new Handoff Notification Rule. - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.write` - summary: Create a User Handoff Notification Rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - type: object - properties: - oncall_handoff_notification_rule: - $ref: '#/components/schemas/HandoffNotificationRule' - required: - - oncall_handoff_notification_rule - examples: - request: - summary: Request Example - value: - oncall_handoff_notification_rule: - id: PXPGF43 - handoff_type: both - notify_advance_in_minutes: 180 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - description: The Handoff Notification Rule to be created. - responses: - '201': - description: The Handoff Notification Rule that was created. - content: - application/json: - schema: + type: string + nullable: true + description: new or updated value of the field + example: Jonathan + before_value: + type: string + nullable: true + description: previous or deleted value of the field + example: John + required: + - name + references: + description: A set of references that have been affected. + type: array + nullable: true + items: type: object properties: - oncall_handoff_notification_rule: - $ref: '#/components/schemas/HandoffNotificationRule' + name: + type: string + description: Name of the reference field + example: team_members + description: + type: string + nullable: true + description: Human readable description of the references field + example: First and Last name + added: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' + removed: + type: array + nullable: true + items: + $ref: '#/components/schemas/Reference' required: - - oncall_handoff_notification_rule - examples: - response: - summary: Response Example - value: - oncall_handoff_notification_rule: - id: PXPGF42 - handoff_type: both - notify_advance_in_minutes: 180 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/users/{id}/oncall_handoff_notification_rules/{oncall_handoff_notification_rule_id}': - get: - tags: - - Users - x-pd-requires-scope: users.read - operationId: getUserHandoffNotifiactionRule - description: | - Get details about a User's Handoff Notification Rule. - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.read` - summary: Get a user's handoff notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/oncall_handoff_notification_rule_id' - responses: - '200': - description: The user's handoff notification rule requested. - content: - application/json: - schema: + - name + required: + - resource + required: + - id + - execution_time + - method + - root_resource + - action + AuditMetadata: + type: object + properties: + messages: + type: array + nullable: true + items: + type: string + example: Message about the result + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + ContactMethod: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label (e.g., "Work", "Mobile", etc.). + address: + type: string + description: 'The "address" to deliver to: email, phone number, etc., depending on the type.' + description: The method to contact a user. + discriminator: + propertyName: type + required: + - type + - label + - address + PushContactMethodSound: + type: object + properties: + type: + type: string + description: The type of sound. + enum: + - alert_high_urgency + - alert_low_urgency + file: + type: string + description: The sound file name. + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - oncall_handoff_notification_rule: - $ref: '#/components/schemas/HandoffNotificationRule' - required: - - oncall_handoff_notification_rule - examples: - response: - summary: Response Example - value: - oncall_handoff_notification_rule: - id: PXPGF42 - handoff_type: both - notify_advance_in_minutes: 60 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - tags: - - Users - x-pd-requires-scope: users.write - operationId: deleteUserHandoffNotificationRule + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: description: | - Remove a User's Handoff Notification Rule. - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.write` - summary: Delete a User's Handoff Notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/oncall_handoff_notification_rule_id' - responses: - '204': - description: The handoff notification rule was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - tags: - - Users - x-pd-requires-scope: users.write - operationId: updateUserHandoffNotification + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: description: | - Update a User's Handoff Notification Rule. - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.write` - summary: Update a User's Handoff Notification Rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/oncall_handoff_notification_rule_id' - requestBody: - content: - application/json: - schema: - type: object - properties: - oncall_handoff_notification_rule: - $ref: '#/components/schemas/HandoffNotificationRule' - required: - - oncall_handoff_notification_rule - examples: - request: - summary: Request Example - value: - oncall_handoff_notification_rule: - id: PXPGF42 - handoff_type: both - notify_advance_in_minutes: 60 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - description: The User's Handoff Notification Rule to be updated. - responses: - '200': - description: The User's Handoff Notification Rule that was updated. - content: - application/json: - schema: + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - oncall_handoff_notification_rule: - $ref: '#/components/schemas/HandoffNotificationRule' - examples: - response: - summary: Response Example - value: - oncall_handoff_notification_rule: - id: PXPGF42 - handoff_type: oncall - notify_advance_in_minutes: 30 - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/users/{id}/sessions': - get: - x-pd-requires-scope: 'users:sessions.read' - tags: - - Users - operationId: getUserSessions + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + PaymentRequired: description: | - List active sessions of a PagerDuty user. - - Beginning November 2021, active sessions no longer includes newly issued OAuth tokens. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users:sessions.read` - summary: List a user's active sessions - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: A list of the user's active sessions. - content: - application/json: - schema: + Account does not have the abilities to perform the action. Please review the response for the required abilities. + You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - user_sessions: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/UserSession' - required: - - user_sessions - examples: - response: - summary: Response Example - value: - user_sessions: - - id: PXPGF42 - user_id: PXPGF42 - created_at: '2018-10-06T21:30:42Z' - summary: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' - type: browser - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: 'users:sessions.write' - tags: - - Users - operationId: deleteUserSessions - description: | - Delete all user sessions. - - Beginning November 2021, user sessions no longer includes newly issued OAuth tokens. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users:sessions.write` - summary: Delete all user sessions - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The user sessions were all deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/users/{id}/sessions/{type}/{session_id}': - get: - x-pd-requires-scope: 'users:sessions.read' - tags: - - Users - operationId: getUserSession - description: | - Get details about a user's session. - - Beginning November 2021, user sessions no longer includes newly issued OAuth tokens. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users:sessions.read` - summary: Get a user's session - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/type' - - $ref: '#/components/parameters/session_id' - responses: - '200': - description: The user's session requested. - content: - application/json: - schema: - type: object - properties: - user_session: - $ref: '#/components/schemas/UserSession' - required: - - user_session - examples: - response: - summary: Response Example - value: - user_session: - id: PXPGF42 - user_id: PXPGF42 - created_at: '2018-10-06T21:30:42Z' - summary: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' - type: browser - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: 'users:sessions.write' - tags: - - Users - operationId: deleteUserSession - description: | - Delete a user's session. - - Beginning November 2021, user sessions no longer includes newly issued OAuth tokens. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users:sessions.write` - summary: Delete a user's session - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/type' - - $ref: '#/components/parameters/session_id' - responses: - '204': - description: The user session was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - '/users/{id}/status_update_notification_rules': - get: - x-pd-requires-scope: users.read - tags: - - Users - operationId: getUserStatusUpdateNotificationRules - description: | - List status update notification rules of your PagerDuty user. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.read` - summary: List a user's status update notification rules - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/early_access_status-update-notification-rules' - - $ref: '#/components/parameters/include_notification_rules' - responses: - '200': - description: A list of status update notification rules. - content: - application/json: - schema: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - status_update_notification_rules: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: type: array + readOnly: true items: - $ref: '#/components/schemas/StatusUpdateNotificationRule' - required: - - status_update_notification_rules - examples: - response: - summary: Response Example - value: - status_update_notification_rules: - - id: PXPGF42 - type: status_update_notification_rule - summary: contact method PXPGF42 used as status_update_notification_rule - self: 'https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN' - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - html_url: null - created_at: '2016-02-01T16:06:27-05:00' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - post: - x-pd-requires-scope: users.write - tags: - - Users - operationId: createUserStatusUpdateNotificationRule - description: | - Create a new status update notification rule. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.write` - summary: Create a user status update notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/early_access_status-update-notification-rules' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - properties: - status_update_notification_rule: - $ref: '#/components/schemas/StatusUpdateNotificationRule' - required: - - status_update_notification_rule - examples: - request: - summary: Request Example - value: - status_update_notification_rule: - contact_method: - id: PXPGF42 - type: email_contact_method_reference - description: The status update notification rule to be created. - responses: - '201': - description: The status update notification rule that was created. - content: - application/json: - schema: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + InternalServerError: + description: Internal Server Error the PagerDuty server experienced an error. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - status_update_notification_rule: - $ref: '#/components/schemas/StatusUpdateNotificationRule' - required: - - status_update_notification_rule - examples: - response: - summary: Response Example - value: - status_update_notification_rule: - id: PXPGF42 - type: status_update_notification_rule - summary: contact method PXPGF42 used as status_update_notification_rule - self: 'https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN' - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - html_url: null - created_at: '2016-02-01T16:06:27-05:00' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/users/{id}/status_update_notification_rules/{status_update_notification_rule_id}': - get: - x-pd-requires-scope: users.read - tags: - - Users - operationId: getUserStatusUpdateNotificationRule - description: | - Get details about a user's status update notification rule. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - - Scoped OAuth requires: `users.read` - summary: Get a user's status update notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/early_access_status-update-notification-rules' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_status_update_notification_rule_id' - - $ref: '#/components/parameters/include_notification_rules' - responses: - '200': - description: The user's status update notification rule requested. - content: - application/json: - schema: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + UnprocessableEntity: + description: Unprocessable Entity. Some arguments failed validation checks. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: type: object properties: - notification_rule: - $ref: '#/components/schemas/StatusUpdateNotificationRule' - required: - - notification_rule - examples: - response: - summary: Response Example - value: - notification_rule: - id: PXPGF42 - type: status_update_notification_rule - summary: contact method PXPGF42 used as status_update_notification_rule - self: 'https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN' - contact_method: - id: PTDVERC - type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - html_url: null - created_at: '2016-02-01T16:06:27-05:00' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - delete: - x-pd-requires-scope: users.write - tags: - - Users - operationId: deleteUserStatusUpdateNotificationRule + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + query: + name: query + in: query + description: Filters the result, showing only the records whose name matches the query. + required: false + schema: + type: string + team_ids: + name: team_ids[] + in: query + description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. + explode: true + schema: + type: array + items: + type: string + uniqueItems: true + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false description: | - Remove a user's status update notification rule. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - Scoped OAuth requires: `users.write` - summary: Delete a user's status update notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/early_access_status-update-notification-rules' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_status_update_notification_rule_id' - responses: - '204': - description: The status update notification rule was deleted successfully. - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - put: - x-pd-requires-scope: users.write - tags: - - Users - operationId: updateUserStatusUpdateNotificationRule + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + include_user: + name: include[] + in: query + description: Array of additional Models to include in response. + explode: true + schema: + type: string + enum: + - contact_methods + - notification_rules + - teams + - subdomains + uniqueItems: true + from_header: + name: From + in: header + description: The email address of a valid user associated with the account making the request. + required: false + schema: + type: string + format: email + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + include_user_detail: + name: include[] + in: query + description: 'Array of additional Models to include in response. Use `calendar_urls` to include `http_cal_url` and `web_cal_url`; account admins with `can_update_user` may use this to retrieve another user''s calendar feed URLs. Note that these URLs are bearer credentials: anyone with the URL can read that user''s on-call calendar.' + explode: true + schema: + type: string + enum: + - contact_methods + - notification_rules + - teams + - subdomains + - calendar_urls + uniqueItems: true + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false description: | - Update a user's status update notification rule. + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + audit_since: + name: since + in: query + description: The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours) + schema: + type: string + format: date-time + audit_until: + name: until + in: query + description: The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`. + schema: + type: string + format: date-time + user_contact_method_id: + name: contact_method_id + in: path + description: The contact method ID on the user. + required: true + schema: + type: string + oauth_delegation_filter_type: + name: delegation_type + in: query + description: The type of OAuth delegations to filter on. Allowed values are 'mobile', 'web', and 'integration'. You can pass one or more types in, separated by commas (e.g., `type=web,mobile`). + schema: + type: string + enum: + - mobile + - web + - integration + oauth_delegation_status: + name: status + in: query + description: The status of the delegations to return. Allowed values are 'issued' and 'revoked'. You can pass one or more statuses in, separated by commas (e.g., `status=issued,revoked`). + schema: + type: string + enum: + - issued + - revoked + oauth_delegation_id: + name: delegation_id + in: path + description: The ID of the delegation. + required: true + schema: + type: string + include_notification_rules: + name: include[] + in: query + description: Array of additional details to include. + explode: true + schema: + type: string + enum: + - contact_methods + uniqueItems: true + urgency: + name: urgency + in: query + description: The incident urgency for which the notification rules are applied. If not specified, defaults to `high`. + explode: true + schema: + type: string + enum: + - high + - low + - all + uniqueItems: true + user_notification_rule_id: + name: notification_rule_id + in: path + description: The notification rule ID on the user. + required: true + schema: + type: string + oncall_handoff_notification_rule_id: + name: oncall_handoff_notification_rule_id + in: path + description: The oncall handoff notification rule ID on the user. + required: true + schema: + type: string + type: + name: type + in: path + description: The session type for the user session ID. + required: true + schema: + type: string + session_id: + name: session_id + in: path + description: The session ID for the user. + required: true + schema: + type: string + user_status_update_notification_rule_id: + name: status_update_notification_rule_id + in: path + description: The status update notification rule ID on the user. + required: true + schema: + type: string + audit_method_type: + name: method_type + in: query + description: Method type filter. + schema: + type: string + description: | + Describes the method used to perform the action: - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. + `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - > ### Early Access - > This endpoint is in Early Access and may change at any time. You must pass in the X-EARLY-ACCESS header to access it. + `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) + `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - Scoped OAuth requires: `users.write` - summary: Update a user's status update notification rule - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/early_access_status-update-notification-rules' - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/user_status_update_notification_rule_id' - requestBody: - content: - application/json: - schema: - type: object - properties: - status_update_notification_rule: - $ref: '#/components/schemas/StatusUpdateNotificationRule' - required: - - status_update_notification_rule - examples: - request: - summary: Request Example - value: - status_update_notification_rule: - contact_method: - id: PXPGF42 + `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + + `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. + enum: + - browser + - oauth + - api_token + - identity_provider + - other + examples: + AuditRecordUserResponse: + summary: Response Example + value: + records: + - id: PD_ADD_HIGH_URGENCY_NOTIFICATION + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + references: + - added: + - id: PD_NOTIFICATION_RULE_HIGH + summary: 'High Urgency (Email: Default)' + type: assignment_notification_rule_reference + name: notification_rules + resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:32.343Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: start_delay_in_minutes + value: '0' + - name: urgency + value: high + references: + - added: + - id: PD_CONTACT_METHOD + summary: Default + type: email_contact_method_reference + name: contact_method + resource: + id: PD_NOTIFICATION_RULE_HIGH + summary: 'High Urgency (Email: Default)' + type: assignment_notification_rule_reference + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:32.343Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + - id: PD_ADD_LOW_URGENCY_EMAIL_RULE + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: start_delay_in_minutes + value: '0' + - name: urgency + value: low + references: + - added: + - id: PD_CONTACT_METHOD + summary: Default + type: email_contact_method_reference + name: contact_method + resource: + id: PD_NOTIFICATION_RULE_LOW + summary: 'Low Urgency (Email: Default)' + type: assignment_notification_rule_reference + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:32.335Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + references: + - added: + - id: PD_NOTIFICATION_RULE_LOW + summary: 'Low Urgency (Email: Default)' + type: assignment_notification_rule_reference + name: notification_rules + resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:32.335Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + - id: PD_EMAIL_CONTACT_FOR_USER + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: label + value: Default + - name: type + value: email_contact_method + - name: address + value: testuser@testabc123.com + resource: + id: PD_CONTACT_METHOD + summary: Default + type: email_contact_method_reference + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:32.327Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + - id: PD_ADD_EMAIL_CONTACT_TO_USER + action: update + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + references: + - added: + - id: PD_CONTACT_METHOD + summary: Default type: email_contact_method_reference - description: The user's status update notification rule to be updated. - responses: - '200': - description: The user's status update notification rule that was updated. - content: - application/json: - schema: - type: object - properties: - notification_rule: - $ref: '#/components/schemas/StatusUpdateNotificationRule' - examples: - response: - summary: Response Example - value: - status_update_notification_rule: - id: PXPGF42 - type: status_update_notification_rule - summary: contact method PXPGF42 used as status_update_notification_rule - self: 'https://api.pagerduty.com/users/PXPGF42/status_update_notification_rules/PPSCXAN' - contact_method: - id: PXPGF42 - type: email_contact_method_reference - summary: Work - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PXPGF42' - html_url: null - created_at: '2016-02-01T16:06:27-05:00' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '402': - $ref: '#/components/responses/PaymentRequired' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' - /users/me: - get: - tags: - - Users - operationId: getCurrentUser - description: | - Get details about the current user. - - This endpoint can only be used with a [user-level API key](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or a key generated through an OAuth flow. This will not work if the request is made with an account-level access token. - - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#users) - summary: Get the current user - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/include_user' - responses: - '200': - description: The requesting user. - content: - application/json: - schema: - type: object - properties: - user: - $ref: '#/components/schemas/User' - required: - - user - examples: - response: - summary: Response Example - value: - user: - id: PXPGF42 - type: user - summary: Earline Greenholt - self: 'https://api.pagerduty.com/users/PXPGF42' - html_url: 'https://subdomain.pagerduty.com/users/PXPGF42' - name: Earline Greenholt - email: 125.greenholt.earline@graham.name - time_zone: America/Lima - color: green - role: admin - avatar_url: 'https://secure.gravatar.com/avatar/a8b714a39626f2444ee05990b078995f.png?d=mm&r=PG' - description: null - invitation_sent: false - job_title: Director of Engineering - contact_methods: - - id: PTDVERC - type: email_contact_method_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC' - html_url: null - notification_rules: - - id: P8GRWKK - type: assignment_notification_rule_reference - summary: Default - self: 'https://api.pagerduty.com/users/PXPGF42/notification_rules/PTDVERC' - html_url: null - teams: - - id: PQ9K7I8 - type: team_reference - summary: Engineering - self: 'https://api.pagerduty.com/teams/PQ9K7I8' - html_url: 'https://subdomain.pagerduty.com/teams/PQ9K7I8' - '400': - $ref: '#/components/responses/ArgumentError' - '429': - $ref: '#/components/responses/TooManyRequests' + name: contact_methods + resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:32.327Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + - id: PD_CREATE_USER + action: create + actors: + - id: PDUSER + summary: John Snow + type: user_reference + self: https://api.pagerduty.com/users/PD_USER123 + html_url: https://mydomain.pagerduty.com/users/PD_USER123 + details: + fields: + - name: name + value: Test User + - name: role + value: user + - name: email + value: testuser@testabc123.com + - name: time_zone + value: America/New_York + - name: description + value: null + - name: job_title + value: null + - name: color + value: brown + resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + execution_context: + request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d + execution_time: '2021-01-05T15:17:31.708Z' + method: + type: browser + root_resource: + id: PD_USER_999 + summary: Test User + type: user_reference + self: https://api.pagerduty.com/users/PD_USER_999 + html_url: https://mydomain.pagerduty.com/users/PD_USER_999 + limit: 10 + next_cursor: null + x-stackQL-resources: + users: + id: pagerduty.users.users + name: users + title: Users + methods: + list: + operation: + $ref: '#/paths/~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.users + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1users~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user + delete: + operation: + $ref: '#/paths/~1users~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + regenerate_private_url_key: + operation: + $ref: '#/paths/~1users~1{id}~1regenerate_private_url_key/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: [] + audit_records: + id: pagerduty.users.audit_records + name: audit_records + title: Audit Records + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1audit~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/audit_records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + contact_methods: + id: pagerduty.users.contact_methods + name: contact_methods + title: Contact Methods + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1contact_methods/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.contact_methods + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1contact_methods/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.contact_method + delete: + operation: + $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1contact_methods~1{contact_method_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/contact_methods/methods/get' + - $ref: '#/components/x-stackQL-resources/contact_methods/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/contact_methods/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/contact_methods/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/contact_methods/methods/delete' + replace: [] + oauth_delegations: + id: pagerduty.users.oauth_delegations + name: oauth_delegations + title: Oauth Delegations + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1oauth_delegations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.oauth_delegations + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1users~1{id}~1oauth_delegations~1{delegation_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/oauth_delegations/methods/get' + - $ref: '#/components/x-stackQL-resources/oauth_delegations/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + licenses: + id: pagerduty.users.licenses + name: licenses + title: Licenses + methods: + get: + operation: + $ref: '#/paths/~1users~1{id}~1license/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.license + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/licenses/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + notification_rules: + id: pagerduty.users.notification_rules + name: notification_rules + title: Notification Rules + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1notification_rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.notification_rules + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1notification_rules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.notification_rule + delete: + operation: + $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1notification_rules~1{notification_rule_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/notification_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/notification_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/notification_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/notification_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/notification_rules/methods/delete' + replace: [] + notification_subscriptions: + id: pagerduty.users.notification_subscriptions + name: notification_subscriptions + title: Notification Subscriptions + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1notification_subscriptions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.subscriptions + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1notification_subscriptions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unsubscribe: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1notification_subscriptions~1unsubscribe/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/notification_subscriptions/methods/create' + update: [] + delete: [] + replace: [] + oncall_handoff_notification_rules: + id: pagerduty.users.oncall_handoff_notification_rules + name: oncall_handoff_notification_rules + title: Oncall Handoff Notification Rules + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.oncall_handoff_notification_rules + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.oncall_handoff_notification_rule + delete: + operation: + $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1oncall_handoff_notification_rules~1{oncall_handoff_notification_rule_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/oncall_handoff_notification_rules/methods/delete' + replace: [] + sessions: + id: pagerduty.users.sessions + name: sessions + title: Sessions + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1sessions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user_sessions + delete_all: + operation: + $ref: '#/paths/~1users~1{id}~1sessions/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + get: + operation: + $ref: '#/paths/~1users~1{id}~1sessions~1{type}~1{session_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user_session + delete: + operation: + $ref: '#/paths/~1users~1{id}~1sessions~1{type}~1{session_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sessions/methods/get' + - $ref: '#/components/x-stackQL-resources/sessions/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/sessions/methods/delete' + - $ref: '#/components/x-stackQL-resources/sessions/methods/delete_all' + replace: [] + status_update_notification_rules: + id: pagerduty.users.status_update_notification_rules + name: status_update_notification_rules + title: Status Update Notification Rules + methods: + list: + operation: + $ref: '#/paths/~1users~1{id}~1status_update_notification_rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.status_update_notification_rules + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1status_update_notification_rules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.notification_rule + delete: + operation: + $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{id}~1status_update_notification_rules~1{status_update_notification_rule_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/status_update_notification_rules/methods/delete' + replace: [] + me: + id: pagerduty.users.me + name: me + title: Me + methods: + get: + operation: + $ref: '#/paths/~1users~1me/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.user + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/me/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/vendors.yaml b/providers/src/pagerduty/v00.00.00000/services/vendors.yaml index 7ef68e1b..6519669a 100644 --- a/providers/src/pagerduty/v00.00.00000/services/vendors.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/vendors.yaml @@ -1,122 +1,144 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Vendors + description: Vendors are integration types (AWS CloudWatch, Splunk, Datadog). version: 2.0.0 - title: PagerDuty API - vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors +paths: + /vendors: + get: + x-pd-requires-scope: vendors.read + tags: + - Vendors + operationId: listVendors + description: | + List all vendors. + + A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#vendors) + + Scoped OAuth requires: `vendors.read` + summary: List vendors + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + responses: + '200': + description: A paginated array of vendors. + content: + application/json: + schema: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + vendors: + type: array + items: + $ref: '#/components/schemas/Vendor' + required: + - vendors + examples: + response: + summary: Response Example + value: + vendors: + - id: PZQ6AUS + type: vendor + summary: Amazon CloudWatch + self: https://api.pagerduty.com/vendors/PZQ6AUS + name: Amazon CloudWatch + website_url: https://aws.amazon.com/cloudwatch + logo_url: https://s3.amazonaws.com/pdpartner/cloudwatch_large.png + thumbnail_url: https://s3.amazonaws.com/pdpartner/cloudwatch_thumb.png + description: Amazon Web Services CloudWatch provides monitoring for AWS cloud resources and customer-run applications. AWS can collect data, gain insight, and alert users to fix problems within applications and organizations. AWS CloudWatch gives system-wide visibility into resource utilization and notifications can be set for when any metrics cross a specified threshold. + integration_guide_url: http://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/ + limit: 25 + offset: 0 + more: false + total: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List vendors. + /vendors/{id}: + get: + x-pd-requires-scope: vendors.read + tags: + - Vendors + operationId: getVendor + description: | + Get details about one specific vendor. + + A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors + + For more information see the [API Concepts Document](https://developer.pagerduty.com/api-reference/a47605517c19a-api-concepts#vendors) + + Scoped OAuth requires: `vendors.read` + summary: Get a vendor + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The vendor requested + content: + application/json: + schema: + type: object + properties: + vendor: + type: array + items: + $ref: '#/components/schemas/Vendor' + required: + - vendor + examples: + response: + summary: Response Example + value: + vendor: + - id: PZQ6AUS + type: vendor + summary: Amazon CloudWatch + self: https://api.pagerduty.com/vendors/PZQ6AUS + name: Amazon CloudWatch + website_url: https://aws.amazon.com/cloudwatch + logo_url: https://s3.amazonaws.com/pdpartner/cloudwatch_large.png + thumbnail_url: https://s3.amazonaws.com/pdpartner/cloudwatch_thumb.png + description: Amazon Web Services CloudWatch provides monitoring for AWS cloud resources and customer-run applications. AWS can collect data, gain insight, and alert users to fix problems within applications and organizations. AWS CloudWatch gives system-wide visibility into resource utilization and notifications can be set for when any metrics cross a specified threshold. + integration_guide_url: http://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/ + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get details about one specific vendor. components: schemas: Pagination: @@ -140,1527 +162,134 @@ components: nullable: true readOnly: true Vendor: - allOf: - - $ref: '#/components/schemas/Tag/allOf/0' - - type: object - properties: - name: - type: string - readOnly: true - description: The short name of the vendor - website_url: - type: string - format: url - readOnly: true - description: URL of the vendor's main website - logo_url: - type: string - format: url - readOnly: true - description: URL of a logo identifying the vendor - thumbnail_url: - type: string - format: url - readOnly: true - description: URL of a small thumbnail image identifying the vendor - description: - type: string - readOnly: true - description: 'A short description of this vendor, and common use-cases of integrations for this vendor.' - integration_guide_url: - type: string - format: url - readOnly: true - description: URL of an integration guide for this vendor - example: - type: vendor - name: Amazon CloudWatch - website_url: 'https://aws.amazon.com/cloudwatch' - logo_url: 'https://s3.amazonaws.com/pdpartner/cloudwatch_large.png' - thumbnail_url: 'https://s3.amazonaws.com/pdpartner/cloudwatch_thumb.png' - description: 'Amazon Web Services CloudWatch provides monitoring for AWS cloud resources and customer-run applications. AWS can collect data, gain insight, and alert users to fix problems within applications and organizations. AWS CloudWatch gives system-wide visibility into resource utilization and notifications can be set for when any metrics cross a specified threshold.' - integration_guide_url: 'http://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/' + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + name: + type: string + readOnly: true + description: The short name of the vendor + website_url: + type: string + format: url + readOnly: true + description: URL of the vendor's main website + logo_url: + type: string + format: url + readOnly: true + description: URL of a logo identifying the vendor + thumbnail_url: + type: string + format: url + readOnly: true + description: URL of a small thumbnail image identifying the vendor + description: + type: string + readOnly: true + description: A short description of this vendor, and common use-cases of integrations for this vendor. + integration_guide_url: + type: string + format: url + readOnly: true + description: URL of an integration guide for this vendor + example: + type: vendor + name: Amazon CloudWatch + website_url: https://aws.amazon.com/cloudwatch + logo_url: https://s3.amazonaws.com/pdpartner/cloudwatch_large.png + thumbnail_url: https://s3.amazonaws.com/pdpartner/cloudwatch_thumb.png + description: Amazon Web Services CloudWatch provides monitoring for AWS cloud resources and customer-run applications. AWS can collect data, gain insight, and alert users to fix problems within applications and organizations. AWS CloudWatch gives system-wide visibility into resource utilization and notifications can be set for when any metrics cross a specified threshold. + integration_guide_url: http://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/ Tag: - allOf: - - type: object - properties: - id: - type: string - readOnly: true - summary: - type: string - nullable: true - readOnly: true - description: 'A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.' - type: - type: string - readOnly: true - description: 'A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.' - self: - type: string - nullable: true - readOnly: true - format: url - description: the API show URL at which the object is accessible - html_url: - type: string - nullable: true - readOnly: true - format: url - description: a URL at which the entity is uniquely displayed in the Web app - - type: object - properties: - type: - type: string - description: The type of object being created. - default: tag - enum: - - tag - label: - type: string - description: The label of the tag. - maxLength: 191 - required: - - label - - type - example: - type: tag - label: Batman - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. - - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. - - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. - - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false - description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. - - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: + type: object + properties: + id: type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false - description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false - description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query - description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: - - - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: - type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: - type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: + readOnly: true + summary: type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team - in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. - required: false - schema: - type: string - include_notification_rules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' - in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true - schema: - type: string - enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: - name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. - in: path - required: true - schema: - type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman responses: ArgumentError: description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Unauthorized: description: | Caller did not supply credentials or did not provide the correct credentials. @@ -1668,7 +297,29 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 Forbidden: description: | Caller is not authorized to view the requested resource. @@ -1676,18 +327,63 @@ components: content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 TooManyRequests: - description: 'Too many requests have been made, the rate limit has been reached.' + description: Too many requests have been made, the rate limit has been reached. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - Conflict: - description: The request conflicts with the current state of the server. + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. content: application/json: schema: + description: Generic error response from the PagerDuty API type: object properties: error: @@ -1710,1038 +406,100 @@ components: example: message: Not Found code: 2100 - NotFound: - description: The requested resource was not found. + Conflict: + description: The request conflicts with the current state of the server. content: application/json: schema: - $ref: '#/components/responses/Conflict/content/application~1json/schema' - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` - examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 - type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ - CreateSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: header-name - value: header-value - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - type: webhook_subscription - GetSubscriptionExample: - summary: Example - value: - webhook_subscription: - delivery_method: - id: PF9KMXH - secret: null - temporarily_disabled: false - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false - PutSubscriptionExample: - summary: Update Subscribed Events - value: - webhook_subscription: - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.reopened - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + offset_limit: + name: limit + in: query + required: false + description: The number of results per page. + schema: + type: integer + offset_offset: + name: offset + in: query + required: false + description: Offset to start pagination search results. + schema: + type: integer + offset_total: + name: total + in: query + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. + schema: + default: false + type: boolean + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string x-stackQL-resources: vendors: id: pagerduty.vendors.vendors name: vendors title: Vendors methods: - list_vendors: + list: operation: $ref: '#/paths/~1vendors/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.vendors - _list_vendors: - operation: - $ref: '#/paths/~1vendors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_vendor: + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: operation: $ref: '#/paths/~1vendors~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.vendor - _get_vendor: - operation: - $ref: '#/paths/~1vendors~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/vendors/methods/get_vendor' - - $ref: '#/components/x-stackQL-resources/vendors/methods/list_vendors' + - $ref: '#/components/x-stackQL-resources/vendors/methods/get' + - $ref: '#/components/x-stackQL-resources/vendors/methods/list' insert: [] update: [] delete: [] -paths: - /vendors: - get: - x-pd-requires-scope: vendors.read - tags: - - Vendors - operationId: listVendors - description: | - List all vendors. - - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#vendors) - - Scoped OAuth requires: `vendors.read` - summary: List vendors - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - responses: - '200': - description: A paginated array of vendors. - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Pagination' - - type: object - properties: - vendors: - type: array - items: - $ref: '#/components/schemas/Vendor' - required: - - vendors - examples: - response: - summary: Response Example - value: - vendors: - - id: PZQ6AUS - type: vendor - summary: Amazon CloudWatch - self: 'https://api.pagerduty.com/vendors/PZQ6AUS' - name: Amazon CloudWatch - website_url: 'https://aws.amazon.com/cloudwatch' - logo_url: 'https://s3.amazonaws.com/pdpartner/cloudwatch_large.png' - thumbnail_url: 'https://s3.amazonaws.com/pdpartner/cloudwatch_thumb.png' - description: 'Amazon Web Services CloudWatch provides monitoring for AWS cloud resources and customer-run applications. AWS can collect data, gain insight, and alert users to fix problems within applications and organizations. AWS CloudWatch gives system-wide visibility into resource utilization and notifications can be set for when any metrics cross a specified threshold.' - integration_guide_url: 'http://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/' - limit: 25 - offset: 0 - more: false - total: null - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '429': - $ref: '#/components/responses/TooManyRequests' - '/vendors/{id}': - get: - x-pd-requires-scope: vendors.read - tags: - - Vendors - operationId: getVendor - description: | - Get details about one specific vendor. - - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors - - For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#vendors) - - Scoped OAuth requires: `vendors.read` - summary: Get a vendor - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The vendor requested - content: - application/json: - schema: - type: object - properties: - vendor: - type: array - items: - $ref: '#/components/schemas/Vendor' - required: - - vendor - examples: - response: - summary: Response Example - value: - vendor: - - id: PZQ6AUS - type: vendor - summary: Amazon CloudWatch - self: 'https://api.pagerduty.com/vendors/PZQ6AUS' - name: Amazon CloudWatch - website_url: 'https://aws.amazon.com/cloudwatch' - logo_url: 'https://s3.amazonaws.com/pdpartner/cloudwatch_large.png' - thumbnail_url: 'https://s3.amazonaws.com/pdpartner/cloudwatch_thumb.png' - description: 'Amazon Web Services CloudWatch provides monitoring for AWS cloud resources and customer-run applications. AWS can collect data, gain insight, and alert users to fix problems within applications and organizations. AWS CloudWatch gives system-wide visibility into resource utilization and notifications can be set for when any metrics cross a specified threshold.' - integration_guide_url: 'http://www.pagerduty.com/docs/guides/aws-cloudwatch-integration-guide/' - '400': - $ref: '#/components/responses/ArgumentError' - '401': - $ref: '#/components/responses/Unauthorized' - '403': - $ref: '#/components/responses/Forbidden' - '404': - $ref: '#/components/responses/NotFound' - '429': - $ref: '#/components/responses/TooManyRequests' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/webhooks.yaml b/providers/src/pagerduty/v00.00.00000/services/webhooks.yaml index 815787b4..483a4447 100644 --- a/providers/src/pagerduty/v00.00.00000/services/webhooks.yaml +++ b/providers/src/pagerduty/v00.00.00000/services/webhooks.yaml @@ -1,2460 +1,874 @@ openapi: 3.0.2 -servers: - - url: 'https://api.pagerduty.com' - description: PagerDuty V2 API. info: - contact: - name: PagerDuty Support - url: 'http://www.pagerduty.com/support' - email: support@pagerduty.com + title: PagerDuty API - Webhooks + description: Webhook subscriptions (v3 webhooks) and their OAuth clients. version: 2.0.0 - title: PagerDuty API - webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. -security: - - api_key: [] -tags: - - name: Abilities - description: | - This describes your account's abilities by feature name. For example `"teams"`. - An ability may be available to your account based on things like your pricing plan or account state. - - name: Add-ons - description: | - Developers can write their own functionality to insert into PagerDuty's UI. - - name: Analytics - description: | - Provides enriched incident data. - - name: Apps - description: '' - - name: Audit - description: | - Provides audit record data. - - name: Automation Actions - description: | - Automation Actions invoke jobs that are staged in Runbook Automation or Process Automation. - - name: Paused Incident Reports - description: | - Provides paused Incident reporting data on services and accounts that have paused Alerts. - - name: Business Services - description: | - Business services model capabilities that span multiple technical services and that may be owned by several different teams. - - name: Custom Fields - description: | - Custom fields allow you to enrich PagerDuty incidents with critical and helpful metadata throughout the incident lifecycle. - - name: Change Events - description: | - Change Events enable you to send informational events about recent changes such as code deploys and system config changes from any system that can make an outbound HTTP connection. These events do not create incidents and do not send notifications; they are shown in context with incidents on the same PagerDuty service. - - name: Escalation Policies - description: | - Escalation policies define which user should be alerted at which time. - - name: Event Orchestrations - description: | - Event Orchestrations allow you to route events to an endpoint and create collections of Event Orchestrations, which define sets of actions to take based on event content. - - name: Extension Schemas - description: | - A PagerDuty extension vendor represents a specific type of outbound extension such as Generic Webhook, Slack, ServiceNow. - - name: Extensions - description: | - Extensions are representations of Extension Schema objects that are attached to Services. - - name: Incidents - description: | - An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy. - - name: Incident Workflows - description: | - An Incident Workflow is a sequence of configurable Steps and associated Triggers that can execute automated Actions for a given Incident. - - name: Licenses - description: | - Licenses are allocated to Users to allow for per-User access to PagerDuty functionality within an Account. - - name: Log Entries - description: | - A log of all the events that happen to an Incident, and these are exposed as Log Entries. - - name: Maintenance Windows - description: | - A Maintenance Window is used to temporarily disable one or more Services for a set period of time. - - name: Notifications - description: | - A Notification is created when an Incident is triggered or escalated. - - name: On-Calls - description: | - An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules - - name: Priorities - description: | - A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans. - - name: Response Plays - description: | - Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle. - - name: Rulesets - description: | - Rulesets allow you to route events to an endpoint and create collections of Event Rules, which define sets of actions to take based on event content. - - name: Schedules - description: | - A Schedule determines the time periods that users are On-Call. - - name: Service Dependencies - description: | - Services are categorized into technical and business services. Dependencies can be created via any combination of these services. - - name: Services - description: | - A Service may represent an application, component, or team you wish to open incidents against. - - name: Webhooks - description: | - A webhook is a way to receive events that occur on the PagerDuty platform via an HTTP POST request. - V3 webhooks are set up by creating a webhook subscription. - - name: Status Dashboards - description: | - Status Dashboards represent user-defined views for the Status Dashboard product that are limited to specific Business Services rather than the whole set of top-level Business Services (those with no dependent Services). - - name: Tags - description: | - A Tag is applied to Escalation Policies, Teams or Users and can be used to filter them. - - name: Teams - description: | - A team is a collection of Users and Escalation Policies that represent a group of people within an organization. - - name: Templates - description: | - Templates is a new feature which will allow customers to create message templates to be leveraged by (but not limited to) status updates. The API will be secured to customers with the status updates entitlements. - - name: Users - description: | - Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. - - name: Vendors - description: | - A PagerDuty Vendor represents a specific type of integration. AWS Cloudwatch, Splunk, Datadog are all examples of vendors -components: - schemas: - WebhookSubscription: - type: object - properties: - id: - type: string - readOnly: true - type: - type: string - description: The type indicating the schema of the object. - default: webhook_subscription - enum: - - webhook_subscription - active: - type: boolean - default: true - description: Determines whether this subscription will produce webhook events. - delivery_method: - type: object - properties: - id: - type: string - readOnly: true - secret: - type: string - description: The secret used to sign webhook payloads. Only provided on the initial create response. - nullable: true - readOnly: true - temporarily_disabled: - type: boolean - description: Whether or not this webhook subscription is temporarily disabled. Becomes `true` if the delivery method URL is repeatedly rejected by the server. - type: - type: string - description: Indicates the type of the delivery method. - default: http_delivery_method - enum: - - http_delivery_method - url: - type: string - description: The destination URL for webhook delivery. - format: url - custom_headers: - type: array - description: 'Optional headers to be set on this webhook subscription when sent. The header values are redacted in GET requests, but are not redacted on the webhook when delivered to the webhook''s endpoint.' - required: - - type - - url - description: - type: string - description: A short description of the webhook subscription. - events: - type: array - description: The set of outbound event types the webhook will receive. - minItems: 1 - uniqueItems: true - items: - type: string - filter: - type: object - properties: - id: - type: string - description: The id of the object being used as the filter. This field is required for all filter types except account_reference. - type: - type: string - description: The type of object being used as the filter. - enum: - - account_reference - - service_reference - - team_reference - required: - - type - required: - - type - - delivery_method - - events - - filter - Pagination: - type: object - properties: - offset: - type: integer - description: Echoes offset pagination property. - readOnly: true - limit: - type: integer - description: Echoes limit pagination property. - readOnly: true - more: - type: boolean - description: Indicates if there are additional records to return - readOnly: true - total: - type: integer - description: The total number of records matching the given query. - nullable: true - readOnly: true - AutomationActionsActionClassificationEnum: - type: string - enum: - - diagnostic - - remediation - nullable: true - WebhookSubscriptionUpdate: - type: object - properties: - webhook_subscription: - type: object - properties: - description: - type: string - description: A short description of the webhook subscription. - events: - type: array - description: The set of outbound event types the subscription will receive. - minItems: 1 - uniqueItems: true - items: - type: string - filter: - type: object - properties: - id: - type: string - description: The id of the object being used as the filter. This field is required for all filter types except account_reference. - type: - type: string - description: The type of object being used as the filter. - enum: - - account_reference - - service_reference - - team_reference - active: - type: boolean - description: 'If true, a webhook will be sent. True is the default state. If false, a webhook will not be sent.' - parameters: - header_Accept: - name: Accept - description: The `Accept` header is used as a versioning header. - in: header - required: false - schema: - type: string - default: application/vnd.pagerduty+json;version=2 - header_Content-Type: - name: Content-Type - in: header - required: false - schema: - type: string - default: application/json - enum: - - application/json - audit_since: - name: since - in: query - description: 'The start of the date range over which you want to search. If not specified, defaults to `now() - 24 hours` (past 24 hours)' - schema: - type: string - format: date-time - audit_until: - name: until - in: query - description: 'The end of the date range over which you want to search. If not specified, defaults to `now()`. May not be more than 31 days after `since`.' - schema: - type: string - format: date-time - audit_root_resource_types: - name: 'root_resource_types[]' - in: query - description: Resource type filter for the root_resource. - schema: - type: string - enum: - - users - - teams - - schedules - - escalation_policies - - services - example: users - audit_actor_type: - name: actor_type - in: query - description: Actor type filter. - schema: - type: string - example: user_reference - audit_actor_id: - name: actor_id - in: query - description: Actor Id filter. Must be qualified by providing the `actor_type` param. - schema: - type: string - example: P123456 - audit_method_type: - name: method_type - in: query - description: Method type filter. - schema: - type: string - description: | - Describes the method used to perform the action: - - `browser` -- authenticated user session. Session value is not returned in the `truncated_token` field. - - `oauth` -- access token obtained via the OAuth flow. Truncated token value is returned in the `truncated_token` field. +paths: + /webhook_subscriptions: + get: + x-pd-requires-scope: webhook_subscriptions.read + tags: + - Webhooks + operationId: listWebhookSubscriptions + summary: List webhook subscriptions + description: | + List existing webhook subscriptions. - `api_token` -- Pagerduty API token. Truncated token value is returned in the `truncated_token` field. + The `filter_type` and `filter_id` query parameters may be used to only show subscriptions + for a particular _service_ or _team_. - `identity_provider` -- action performed by an Identity provider on behalf of a user. No value is returned in the `truncated_token` field. + For more information on webhook subscriptions and how they are used to configure v3 webhooks + see the [Webhooks v3 Developer Documentation](https://developer.pagerduty.com/docs/webhooks/v3-overview/). - `other` -- Method that does not fall in the predefined categories. Truncated token value MAY be returned in the `truncated_token` field. - enum: - - browser - - oauth - - api_token - - identity_provider - - other - audit_method_truncated_token: - name: method_truncated_token - in: query - description: Method truncated_token filter. Must be qualified by providing the `method_type` param. - schema: - type: string - example: 3xyz - audit_actions: - name: 'actions[]' - in: query - description: Action filter - schema: - type: string - description: | - The action executed on the aggregate - enum: - - create - - update - - delete - offset_limit: - name: limit - in: query - required: false - description: The number of results per page. - schema: - type: integer - offset_offset: - name: offset - in: query - required: false - description: Offset to start pagination search results. - schema: - type: integer - offset_total: - name: total - in: query - required: false + Scoped OAuth requires: `webhook_subscriptions.read` + parameters: + - $ref: '#/components/parameters/offset_limit' + - $ref: '#/components/parameters/offset_offset' + - $ref: '#/components/parameters/offset_total' + - $ref: '#/components/parameters/webhooks_filter_type' + - $ref: '#/components/parameters/webhooks_filter_id' + responses: + '200': + description: A set of webhook subscriptions matching the request. + content: + application/json: + schema: + type: object + properties: + webhook_subscriptions: + type: array + items: + $ref: '#/components/schemas/WebhookSubscription' + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + required: + - webhook_subscriptions + examples: + response: + $ref: '#/components/examples/ListSubscriptionExample' + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + post: + x-pd-requires-scope: webhook_subscriptions.write + tags: + - Webhooks + operationId: createWebhookSubscription + summary: Create a webhook subscription description: | - By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + Creates a new webhook subscription. - See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. - schema: - default: false - type: boolean - automation_actions_name: - name: name - description: Filters results to include the ones matching the name (case insensitive substring matching) - in: query - required: false - schema: - type: string - nullable: false - automation_actions_runners_include: - name: 'include[]' - in: query - required: false - description: Includes additional data elements into the response - explode: true - schema: - type: array - items: - type: string - enum: - - associated_actions - example: associated_actions - uniqueItems: true - automation_actions_runner_id: - name: runner_id - description: | - Filters results to include the ones linked to the specified runner. - Specifying the value `any` filters results to include the ones linked to runners only, - thus omitting the results not linked to runners. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_classification: - name: classification - description: Filters results to include the ones matching the specified classification (aka category) - in: query - required: false - schema: - $ref: '#/components/schemas/AutomationActionsActionClassificationEnum' - automation_actions_action_type: - name: action_type - description: Filters results to include the ones matching the specified action type - in: query - required: false - schema: - type: string - enum: - - script - - process_automation - example: process_automation - automation_actions_team_id: - name: team_id - description: Filters results to include the ones associated with the specified team. - in: query - required: false - schema: - type: string - nullable: false - automation_actions_service_id: - name: service_id - description: Filters results to include the ones associated with the specified service - in: query - required: false - schema: - type: string - nullable: false - automation_actions_invocation_state: - name: invocation_state - description: Invocation state - in: query - schema: - type: string - description: 'prepared -- the invocation exists and can be referenced, but is NOT available to a Runner
created -- the invocation exists and is waiting for a Runner
sent -- invocation sent to a Runner
queued -- invocation queued by a Runner
running -- invocation is being ran by a Runner
aborted -- invocation was aborted on a Runner
completed -- invocation completed on a Runner
error -- invocation encountered an error on a Runner' - enum: - - prepared - - created - - sent - - queued - - running - - aborted - - completed - - error - example: sent - automation_actions_incident_id: - name: incident_id - description: Incident ID - in: query - required: true - schema: - type: string - example: Q2LAR4ADCXC8IB - past_incidents_limit: - name: limit - in: query - required: false - description: The number of results to be returned in the response. - schema: - type: integer - default: 5 - minimum: 1 - maximum: 999 - past_incidents_total: - name: total - in: query - required: false + For more information on webhook subscriptions and how they are used to configure v3 webhooks + see the [Webhooks v3 Developer Documentation](https://developer.pagerduty.com/docs/webhooks/v3-overview/). + + Scoped OAuth requires: `webhook_subscriptions.write` + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + webhook_subscription: + $ref: '#/components/schemas/WebhookSubscription' + required: + - webhook_subscription + examples: + request: + $ref: '#/components/examples/CreateSubscriptionExample' + responses: + '200': + description: The webhook subscription that was created. + content: + application/json: + schema: + type: object + properties: + webhook_subscription: + $ref: '#/components/schemas/WebhookSubscription' + required: + - webhook_subscription + examples: + response: + $ref: '#/components/examples/GetSubscriptionExample' + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + /webhook_subscriptions/{id}: + get: + x-pd-requires-scope: webhook_subscriptions.read + tags: + - Webhooks + operationId: getWebhookSubscription + summary: Get a webhook subscription description: | - By default the `total` field in the response body is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated with the total number of Past Incidents. - schema: - type: boolean - default: false - cursor_limit: - name: limit - in: query - required: false - description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. - schema: - type: integer - cursor_cursor: - name: cursor - in: query - required: false + Gets details about an existing webhook subscription. + + Scoped OAuth requires: `webhook_subscriptions.read` + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The webhook subscription that was requested. + content: + application/json: + schema: + type: object + properties: + webhook_subscription: + $ref: '#/components/schemas/WebhookSubscription' + required: + - webhook_subscription + examples: + response: + $ref: '#/components/examples/GetSubscriptionExample' + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + put: + x-pd-requires-scope: webhook_subscriptions.write + tags: + - Webhooks + operationId: updateWebhookSubscription + summary: Update a webhook subscription description: | - Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. - schema: - type: string - early_access_analytics: - schema: - type: string - default: analytics-v2 - enum: - - analytics-v2 - in: header + Updates an existing webhook subscription. + + Only the fields being updated need to be included on the request. This operation does not + support updating the `delivery_method` of the webhook subscription. + + Scoped OAuth requires: `webhook_subscriptions.write` + parameters: + - $ref: '#/components/parameters/id' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WebhookSubscriptionUpdate' + examples: + request: + $ref: '#/components/examples/PutSubscriptionExample' + responses: + '200': + description: The updated webhook subscription. + content: + application/json: + schema: + type: object + properties: + webhook_subscription: + $ref: '#/components/schemas/WebhookSubscription' + required: + - webhook_subscription + examples: + response: + $ref: '#/components/examples/GetSubscriptionExample' + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + delete: + x-pd-requires-scope: webhook_subscriptions.write + tags: + - Webhooks + operationId: deleteWebhookSubscription + summary: Delete a webhook subscription description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - name: X-EARLY-ACCESS - required: true - early_access_status-update-notification-rules: - name: X-EARLY-ACCESS - in: header + Deletes a webhook subscription. + + Scoped OAuth requires: `webhook_subscriptions.write` + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: The webhook subscription was deleted successfully. + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + /webhook_subscriptions/{id}/enable: + post: + x-pd-requires-scope: webhook_subscriptions.write + tags: + - Webhooks + operationId: enableWebhookSubscription + summary: Enable a webhook subscription description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: status-update-notification-rules - enum: - - status-update-notification-rules - early_access_bis: - schema: - type: string - default: business-impact-early-access - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `business-impact-early-access`. Do not use this endpoint in production, as it may change!' - required: true - early_access_status_dashboards: - schema: - type: string - default: status-dashboards - in: header - name: X-EARLY-ACCESS - description: 'This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header with the value `status-dashboards`. Do not use this endpoint in production, as it may change!' - required: true - webhooks_filter_type: - name: filter_type - in: query - required: false - description: The type of resource to filter upon. - schema: - enum: - - service - - team - type: string - webhooks_filter_id: - name: filter_id - in: query - required: false - description: The id of the resource to filter upon. - schema: - type: string - id: - name: id - description: The ID of the resource. - in: path - required: true - schema: - type: string - ids: - name: 'ids[]' - description: The IDs of the resources. - in: query - explode: true - schema: - type: string - entity_type: - name: entity_type - in: path - description: Type of entity related with the tag - required: true - schema: - type: string - enum: - - users - - teams - - escalation_policies - business_service_id: - name: business_service_id - in: path - description: The business service ID. - required: true - schema: - type: string - team_id: - name: team_id - in: path - description: The team ID - required: true - schema: - type: string - team_user_id: - name: user_id - in: path - description: The user ID on the team. - required: true - schema: - type: string - team_escalation_policy_id: - name: escalation_policy_id - in: path - description: The escalation policy ID on the team. - required: true - schema: - type: string - escalation_policy_escalation_rule_id: - name: escalation_rule_id - in: path - description: The escalation rule ID on the escalation policy. - required: true - schema: - type: string - impacts_additional_fields: - name: 'additional_fields[]' - in: query - description: Provides access to additional fields such as highest priority per business service and total impacted count - explode: true - schema: - type: string - enum: - - services.highest_impacting_priority - - total_impacted_count - include_addon: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - uniqueItems: true - include_escalation_policy: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - services - - teams - - targets - uniqueItems: true - include_log_entry: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - incidents - - services - - channels - - teams - uniqueItems: true - include_user: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - contact_methods - - notification_rules - - teams - - subdomains - uniqueItems: true - include_maintenance_window: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - teams - - services - - users - uniqueItems: true - include_teams: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - privileges - uniqueItems: true - include_teams_members: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_triggers: - name: 'include[]' - in: query - description: Array of additional Models to include in response. - explode: true - schema: - type: string - enum: - - triggers - uniqueItems: true - sort_by_escalation_policy: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - sort_by_service: - name: sort_by - in: query - description: Used to specify the field you wish to sort the results on. - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - default: name - schedule_overflow: - name: overflow - in: query + Enable a webhook subscription that is temporarily disabled. (This API does not require a request body.) + + Webhook subscriptions can become temporarily disabled when the subscription's delivery method is repeatedly rejected by the server. + + Scoped OAuth requires: `webhook_subscriptions.write` + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The webhook subscription that was successfully enabled. + content: + application/json: + schema: + type: object + properties: + webhook_subscription: + $ref: '#/components/schemas/WebhookSubscription' + required: + - webhook_subscription + examples: + response: + $ref: '#/components/examples/GetSubscriptionExample' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + /webhook_subscriptions/{id}/ping: + post: + x-pd-requires-scope: webhook_subscriptions.write + tags: + - Webhooks + operationId: testWebhookSubscription + summary: Test a webhook subscription + description: | + Test a webhook subscription. + + Fires a test event against the webhook subscription. If properly configured, + this will deliver the `pagey.ping` webhook event to the destination. + + Scoped OAuth requires: `webhook_subscriptions.write` + parameters: + - $ref: '#/components/parameters/id' + responses: + '202': + description: Accepted + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + /webhook_subscriptions/oauth_clients: + get: + tags: + - Webhooks + summary: List OAuth clients + description: | + List all OAuth clients for webhook subscriptions. Maximum of 10 clients per account. + + Requires admin or owner role permissions. + operationId: listOauthClients + parameters: [] + responses: + '200': + description: A list of OAuth clients + content: + application/json: + schema: + type: object + properties: + oauth_clients: + type: array + items: + $ref: '#/components/schemas/OAuthClient' + examples: + default: + $ref: '#/components/examples/ListOAuthClientsExample' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + post: + tags: + - Webhooks + summary: Create an OAuth client + description: | + Create a new OAuth client for webhook subscriptions. The client credentials will be validated by attempting to obtain an access token before creation. + + Requires admin or owner role permissions. + + Maximum of 10 OAuth clients per account. + operationId: createOauthClient + parameters: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateOAuthClientRequest' + examples: + default: + $ref: '#/components/examples/CreateOAuthClientExample' + responses: + '201': + description: OAuth client created successfully + content: + application/json: + schema: + type: object + properties: + oauth_client: + $ref: '#/components/schemas/OAuthClient' + examples: + default: + $ref: '#/components/examples/GetOAuthClientExample' + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + /webhook_subscriptions/oauth_clients/{id}: + get: + tags: + - Webhooks + summary: Get an OAuth client description: | - Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false. - For instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`: + Get details of a specific OAuth client by ID. + Requires admin or owner role permissions. + operationId: getOauthClient + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: OAuth client details + content: + application/json: + schema: + type: object + properties: + oauth_client: + $ref: '#/components/schemas/OAuthClient' + examples: + default: + $ref: '#/components/examples/GetOAuthClientExample' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + put: + tags: + - Webhooks + summary: Update an OAuth client + description: | + Update an existing OAuth client. Any change will trigger token validation with the OAuth server. - - If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`. - - If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`. - schema: - type: boolean - default: false - schedule_override_id: - name: override_id - in: path - description: The override ID on the schedule. - required: true - schema: - type: string - team_ids: - name: 'team_ids[]' - in: query - description: An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. - explode: true - schema: - type: array - items: + Requires admin or owner role permissions. + operationId: updateOauthClient + parameters: + - $ref: '#/components/parameters/id' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateOAuthClientRequest' + examples: + default: + $ref: '#/components/examples/UpdateOAuthClientExample' + responses: + '200': + description: OAuth client updated successfully + content: + application/json: + schema: + type: object + properties: + oauth_client: + $ref: '#/components/schemas/OAuthClient' + examples: + default: + $ref: '#/components/examples/GetOAuthClientExample' + '400': + $ref: '#/components/responses/WebhookBadRequest' + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' + delete: + tags: + - Webhooks + summary: Delete an OAuth client + description: | + Delete an OAuth client. This will also remove the OAuth client association from any webhook subscriptions using it. + + Requires admin or owner role permissions. + operationId: deleteOauthClient + parameters: + - $ref: '#/components/parameters/id' + responses: + '204': + description: OAuth client deleted successfully + '401': + $ref: '#/components/responses/WebhookUnauthorized' + '403': + $ref: '#/components/responses/WebhookForbidden' + '404': + $ref: '#/components/responses/WebhookNotFound' +components: + schemas: + WebhookSubscription: + type: object + properties: + id: type: string - uniqueItems: true - time_zone: - name: time_zone - in: query - description: Time zone in which dates in the result will be rendered. - schema: - type: string - format: tzinfo - default: UTC - service_id: - name: service_id - in: path - description: The service ID - required: true - schema: - type: string - services: - name: 'service_ids[]' - in: query - description: An array of service IDs. Only results related to these services will be returned. - explode: true - schema: - type: array - items: + readOnly: true + type: type: string - integration_id: - name: integration_id - in: path - description: The integration ID on the service. - required: true - schema: - type: string - integration_ids: - name: 'integration_ids[]' - in: query - description: An array of integration IDs. Only results related to these integrations will be returned. - explode: true - schema: - type: array - items: + description: The type indicating the schema of the object. + default: webhook_subscription + enum: + - webhook_subscription + active: + type: boolean + default: true + description: Determines whether this subscription will produce webhook events. + delivery_method: + type: object + properties: + id: + type: string + readOnly: true + secret: + type: string + description: The secret used to sign webhook payloads. Only provided on the initial create response. + nullable: true + readOnly: true + temporarily_disabled: + type: boolean + description: Whether or not this webhook subscription is temporarily disabled. Becomes `true` if the delivery method URL is repeatedly rejected by the server. + type: + type: string + description: Indicates the type of the delivery method. + default: http_delivery_method + enum: + - http_delivery_method + url: + type: string + description: The destination URL for webhook delivery. + format: url + custom_headers: + type: array + description: Optional headers to be set on this webhook subscription when sent. The header values are redacted in GET requests, but are not redacted on the webhook when delivered to the webhook's endpoint. + items: + type: object + properties: + name: + type: string + description: The header name + value: + type: string + description: The header value + required: + - type + - url + description: type: string - uniqueItems: true - log_entry_is_overview: - name: is_overview - in: query - description: 'If `true`, will return a subset of log entries that show only the most important changes to the incident.' - required: false - schema: - type: boolean - default: false - since: - name: since - in: query - description: The start of the date range over which you want to search. - schema: - type: string - format: date-time - until: - name: until - in: query - description: The end of the date range over which you want to search. - schema: - type: string - format: date-time - url_slug: - name: url_slug - in: path - description: The `url_slug` for a status dashboard - required: true - schema: - type: string - date_range: - name: date_range - in: query - description: 'When set to all, the since and until parameters and defaults are ignored.' - schema: - type: string - enum: - - all - incident_key: - name: incident_key - in: query - description: Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key. - schema: - type: string - incident_services: - name: 'service_ids[]' - in: query - description: Returns only the incidents associated with the passed service(s). This expects one or more service IDs. - explode: true - schema: - type: array - items: + description: A short description of the webhook subscription. + events: + type: array + description: The set of outbound event types the webhook will receive. + minItems: 1 + uniqueItems: true + items: + type: string + filter: + type: object + properties: + id: + type: string + description: The id of the object being used as the filter. This field is required for all filter types except account_reference. + type: + type: string + description: The type of object being used as the filter. + enum: + - account_reference + - service_reference + - team_reference + required: + - type + oauth_client: + description: OAuth client details. This field is populated in responses when oauth_client_id is set. + readOnly: true + type: object + properties: + id: + type: string + description: The ID of the OAuth client + example: AGMEB7F7YJYELCPG4Y5YWMYGXE + type: + type: string + enum: + - oauth_client_reference + description: The type of object being referenced + example: oauth_client_reference + default: oauth_client_reference + summary: + type: string + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client + example: PagerDuty Webhook Integration + readOnly: true + required: + - id + - type + required: + - type + - delivery_method + - events + - filter + Pagination: + type: object + properties: + offset: + type: integer + description: Echoes offset pagination property. + readOnly: true + limit: + type: integer + description: Echoes limit pagination property. + readOnly: true + more: + type: boolean + description: Indicates if there are additional records to return + readOnly: true + total: + type: integer + description: The total number of records matching the given query. + nullable: true + readOnly: true + WebhookSubscriptionUpdate: + type: object + properties: + webhook_subscription: + type: object + properties: + description: + type: string + description: A short description of the webhook subscription. + events: + type: array + description: The set of outbound event types the subscription will receive. + minItems: 1 + uniqueItems: true + items: + type: string + filter: + type: object + properties: + id: + type: string + description: The id of the object being used as the filter. This field is required for all filter types except account_reference. + type: + type: string + description: The type of object being used as the filter. + enum: + - account_reference + - service_reference + - team_reference + active: + type: boolean + description: If true, a webhook will be sent. True is the default state. If false, a webhook will not be sent. + oauth_client_id: + type: string + description: The ID of the OAuth client to use for authenticating webhook requests. Optional field. + nullable: true + OAuthClient: + type: object + properties: + id: type: string - uniqueItems: true - incident_assigned_to_user: - name: 'user_ids[]' - in: query - description: 'Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.' - explode: true - schema: - type: array - items: + description: The ID of the OAuth client + example: AGMEB7F7YJYELCPG4Y5YWMYGXE + readOnly: true + type: type: string - uniqueItems: true - incident_urgencies: - name: 'urgencies[]' - in: query - description: Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this. - explode: true - schema: - type: string - enum: - - high - - low - uniqueItems: true - from_header: - name: From - in: header - description: The email address of a valid user associated with the account making the request. - required: true - schema: - type: string - format: email - optional_from_header: - name: From - in: header - description: 'The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.' - required: false - schema: - type: string - format: email - user_contact_method_id: - name: contact_method_id - in: path - description: The contact method ID on the user. - required: true - schema: - type: string - user_notification_rule_id: - name: notification_rule_id - in: path - description: The notification rule ID on the user. - required: true - schema: - type: string - user_status_update_notification_rule_id: - name: status_update_notification_rule_id - in: path - description: The status update notification rule ID on the user. - required: true - schema: - type: string - oncall_handoff_notification_rule_id: - name: oncall_handoff_notification_rule_id - in: path - description: The oncall handoff notification rule ID on the user. - required: true - schema: - type: string - session_id: - name: session_id - in: path - description: The session ID for the user. - required: true - schema: - type: string - type: - name: type - in: path - description: The session type for the user session ID. - required: true - schema: - type: string - alert_key: - name: alert_key - in: query - description: Alert de-duplication key. - schema: - type: string - response_play_id: - name: response_play_id - in: path - description: The response play ID of the response play associated with the request. - required: true - schema: - type: string - query: - name: query - in: query - description: 'Filters the result, showing only the records whose name matches the query.' - required: false - schema: - type: string - tag_query: - name: query - in: query - description: 'Filters the result, showing only the tags whose label matches the query.' - required: false - schema: - type: string - addon_services: - name: 'service_ids[]' - in: query - description: 'Filters the results, showing only Add-ons for the given services' - explode: true - schema: - type: array - items: + enum: + - oauth_client + description: The type of object being created + example: oauth_client + default: oauth_client + name: type: string - uniqueItems: true - addon_filter: - name: filter - in: query - description: 'Filters the results, showing only Add-ons of the given type' - schema: - type: string - enum: - - full_page_addon - - incident_show_addon - change_since: - name: since - in: query - description: 'The start of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - change_until: - name: until - in: query - description: 'The end of the date range over which you want to search, as a UTC ISO 8601 datetime string. Will return an HTTP 400 for non-UTC datetimes.' - schema: - type: string - format: date-time - pattern: 'YYYY-MM-DDThh:mm:ssZ' - user_ids_escalation_policies: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only escalation policies on which any of the users is a target.' - explode: true - schema: - type: array - items: + description: A human-readable name for the OAuth client + example: PagerDuty Webhook Integration + maxLength: 255 + client_id: type: string - uniqueItems: true - extension_object_id: - name: extension_object_id - description: The id of the extension object you want to filter by. - in: query - schema: - type: string - extension_schema_id: - name: extension_schema_id - in: query - description: Filter the extensions by extension vendor id. - schema: - type: string - include_extensions: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_objects - - extension_schemas - uniqueItems: true - include_extensions_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - extension_schemas - - extension_objects - - temporarily_disabled - uniqueItems: true - include_incident_workflow_children: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - steps - - team - uniqueItems: true - statuses_incidents: - name: 'statuses[]' - in: query - description: 'Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - uniqueItems: true - sort_by_incidents: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.' - style: form - explode: false - schema: - type: array - items: + description: The OAuth client ID provided by the OAuth server + example: oauth-client-id + maxLength: 255 + scope: type: string - maxItems: 2 - uniqueItems: true - include_incidents: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - - services - - first_trigger_log_entries - - escalation_policies - - teams - - assignees - - acknowledgers - - priorities - - conference_bridge - uniqueItems: true - include_incident: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - field_values - uniqueItems: true - since_incidents: - schema: - type: string - in: query - name: since - description: The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - until_incidents: - schema: - type: string - in: query - name: until - description: The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month. - statuses_incident_alerts: - name: 'statuses[]' - in: query - description: Return only alerts with the given statuses. (More status codes may be introduced in the future.) - explode: true - schema: - type: string - enum: - - triggered - - resolved - uniqueItems: true - sort_by_incident_alerts: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (created_at/resolved_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - created_at - - resolved_at - - 'created_at:asc' - - 'created_at:desc' - - 'resolved_at:asc' - - 'resolved_at:desc' - maxItems: 2 - uniqueItems: true - include_incident_alerts: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - services - - first_trigger_log_entries - - incidents - uniqueItems: true - alert_id: - name: alert_id - in: path - description: The id of the alert to retrieve. - required: true - schema: - type: string - statuses_incident_count: - name: 'statuses[]' - in: query - description: 'Count only incidents with the requested statuses. `all` returns all statuses. If `any` is specified, there will be an additional `any` boolean field in the response that is true if there are any incidents matching the criteria in the request. If no statuses are provided, then only the total count of incidents is returned regardless of status. More status codes may be introduced in the future.' - explode: true - schema: - type: string - enum: - - triggered - - acknowledged - - resolved - - any - - all - uniqueItems: true - filter_maintenance_windows: - name: filter - in: query - description: Only return maintenance windows in a given state. - schema: - type: string - enum: - - past - - future - - ongoing - - open - - all - since_notifications: - name: since - in: query - description: The start of the date range over which you want to search. The time element is optional. - required: true - schema: - type: string - format: date-time - until_notifications: - name: until - in: query - description: The end of the date range over which you want to search. This should be in the same format as since. The size of the date range must be less than 3 months. - required: true - schema: - type: string - format: date-time - filter_notifications: - name: filter - in: query - description: Return notification of this type only. - schema: - type: string - enum: - - sms_notification - - email_notification - - phone_notification - - push_notification - include_notifications: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - users - uniqueItems: true - include_oncalls: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - users - - schedules - uniqueItems: true - user_ids_oncalls: - name: 'user_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified user IDs.' - explode: true - schema: - type: array - items: + description: The OAuth scopes requested for this client + example: read write + maxLength: 255 + nullable: true + token_url: type: string - uniqueItems: true - escalation_policy_ids_oncalls: - name: 'escalation_policy_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified escalation policy IDs.' - explode: true - schema: - type: array - items: + format: uri + description: The OAuth token endpoint URL + example: https://foo.oauth-server.com/oauth_token.do + maxLength: 255 + grant_type: type: string - uniqueItems: true - schedule_ids_oncalls: - name: 'schedule_ids[]' - in: query - description: 'Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.' - explode: true - schema: - type: array - items: + enum: + - client_credentials + description: The OAuth grant type (currently only client_credentials is supported) + example: client_credentials + status: type: string - uniqueItems: true - since_oncalls: - name: since - in: query - description: 'The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.' - schema: - type: string - format: date-time - until_oncalls: - name: until - in: query - description: 'The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.' - schema: - type: string - format: date-time - earliest_oncalls: - name: earliest - in: query - description: 'This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the "next" on-calls are for a given set of filters.' - schema: - type: boolean - filter_for_manual_run: - name: filter_for_manual_run - in: query - description: 'When this parameter is present, only those Response Plays that can be run manually will be returned.' - schema: - type: boolean - rule_id: - name: rule_id - in: path - description: The id of the Event Rule to retrieve. - required: true - schema: - type: string - since_schedules: - name: since - in: query - description: The start of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - until_schedules: - name: until - in: query - description: The end of the date range over which you want to search. - required: true - schema: - type: string - format: date-time - editable_schedules: - name: editable - in: query - description: 'When this parameter is present, only editable overrides will be returned. The result will only include the id of the override if this parameter is present. Only future overrides are editable.' - schema: - type: boolean - overflow_schedules: - name: overflow - in: query - description: 'Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter overflow=true is passed. This parameter defaults to false.' - schema: - type: boolean - include_services: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - integrations - - auto_pause_notifications_parameters - uniqueItems: true - include_services_id: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: - type: string - enum: - - escalation_policies - - teams - - auto_pause_notifications_parameters - - integrations - uniqueItems: true - include_services_integrations: - name: 'include[]' + enum: + - active + - error + description: The current status of the OAuth client + example: active + readOnly: true + required: + - type + - name + - client_id + - token_url + - grant_type + CreateOAuthClientRequest: + type: object + properties: + oauth_client: + type: object + properties: + name: + type: string + description: A human-readable name for the OAuth client + example: PagerDuty Webhook Integration + maxLength: 255 + client_id: + type: string + description: The OAuth client ID provided by the OAuth server + example: oauth-client-id + maxLength: 255 + client_secret: + type: string + description: The OAuth client secret provided by the OAuth server + example: oauth-secret-id + maxLength: 255 + scope: + type: string + description: The OAuth scopes requested for this client + example: read write + maxLength: 255 + token_url: + type: string + format: uri + description: The OAuth token endpoint URL + example: https://foo.oauth-server.com/oauth_token.do + maxLength: 255 + grant_type: + type: string + enum: + - client_credentials + description: The OAuth grant type (currently only client_credentials is supported) + example: client_credentials + required: + - name + - client_id + - client_secret + - token_url + - grant_type + required: + - oauth_client + UpdateOAuthClientRequest: + type: object + properties: + oauth_client: + type: object + properties: + name: + type: string + description: A human-readable name for the OAuth client + example: Updated ServiceNow Integration + maxLength: 255 + client_id: + type: string + description: The OAuth client ID provided by the OAuth server + example: oauth-client-id + maxLength: 255 + client_secret: + type: string + description: The OAuth client secret provided by the OAuth server + example: oauth-secret-id + maxLength: 255 + scope: + type: string + description: The OAuth scopes requested for this client + example: read write admin + maxLength: 255 + token_url: + type: string + format: uri + description: The OAuth token endpoint URL + example: https://foo.oauth-server.com/oauth_token.do + maxLength: 255 + grant_type: + type: string + enum: + - client_credentials + description: The OAuth grant type (currently only client_credentials is supported) + example: client_credentials + required: + - oauth_client + responses: + WebhookBadRequest: + description: | + Caller provided invalid arguments. Please review the response for error + details. Retrying with the same arguments will *not* work. + WebhookUnauthorized: + description: | + Caller did not supply credentials or did not provide the correct + credentials. + + If you are using an API key, it may be invalid or your Authorization header may be malformed. + WebhookForbidden: + description: | + Caller is not authorized to view the requested resource. + + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + WebhookNotFound: + description: The requested resource was not found. + parameters: + offset_limit: + name: limit in: query - description: Array of additional details to include. - explode: true + required: false + description: The number of results per page. schema: - type: string - enum: - - services - - vendors - uniqueItems: true - reassignment_team: - name: reassignment_team + type: integer + offset_offset: + name: offset in: query - description: | - Team to reassign unresolved incident to. - If an unresolved incident exists on both the reassignment team and - the team being deleted, a duplicate will not be made. If not supplied, - unresolved incidents will be made account-level. required: false + description: Offset to start pagination search results. schema: - type: string - include_notification_rules: - name: 'include[]' + type: integer + offset_total: + name: total in: query - description: Array of additional details to include. - explode: true + required: false + description: | + By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. + + See our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information. schema: - type: string - enum: - - contact_methods - uniqueItems: true - additional_details: - name: 'additional_details[]' + default: false + type: boolean + webhooks_filter_type: + name: filter_type in: query - description: Array of additional attributes to any of the returned incidents for related incidents. - explode: true + required: false + description: The type of resource to filter upon. schema: - type: string enum: - - incident - uniqueItems: true - include_schedules: - name: 'include[]' - in: query - description: Array of additional details to include. - explode: true - schema: + - account + - service + - team type: string - enum: - - schedule_layers - uniqueItems: true - sort_by_event_orchestration: - name: sort_by + webhooks_filter_id: + name: filter_id in: query - description: Used to specify the field you wish to sort the results on. + required: false + description: The id of the resource to filter upon. Required if filter_type is service or team. schema: type: string - enum: - - 'name:asc' - - 'name:desc' - - 'routes:asc' - - 'routes:desc' - - 'created_at:asc' - - 'created_at:desc' - default: 'name:asc' - event_orchestration_id: + id: name: id - description: The ID of an Event Orchestration. - in: path - required: true - schema: - type: string - event_orchestration_integration_id: - name: integration_id - description: The ID of an Integration. - in: path - required: true - schema: - type: string - urgency: - name: urgency - in: query - description: 'The incident urgency for which the notification rules are applied. If not specified, defaults to `high`.' - explode: true - schema: - type: string - enum: - - high - - low - - all - uniqueItems: true - template_query: - name: query - description: Template name or description to search - in: query - schema: - type: string - template_type: - name: template_type - description: Filters templates by type. - in: query - schema: - type: string - default: status_update - sort_by_template: - name: sort_by - in: query - description: 'Used to specify both the field you wish to sort the results on (name/created_at), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. Sort direction defaults to ascending.' - style: form - explode: false - schema: - type: string - enum: - - name - - 'name:asc' - - 'name:desc' - - created_at - - 'created_at:asc' - - 'created_at:desc' - default: 'created_at:asc' - schedule_since: - name: since - in: query - description: The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. - schema: - type: string - format: date-time - schedule_until: - name: until - in: query - description: The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. - schema: - type: string - format: date-time - paused_incident_reports_service_id: - name: service_id - in: query - description: Specifies a filter to limit the scope of reporting to a particular service - schema: - type: string - example: P123456 - paused_incident_reports_suspended_by: - name: suspended_by - in: query - description: Specifies a filter to scope the response to either alerts suspended by Auto Pause or Event Rules. - schema: - enum: - - auto_pause - - rules - triggers_filter_workflow_id: - name: workflow_id - description: 'If provided, only show triggers configured to start the given workflow. Useful for listing all services associated with the given workflow' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_incident_id: - name: incident_id - description: 'If provided, only show triggers configured on the service of the given incident. Useful for finding manual triggers that are configured on the service for a specific incident. Cannot be specified if `service_id` is provided.' - in: query - schema: - type: string - example: Q2LAR4ADCXC8IB - triggers_filter_service_id: - name: service_id - description: 'If provided, only show triggers configured for incidents in the given service. Useful for listing all workflows associated with the given service. Cannot be specified if `incident_id` is provided.' - in: query - schema: - type: string - example: P4RG7YW - triggers_filter_trigger_type: - name: trigger_type - description: 'If provided, only show triggers of the given type. For example “manual” to search for manual triggers' - in: query - schema: - type: string - enum: - - manual - - conditional - triggers_path_trigger_id: - name: trigger_id - description: Identifier for the Trigger - required: true - in: path - schema: - type: string - triggers_path_service_id: - name: service_id - description: Identifier for the Service - required: true - in: path - schema: - type: string - triggers_sort_by: - name: sort_by - description: 'If provided, returns triggers sorted by the specified property.' - in: query - schema: - type: string - enum: - - workflow_id - - workflow_id asc - - workflow_id desc - - workflow_name - - workflow_name asc - - workflow_name desc - actions_filter_keyword: - name: keyword - description: 'If provided, only show actions tagged with the specified keyword' - in: query - schema: - type: string - example: slack - include_customfields_field: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - include_customfields_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_configurations` will also include full field details. - in: query - explode: true - schema: - type: string - enum: - - field_configurations - uniqueItems: true - include_customfields_field_configuration: - name: 'include[]' - description: Array of additional details to include. - in: query - explode: true - schema: - type: string - enum: - - fields - uniqueItems: true - include_customfields_incident_schema: - name: 'include[]' - description: Array of additional details to include. Including `field_options` will also include field options. - in: query - explode: true - schema: - type: string - enum: - - field_options - uniqueItems: true - field_id: - name: field_id - description: The ID of the field. - in: path - required: true - schema: - type: string - field_option_id: - name: field_option_id - description: The ID of the field option. - in: path - required: true - schema: - type: string - schema_id: - name: schema_id - description: The ID of the schema. - in: path - required: true - schema: - type: string - field_configuration_id: - name: field_configuration_id - description: The ID of the field configuration. + description: The ID of the resource. in: path required: true schema: type: string - customfields_query_schema_assignments_filter: - name: filter - description: One of service_id or schema_id is required. - in: query - required: true - explode: true - schema: - type: object - properties: - service_id: - type: string - schema_id: - type: string - minProperties: 1 - maxProperties: 1 - early_access_customfields: - name: X-EARLY-ACCESS - in: header - description: | - This header indicates that this API endpoint is __UNDER CONSTRUCTION__ and may change at any time. You __MUST__ pass in this header and the above value. Do not use this endpoint in production, as it may change! - required: true - schema: - type: string - default: flex-service-early-access - enum: - - flex-service-early-access - responses: - WebhookBadRequest: - description: | - Caller provided invalid arguments. Please review the response for error - details. Retrying with the same arguments will *not* work. - WebhookUnauthorized: - description: | - Caller did not supply credentials or did not provide the correct - credentials. - - If you are using an API key, it may be invalid or your Authorization header may be malformed. - WebhookForbidden: - description: | - Caller is not authorized to view the requested resource. - - While your authentication is valid, the authenticated user or token does not have permission to perform this action. - WebhookNotFound: - description: The requested resource was not found. - securitySchemes: - api_key: - type: apiKey - name: Authorization - in: header - description: The API Key with format `Token token=` examples: - AuditRecordResponse: - summary: Response Example - value: - records: - - id: PDRECORDID1_TEAM_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - action: create - details: - resource: - id: PXASDFE - type: team_reference - summary: my DevOps team - fields: - - name: teamName - value: DevOps team - - id: PDRECORDID2_USER_REMOVED_FROM_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PRY9M8B - type: team_reference - summary: DevOps - references: - - name: members - removed: - - id: PRY9M8B - type: user_reference - summary: John Doe - - id: PDRECORDID5_USERS_TEAM_ROLE_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PRY9M8B - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: team_role - before_value: observer - value: manager - - id: PDRECORDID3_USERS_NAME_AND_EMAIL_UPDATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: identity_provider - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PDUSER - type: user_reference - summary: John Snow - fields: - - name: name - before_value: Bob Doe - value: Jon Snow - - name: email - before_value: bob.doe@domain.com - value: john.snow@domain.com - - id: PDRECORDID4_UPDATED_USERS_NOTIFICATION_RULE - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 2adm - root_resource: - id: PDUSER - type: user_reference - summary: John Snow - action: update - details: - resource: - id: PXOGWUS - type: assignment_notification_rule_reference - summary: '0 minutes: channel P1IAAPZ' - fields: - - name: start_delay_in_minutes - before_value: '0' - value: '2' - references: - - name: contact_method - removed: - - id: POE6L88 - type: push_notification_contact_method_reference - summary: Pixel 3 - added: - - id: P4GTUMK - type: sms_contact_method_reference - summary: Mobile - next_cursor: null - limit: 10 - AuditRecordEscalationPolicyResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_ESCALATION_POLICY - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:52.026Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - - id: PD_CREATE_ESCALATION_POLICY - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Escalation - - name: description - value: Escalation Policy for devops - - name: num_loops - value: '1' - resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - execution_context: - request_id: 0cc413fb-8e7d-4414-b4bc-b7578bf3ba77 - execution_time: '2021-01-05T16:33:51.951Z' - method: - type: browser - root_resource: - id: PD_ESCALATION_ID - summary: DevOps Escalation - type: escalation_policy_reference - self: 'https://api.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - html_url: 'https://mydomain.pagerduty.com/escalation_policies/PD_ESCALATION_ID' - limit: 10 - next_cursor: null - AuditRecordScheduleResponse: - summary: Response Example - value: - records: - - id: PD_ASSIGN_TEAM_TO_SCHEDULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_TEAM123 - summary: Devops - type: team_reference - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - name: teams - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.324Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - - id: PD_CREATE_SCHEDULE - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: DevOps Schedule - - name: description - value: Our DevOps Team Schedule - - name: time_zone - value: America/New_York - resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - execution_context: - request_id: 13a1c0c3-545c-4ebb-4115-662fff9d8ad - execution_time: '2021-01-05T16:25:41.315Z' - method: - type: browser - root_resource: - id: PD_SCHEDULE_ID - summary: DevOps Schedule - type: schedule_reference - self: 'https://api.pagerduty.com/schedules/PD_SCHEDULE_ID' - html_url: 'https://mydomain.pagerduty.com/schedules/PD_SCHEDULE_ID' - limit: 10 - next_cursor: null - AuditRecordServiceResponse: - summary: Response Example + ListSubscriptionExample: + summary: Example value: - records: - - id: PDRECORDID1_SERVICE_CREATED - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - method: - type: api_token - truncated_token: 3usr - root_resource: - id: PN2YA40 + webhook_subscriptions: + - delivery_method: + id: PF9KMXH + secret: null + type: http_delivery_method + url: https://example.com/receive_a_pagerduty_webhook + custom_headers: + - name: your-header-name + value: '-- redacted --' + description: Sends PagerDuty v3 webhook events somewhere interesting. + events: + - incident.acknowledged + - incident.annotated + - incident.delegated + - incident.escalated + - incident.priority_updated + - incident.reassigned + - incident.resolved + - incident.responder.added + - incident.responder.replied + - incident.triggered + - incident.unacknowledged + filter: + id: P393ZNQ type: service_reference - summary: Documentation Hub - action: create - details: - resource: - id: PD_SERVICE_ID - type: service_reference - summary: Documentation Hub - fields: - - name: name - value: Documentation Hub - - name: description - value: Centralized documentation - - name: incident_severity - value: always_high - - name: alert_creation - value: create_alerts_and_incidents - - name: auto_resolve_timeout - value: '' - - name: acknowledgement_timeout - value: '' - - name: alert_grouping - value: null - - name: alert_grouping_timeout - value: '' - references: - - name: escalation_policy - added: - - id: PD_SERVICE_ID - summary: Default - type: escalation_policy_reference - next_cursor: null - limit: 10 - AuditRecordTeamResponse: - summary: Response Example - value: - records: - - id: PDRECORD_USER_ROLE_ON_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: my DevOps team - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: update - details: - resource: - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - fields: - - name: members.role - value: manager - - id: PDRECORD_USER_ADDED_TO_TEAM - execution_time: '2020-06-04T15:30:16.272Z' - execution_context: - request_id: 111lDEOIH-534-4ljhLHJjh111 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - action: update - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - references: - - name: members - added: - - id: PD_ADMIN_USER123 - type: user_reference - summary: AA Admin User - self: 'https://api.pagerduty.com/users/PD_ADMIN_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_ADMIN_USER123' - - id: PDRECORD_TEAM_CREATED - execution_time: '2020-06-04T15:25:04.113Z' - execution_context: - request_id: 222lDEOIH-534-4ljhLHJjh222 - remote_address: 201.19.20.19 - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - method: - type: browser - root_resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - action: create - details: - resource: - id: PD_TEAM123 - type: team_reference - summary: DevOps - self: 'https://api.pagerduty.com/teams/PD_TEAM123' - html_url: 'https://mydomain.pagerduty.com/teams/PD_TEAM123' - fields: - - name: name - value: DevOps - - name: description - value: MyDevOps Team - - name: default_role - value: manager - next_cursor: null - limit: 10 - AuditRecordUserResponse: - summary: Response Example - value: - records: - - id: PD_ADD_HIGH_URGENCY_NOTIFICATION - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_HIGH_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: high - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_HIGH - summary: 'High Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.343Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_RULE - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: start_delay_in_minutes - value: '0' - - name: urgency - value: low - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_method - resource: - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_LOW_URGENCY_EMAIL_CONTACT - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_NOTIFICATION_RULE_LOW - summary: 'Low Urgency (Email: Default)' - type: assignment_notification_rule_reference - name: notification_rules - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.335Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_EMAIL_CONTACT_FOR_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: label - value: Default - - name: type - value: email_contact_method - - name: address - value: testuser@testabc123.com - resource: - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_ADD_EMAIL_CONTACT_TO_USER - action: update - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - references: - - added: - - id: PD_CONTACT_METHOD - summary: Default - type: email_contact_method_reference - name: contact_methods - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:32.327Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - - id: PD_CREATE_USER - action: create - actors: - - id: PDUSER - summary: John Snow - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER123' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER123' - details: - fields: - - name: name - value: Test User - - name: role - value: user - - name: email - value: testuser@testabc123.com - - name: time_zone - value: America/New_York - - name: description - value: null - - name: job_title - value: null - - name: color - value: brown - resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - execution_context: - request_id: a68929b2-d0f4-4def-b1d2-6bb744c44e3d - execution_time: '2021-01-05T15:17:31.708Z' - method: - type: browser - root_resource: - id: PD_USER_999 - summary: Test User - type: user_reference - self: 'https://api.pagerduty.com/users/PD_USER_999' - html_url: 'https://mydomain.pagerduty.com/users/PD_USER_999' - limit: 10 - next_cursor: null - OrchestrationPathGlobalTypeResponse: - summary: Example Response - value: - orchestration_path: - type: global - parent: - id: b02e973d-9620-4e0a-9edc-00fedf7d4694 - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694' - type: event_orchestration_reference - self: 'https://api.pagerduty.com/event_orchestrations/b02e973d-9620-4e0a-9edc-00fedf7d4694/global' - sets: - - id: start - rules: - - label: Always apply some consistent event transformations to all events - id: c91f72f3 - conditions: [] - actions: - variables: - - name: hostname - path: event.component - value: 'hostname: (.*)' - type: regex - extractions: - - template: '{{variables.hostname}}' - target: event.custom_details.hostname - - source: event.source - regex: www (.*) service - target: event.source - route_to: step-two - - id: step-two - rules: - - label: All critical alerts should be treated as P1 incidents - id: 7c54529d - conditions: - - expression: event.severity matches 'critical' - actions: - priority: P0IN2KQ - suppress: false - - label: Drop all events from the very-noisy monitoring tool - id: 1f6d9a33 - conditions: - - expression: event.source matches part 'very-noisy' - actions: - drop_event: true - - label: Never bother the on-call for info-level events outside of work hours - id: cd770384 - conditions: - - expression: 'event.severity matches ''info'' and not (now in Mon,Tue,Wed,Thu,Fri 09:00:00 to 17:00:00 America/Los_Angeles)' - actions: - suppress: true - catch_all: - actions: - suppress: true - created_at: '2021-11-18T16:42:01Z' - created_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - updated_at: '2021-11-18T16:42:01Z' - updated_by: - id: P8B9WR8 - self: 'https://api.pagerduty.com/users/P8B9WR8' - type: user_reference - version: rn1Mja13T1HBdmPChqFilSQXUW2fWXM_ + oauth_client: + id: AGLRZQ2PGR5B7EQ52DTT4ZJERY + type: oauth_client_reference + summary: PagerDuty Webhook Integration + id: PY1OL64 + type: webhook_subscription + active: true + limit: 25 + offset: 0 + total: null + more: false CreateSubscriptionExample: summary: Example value: webhook_subscription: delivery_method: type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' + url: https://example.com/receive_a_pagerduty_webhook custom_headers: - name: header-name value: header-value @@ -2475,6 +889,7 @@ components: filter: id: P393ZNQ type: service_reference + oauth_client_id: AGMEB7F7YJYELCPG4Y5YWMYGXE type: webhook_subscription GetSubscriptionExample: summary: Example @@ -2485,7 +900,7 @@ components: secret: null temporarily_disabled: false type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' + url: https://example.com/receive_a_pagerduty_webhook custom_headers: - name: your-header-name value: '-- redacted --' @@ -2506,44 +921,13 @@ components: filter: id: P393ZNQ type: service_reference + oauth_client: + id: AGLRZQ2PGR5B7EQ52DTT4ZJERY + type: oauth_client_reference + summary: PagerDuty Webhook Integration id: PY1OL64 type: webhook_subscription active: true - ListSubscriptionExample: - summary: Example - value: - webhook_subscriptions: - - delivery_method: - id: PF9KMXH - secret: null - type: http_delivery_method - url: 'https://example.com/receive_a_pagerduty_webhook' - custom_headers: - - name: your-header-name - value: '-- redacted --' - description: Sends PagerDuty v3 webhook events somewhere interesting. - events: - - incident.acknowledged - - incident.annotated - - incident.delegated - - incident.escalated - - incident.priority_updated - - incident.reassigned - - incident.resolved - - incident.responder.added - - incident.responder.replied - - incident.triggered - - incident.unacknowledged - filter: - id: P393ZNQ - type: service_reference - id: PY1OL64 - type: webhook_subscription - active: true - limit: 25 - offset: 0 - total: null - more: false PutSubscriptionExample: summary: Update Subscribed Events value: @@ -2561,325 +945,171 @@ components: - incident.responder.replied - incident.triggered - incident.unacknowledged + ListOAuthClientsExample: + summary: List OAuth Clients + value: + oauth_clients: + - id: AGLMVG7ZUZ567GK2HMOWBGNWEU + type: oauth_client + name: Test OAuth Client + client_id: test_client_id + scope: read write + token_url: https://example.com/oauth/token + grant_type: client_credentials + status: active + CreateOAuthClientExample: + summary: Create OAuth Client + value: + oauth_client: + name: PagerDuty Webhook Integration + client_id: oauth-client-id + client_secret: oauth-secret-id + token_url: https://foo.oauth-server.com/oauth_token.do + grant_type: client_credentials + GetOAuthClientExample: + summary: Get OAuth Client + value: + oauth_client: + id: AGMEB7F7YJYELCPG4Y5YWMYGXE + type: oauth_client + name: PagerDuty Webhook Integration + client_id: oauth-client-id + scope: null + token_url: https://foo.oauth-server.com/oauth_token.do + grant_type: client_credentials + status: active + UpdateOAuthClientExample: + summary: Update OAuth Client + value: + oauth_client: + name: Updated ServiceNow Integration + scope: read write admin x-stackQL-resources: webhook_subscriptions: id: pagerduty.webhooks.webhook_subscriptions name: webhook_subscriptions title: Webhook Subscriptions methods: - list_webhook_subscriptions: + list: operation: $ref: '#/paths/~1webhook_subscriptions/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.webhook_subscriptions - _list_webhook_subscriptions: + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1webhook_subscriptions/get' + $ref: '#/paths/~1webhook_subscriptions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1webhook_subscriptions~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.webhook_subscription + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1webhook_subscriptions~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1webhook_subscriptions~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - create_webhook_subscription: + openAPIDocKey: '204' + enable: operation: - $ref: '#/paths/~1webhook_subscriptions/post' + $ref: '#/paths/~1webhook_subscriptions~1{id}~1enable/post' response: mediaType: application/json openAPIDocKey: '200' - get_webhook_subscription: + ping: operation: - $ref: '#/paths/~1webhook_subscriptions~1{id}/get' + $ref: '#/paths/~1webhook_subscriptions~1{id}~1ping/post' response: mediaType: application/json - openAPIDocKey: '200' - objectKey: $.webhook_subscription - _get_webhook_subscription: + openAPIDocKey: '202' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/get' + - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/delete' + replace: [] + oauth_clients: + id: pagerduty.webhooks.oauth_clients + name: oauth_clients + title: Oauth Clients + methods: + list: operation: - $ref: '#/paths/~1webhook_subscriptions~1{id}/get' + $ref: '#/paths/~1webhook_subscriptions~1oauth_clients/get' response: mediaType: application/json openAPIDocKey: '200' - update_webhook_subscription: + objectKey: $.oauth_clients + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1webhook_subscriptions~1{id}/put' + $ref: '#/paths/~1webhook_subscriptions~1oauth_clients/post' response: mediaType: application/json - openAPIDocKey: '200' - delete_webhook_subscription: + openAPIDocKey: '201' + get: operation: - $ref: '#/paths/~1webhook_subscriptions~1{id}/delete' + $ref: '#/paths/~1webhook_subscriptions~1oauth_clients~1{id}/get' response: mediaType: application/json - openAPIDocKey: '204' - enable_webhook_subscription: + openAPIDocKey: '200' + objectKey: $.oauth_client + update: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1webhook_subscriptions~1{id}~1enable/post' + $ref: '#/paths/~1webhook_subscriptions~1oauth_clients~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - test_webhook_subscription: + delete: operation: - $ref: '#/paths/~1webhook_subscriptions~1{id}~1ping/post' + $ref: '#/paths/~1webhook_subscriptions~1oauth_clients~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '202' + openAPIDocKey: '204' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/get_webhook_subscription' - - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/list_webhook_subscriptions' + - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/get' + - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/create_webhook_subscription' - update: [] + - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/webhook_subscriptions/methods/delete_webhook_subscription' -paths: - /webhook_subscriptions: - get: - tags: - - Webhooks - operationId: listWebhookSubscriptions - summary: List webhook subscriptions - description: | - List existing webhook subscriptions. - - The `filter_type` and `filter_id` query parameters may be used to only show subscriptions - for a particular _service_ or _team_. - - For more information on webhook subscriptions and how they are used to configure v3 webhooks - see the [Webhooks v3 Developer Documentation](https://developer.pagerduty.com/docs/webhooks/v3-overview/). - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/offset_limit' - - $ref: '#/components/parameters/offset_offset' - - $ref: '#/components/parameters/offset_total' - - $ref: '#/components/parameters/webhooks_filter_type' - - $ref: '#/components/parameters/webhooks_filter_id' - responses: - '200': - description: A set of webhook subscriptions matching the request. - content: - application/json: - schema: - allOf: - - type: object - properties: - webhook_subscriptions: - type: array - items: - $ref: '#/components/schemas/WebhookSubscription' - required: - - webhook_subscriptions - - $ref: '#/components/schemas/Pagination' - examples: - response: - $ref: '#/components/examples/ListSubscriptionExample' - '400': - $ref: '#/components/responses/WebhookBadRequest' - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - post: - tags: - - Webhooks - operationId: createWebhookSubscription - summary: Create a webhook subscription - description: | - Creates a new webhook subscription. - - For more information on webhook subscriptions and how they are used to configure v3 webhooks - see the [Webhooks v3 Developer Documentation](https://developer.pagerduty.com/docs/webhooks/v3-overview/). - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - requestBody: - content: - application/json: - schema: - type: object - properties: - webhook_subscription: - $ref: '#/components/schemas/WebhookSubscription' - required: - - webhook_subscription - examples: - request: - $ref: '#/components/examples/CreateSubscriptionExample' - responses: - '200': - description: The webhook subscription that was created. - content: - application/json: - schema: - type: object - properties: - webhook_subscription: - $ref: '#/components/schemas/WebhookSubscription' - required: - - webhook_subscription - examples: - response: - $ref: '#/components/examples/GetSubscriptionExample' - '400': - $ref: '#/components/responses/WebhookBadRequest' - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - '/webhook_subscriptions/{id}': - get: - tags: - - Webhooks - operationId: getWebhookSubscription - summary: Get a webhook subscription - description: | - Gets details about an existing webhook subscription. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The webhook subscription that was requested. - content: - application/json: - schema: - type: object - properties: - webhook_subscription: - $ref: '#/components/schemas/WebhookSubscription' - required: - - webhook_subscription - examples: - response: - $ref: '#/components/examples/GetSubscriptionExample' - '400': - $ref: '#/components/responses/WebhookBadRequest' - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - '404': - $ref: '#/components/responses/WebhookNotFound' - put: - tags: - - Webhooks - operationId: updateWebhookSubscription - summary: Update a webhook subscription - description: | - Updates an existing webhook subscription. - - Only the fields being updated need to be included on the request. This operation does not - support updating the `delivery_method` of the webhook subscription. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/header_Content-Type' - - $ref: '#/components/parameters/id' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/WebhookSubscriptionUpdate' - examples: - request: - $ref: '#/components/examples/PutSubscriptionExample' - responses: - '200': - description: The updated webhook subscription. - content: - application/json: - schema: - type: object - properties: - webhook_subscription: - $ref: '#/components/schemas/WebhookSubscription' - required: - - webhook_subscription - examples: - response: - $ref: '#/components/examples/GetSubscriptionExample' - '400': - $ref: '#/components/responses/WebhookBadRequest' - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - '404': - $ref: '#/components/responses/WebhookNotFound' - delete: - tags: - - Webhooks - operationId: deleteWebhookSubscription - summary: Delete a webhook subscription - description: | - Deletes a webhook subscription. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - responses: - '204': - description: The webhook subscription was deleted successfully. - '400': - $ref: '#/components/responses/WebhookBadRequest' - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - '404': - $ref: '#/components/responses/WebhookNotFound' - '/webhook_subscriptions/{id}/enable': - post: - tags: - - Webhooks - operationId: enableWebhookSubscription - summary: Enable a webhook subscription - description: | - Enable a webhook subscription that is temporarily disabled. (This API does not require a request body.) - - Webhook subscriptions can become temporarily disabled when the subscription's delivery method is repeatedly rejected by the server. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - responses: - '200': - description: The webhook subscription that was successfully enabled. - content: - application/json: - schema: - type: object - properties: - webhook_subscription: - $ref: '#/components/schemas/WebhookSubscription' - required: - - webhook_subscription - examples: - response: - $ref: '#/components/examples/GetSubscriptionExample' - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - '404': - $ref: '#/components/responses/WebhookNotFound' - '/webhook_subscriptions/{id}/ping': - post: - tags: - - Webhooks - operationId: testWebhookSubscription - summary: Test a webhook subscription - description: | - Test a webhook subscription. - - Fires a test event against the webhook subscription. If properly configured, - this will deliver the `pagey.ping` webhook event to the destination. - parameters: - - $ref: '#/components/parameters/header_Accept' - - $ref: '#/components/parameters/id' - responses: - '202': - description: Accepted - '401': - $ref: '#/components/responses/WebhookUnauthorized' - '403': - $ref: '#/components/responses/WebhookForbidden' - '404': - $ref: '#/components/responses/WebhookNotFound' + - $ref: '#/components/x-stackQL-resources/oauth_clients/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/pagerduty/v00.00.00000/services/workflow_integrations.yaml b/providers/src/pagerduty/v00.00.00000/services/workflow_integrations.yaml new file mode 100644 index 00000000..1a3b567b --- /dev/null +++ b/providers/src/pagerduty/v00.00.00000/services/workflow_integrations.yaml @@ -0,0 +1,1524 @@ +openapi: 3.0.2 +info: + title: PagerDuty API - Workflow Integrations + description: Workflow integrations and their connections. + version: 2.0.0 +paths: + /workflows/integrations: + get: + tags: + - Workflow Integrations + x-pd-requires-scope: workflow_integrations.read + operationId: listWorkflowIntegrations + summary: List Workflow Integrations + description: | + List available Workflow Integrations. + + Scoped OAuth requires: `workflow_integrations.read` + parameters: + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/include_deprecated' + responses: + '200': + description: A paginated list of Workflow Integrations. + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + integrations: + type: array + items: + $ref: '#/components/schemas/WorkflowIntegration' + required: + - limit + - next_cursor + - integrations + examples: + response: + summary: Response Example + value: + integrations: + - id: http-api + type: workflow_integration + domain_name: pagerduty.com + package_name: http-api + name: Web API + description: Create fast, custom connections to apps without integrations. + icon_svg: | + + + + tags: + - integration + search_keywords: + - web + - api + - rest + - http + - headers + is_deprecated: false + entitled: true + application: null + configuration_schema: + $schema: https://json-schema.org/draft/2020-12/schema + $id: https://api.pagerduty.com/workflows/integrations/http-api/schemas/configuration.json + title: Web API Integration Configuration + description: The configuration of a workflow integration connection to Web API + type: object + properties: + Redacted Authentication Headers: + type: text + description: Stores the redacted versions of the sensitive authentication headers + is_hidden: true + advanced: false + metadata: '' + default_value: null + restrictions: null + display_order: 2 + Allowed Hostnames: + type: text + description: 'Enter the hostnames to allow sending these credentials to, one per line. An asterisk (*) may be used for subdomains. Ex: "example.com", "subdomain.example.com" or "*.example.com"' + is_hidden: false + advanced: false + metadata: '{"format":"textarea"}' + default_value: null + restrictions: null + display_order: 3 + format: TEXTAREA + Health Check URL: + type: text + description: Enter a url to monitor the health of this connection. + is_hidden: false + advanced: false + metadata: '' + default_value: null + restrictions: null + display_order: 4 + Health Check Method: + type: singleChoice + description: Select which HTTP method to use for the health check request. + is_hidden: false + advanced: false + metadata: '' + default_value: HEAD + restrictions: + choices: + - HEAD + - GET + display_order: 5 + Existing Connection: + type: connection + description: Existing connection to update, if any + is_hidden: true + advanced: false + metadata: '' + default_value: null + restrictions: null + display_order: 6 + connection_type_id: pagerduty.com:http-api:integration:1 + required: + - Allowed Hostnames + secrets_schema: + $schema: https://json-schema.org/draft/2020-12/schema + $id: https://api.pagerduty.com/workflows/integrations/http-api/schemas/secrets.json + title: Web API Integration Secrets + description: The secrets of a workflow integration connection to Web API + type: object + properties: + Authentication Headers: + type: text + description: 'Enter the headers to include in Web API calls made with this connection, one per line. Ex: "Authorization: Bearer XXXX"' + is_hidden: false + advanced: false + metadata: '{"format":"textarea"}' + default_value: null + restrictions: null + display_order: 1 + format: TEXTAREA + required: + - Authentication Headers + html_url: https://subdomain.pagerduty.com/workflows/integrations/http-api + self: https://api.pagerduty.com/workflows/integrations/http-api + created_at: '2024-06-18T18:41:27.1+00:00' + created_by: + id: P7F68N8 + type: user_reference + summary: John Smith + html_url: https://subdomain.pagerduty.com/users/P7F68N8 + self: https://api.pagerduty.com/users/P7F68N8 + limit: 10 + next_cursor: WyJtM2RlbW8ucGQtc3RhZ2luZy5jb206Z2l0aHViOmludGVncmF0aW9uOjMiXQ== + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List Workflow Integrations + /workflows/integrations/{id}: + get: + tags: + - Workflow Integrations + x-pd-requires-scope: workflow_integrations.read + operationId: getWorkflowIntegration + summary: Get Workflow Integration + description: | + Get details about a Workflow Integration. + + Scoped OAuth requires: `workflow_integrations.read` + parameters: + - $ref: '#/components/parameters/id' + responses: + '200': + description: The Workflow Integration requested. + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowIntegration' + examples: + response: + $ref: '#/components/examples/WorkflowIntegrationExample' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get Workflow Integration + /workflows/integrations/connections: + get: + x-pd-requires-scope: workflow_integrations:connections.read + tags: + - Workflow Integrations + operationId: listWorkflowIntegrationConnections + summary: List all Workflow Integration Connections + description: | + List all Workflow Integration Connections. + + Scoped OAuth requires: `workflow_integrations:connections.read` + parameters: + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/name' + responses: + '200': + description: A paginated list of Workflow Integration Connections. + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + connections: + type: array + items: + $ref: '#/components/schemas/WorkflowIntegrationConnection' + required: + - limit + - next_cursor + - connections + examples: + response: + summary: Response Example + value: + connections: + - id: 5a8e88bb-2acd-4035-8f02-163c10f917b8 + type: workflow_integration_connection + integration_id: http-api + name: My Connection + service_url: https://webhook.site + external_id: My Connection + external_id_label: Connection Name + health: + is_healthy: true + last_checked_at: '2024-07-18T21:16:51.511+00:00' + health_message: Healthy + configuration: + Health Check URL: https://example.com/health + Allowed Hostnames: webhook.site + Health Check Method: GET + Redacted Authentication Headers: 'x-api-key: ****' + secrets: null + teams: [] + apps: [] + html_url: https://subdomain.pagerduty.com/workflows/integrations/http-api/connections/5a8e88bb-2acd-4035-8f02-163c10f917b8 + self: https://api.pagerduty.com/workflows/integrations/http-api/connections/5a8e88bb-2acd-4035-8f02-163c10f917b8 + created_at: '2024-06-18T18:41:27.1+00:00' + created_by: + id: P7F68N8 + type: user_reference + summary: John Smith + html_url: https://subdomain.pagerduty.com/users/P7F68N8 + self: https://api.pagerduty.com/users/P7F68N8 + limit: 10 + next_cursor: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List all Workflow Integration Connections + /workflows/integrations/{integration_id}/connections: + get: + x-pd-requires-scope: workflow_integrations:connections.read + tags: + - Workflow Integrations + operationId: listWorkflowIntegrationConnectionsByIntegration + summary: List Workflow Integration Connections + description: | + List all Workflow Integration Connections for a specific Workflow Integration. + + Scoped OAuth requires: `workflow_integrations:connections.read` + parameters: + - $ref: '#/components/parameters/cursor_limit' + - $ref: '#/components/parameters/cursor_cursor' + - $ref: '#/components/parameters/name' + - $ref: '#/components/parameters/workflow_integrations_integration_id' + responses: + '200': + description: A paginated list of Workflow Integration Connections. + content: + application/json: + schema: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + connections: + type: array + items: + $ref: '#/components/schemas/WorkflowIntegrationConnection' + required: + - limit + - next_cursor + - connections + examples: + response: + summary: Response Example + value: + connections: + - id: 5a8e88bb-2acd-4035-8f02-163c10f917b8 + type: workflow_integration_connection + integration_id: http-api + name: My Connection + service_url: https://webhook.site + external_id: My Connection + external_id_label: Connection Name + is_default: true, + health: + is_healthy: true + last_checked_at: '2024-07-18T21:16:51.511+00:00' + health_message: Healthy + configuration: + Health Check URL: https://example.com/health + Allowed Hostnames: webhook.site + Health Check Method: GET + Redacted Authentication Headers: 'x-api-key: ****' + secrets: null + teams: [] + html_url: https://subdomain.pagerduty.com/workflows/integrations/http-api/connections/5a8e88bb-2acd-4035-8f02-163c10f917b8 + self: https://api.pagerduty.com/workflows/integrations/http-api/connections/5a8e88bb-2acd-4035-8f02-163c10f917b8 + created_at: '2024-06-18T18:41:27.1+00:00' + created_by: + id: P7F68N8 + type: user_reference + summary: John Smith + html_url: https://subdomain.pagerduty.com/users/P7F68N8 + self: https://api.pagerduty.com/users/P7F68N8 + limit: 10 + next_cursor: null + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + post: + x-pd-requires-scope: workflow_integrations:connections.write + tags: + - Workflow Integrations + operationId: createWorkflowIntegrationConnection + summary: Create Workflow Integration Connection + description: | + Create a new Workflow Integration Connection. + + Scoped OAuth requires: `workflow_integrations:connections.write` + parameters: + - $ref: '#/components/parameters/workflow_integrations_integration_id' + requestBody: + $ref: '#/components/requestBodies/CreateWorkflowIntegrationConnection' + responses: + '201': + description: The Workflow Integration Connection that was created. + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowIntegrationConnection' + examples: + response: + $ref: '#/components/examples/WorkflowIntegrationConnectionExample' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: List Workflow Integration Connections + /workflows/integrations/{integration_id}/connections/{id}: + get: + x-pd-requires-scope: workflow_integrations:connections.read + tags: + - Workflow Integrations + operationId: getWorkflowIntegrationConnection + summary: Get Workflow Integration Connection + description: | + Get details about a Workflow Integration Connection. + + Scoped OAuth requires: `workflow_integrations:connections.read` + parameters: + - $ref: '#/components/parameters/workflow_integrations_integration_id' + - $ref: '#/components/parameters/id' + responses: + '200': + description: The Workflow Integration Connection requested. + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowIntegrationConnection' + examples: + response: + $ref: '#/components/examples/WorkflowIntegrationConnectionExample' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + patch: + x-pd-requires-scope: workflow_integrations:connections.write + tags: + - Workflow Integrations + operationId: updateWorkflowIntegrationConnection + summary: Update Workflow Integration Connection + description: | + Update an existing Workflow Integration Connection. + + Scoped OAuth requires: `workflow_integrations:connections.write` + parameters: + - $ref: '#/components/parameters/workflow_integrations_integration_id' + - $ref: '#/components/parameters/id' + requestBody: + $ref: '#/components/requestBodies/UpdateWorkflowIntegrationConnection' + responses: + '200': + description: The updated Workflow Integration Connection. + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowIntegrationConnection' + examples: + response: + $ref: '#/components/examples/WorkflowIntegrationConnectionExample' + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + delete: + x-pd-requires-scope: workflow_integrations:connections.write + tags: + - Workflow Integrations + operationId: deleteWorkflowIntegrationConnection + summary: Delete Workflow Integration Connection + description: | + Delete a Workflow Integration Connection. + + Scoped OAuth requires: `workflow_integrations:connections.write` + parameters: + - $ref: '#/components/parameters/workflow_integrations_integration_id' + - $ref: '#/components/parameters/id' + responses: + '204': + description: The Workflow Integration Connection was deleted successfully. + '400': + $ref: '#/components/responses/ArgumentError' + '401': + $ref: '#/components/responses/Unauthorized' + '403': + $ref: '#/components/responses/Forbidden' + '404': + $ref: '#/components/responses/NotFound' + '429': + $ref: '#/components/responses/TooManyRequests' + description: Get Workflow Integration Connection +components: + schemas: + CursorPagination: + type: object + properties: + limit: + type: integer + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + readOnly: true + next_cursor: + type: string + description: | + An opaque string than 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. + example: dXNlcjaVMzc5V0ZYTlo= + nullable: true + readOnly: true + required: + - limit + - next_cursor + WorkflowIntegration: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + domain_name: + type: string + description: Will be pagerduty.com + package_name: + type: string + description: The package that the integration is part of + name: + type: string + description: The name of the integration + description: + type: string + description: The description of the integration + icon_svg: + type: string + description: The svg string of the icon for the integration + tags: + type: array + description: A list of tags applied to the integration + items: + type: string + search_keywords: + type: array + description: A list of keywords that match this integration + items: + type: string + is_deprecated: + type: boolean + description: Whether or not the integration is deprecated + entitled: + type: boolean + description: Whether or not the integration is entitled + application: + type: string + description: The application that this integration is associated with + configuration_schema: + type: string + description: The JSON schema for the configuration of the integration. This is a dynamic field and is different for every integration (opaque JSON object) + secrets_schema: + type: string + description: The JSON schema for the secrets of the integration. This is a dynamic field and is different for every integration (opaque JSON object) + created_at: + type: string + format: date-time + readOnly: true + created_by: + readOnly: true + nullable: true + description: Reference to the user who created this connection + properties: + type: + type: string + description: Type of the referenced object + readOnly: true + enum: + - user_reference + id: + type: string + description: Unique identifier of the user + readOnly: true + summary: + type: string + readOnly: true + description: The user's name + html_url: + type: string + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + self: + type: string + readOnly: true + format: url + description: the API show URL at which the object is accessible + type: object + description: An Integration that can be used in a Workflow + WorkflowIntegrationConnection: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + integration_id: + type: string + description: The integration ID that this connection is associated with + readOnly: true + name: + type: string + description: The name given to the connection + service_url: + type: string + description: The URL of the service that this connection is associated with + external_id: + type: string + description: The ID of the external system that this connection is used to connect to + external_id_label: + type: string + description: The label of the external system that this connection is used to connect to + scopes: + type: array + items: + type: string + description: The scopes that this connection has access to + is_default: + type: boolean + description: Whether or not this connection is the default connection for this integration + health: + type: object + readOnly: true + properties: + is_healthy: + type: boolean + description: Whether or not the connection is healthy + readOnly: true + health_message: + type: string + description: A message describing the health of the connection + readOnly: true + last_checked_at: + type: string + format: date-time + description: The timestamp of the last health check + readOnly: true + configuration: + type: string + description: The configuration for this connection (opaque JSON object) + secrets: + type: string + description: The secrets for this connection. This will always be `null` on a response so that secrets are not leaked. (opaque JSON object) + teams: + type: array + description: The teams whose managers are allowed to use or edit this connection + items: + type: object + properties: + team_id: + type: string + description: The ID of the team + type: + type: string + enum: + - team_reference + apps: + type: array + description: The app IDs for this connection + items: + type: object + properties: + app_id: + type: string + description: The ID of the app + type: + type: string + enum: + - pd_app_reference + created_at: + type: string + format: date-time + description: The timestamp of when the connection was created + readOnly: true + created_by: + readOnly: true + nullable: true + description: Reference to the user who created this connection + properties: + type: + type: string + description: Type of the referenced object + readOnly: true + enum: + - user_reference + id: + type: string + description: Unique identifier of the user + readOnly: true + summary: + type: string + readOnly: true + description: The user's name + html_url: + type: string + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + self: + type: string + readOnly: true + format: url + description: the API show URL at which the object is accessible + type: object + Tag: + type: object + properties: + id: + type: string + readOnly: true + summary: + type: string + nullable: true + readOnly: true + description: A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier. + type: + type: string + readOnly: true + description: A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference. + self: + type: string + nullable: true + readOnly: true + format: url + description: the API show URL at which the object is accessible + html_url: + type: string + nullable: true + readOnly: true + format: url + description: a URL at which the entity is uniquely displayed in the Web app + label: + type: string + description: The label of the tag. + maxLength: 191 + required: + - label + - type + example: + type: tag + label: Batman + responses: + ArgumentError: + description: Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Unauthorized: + description: | + Caller did not supply credentials or did not provide the correct credentials. + If you are using an API key, it may be invalid or your Authorization header may be malformed. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Forbidden: + description: | + Caller is not authorized to view the requested resource. + While your authentication is valid, the authenticated user or token does not have permission to perform this action. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + NotFound: + description: The requested resource was not found. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + TooManyRequests: + description: Too many requests have been made, the rate limit has been reached. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + Conflict: + description: The request conflicts with the current state of the server. + content: + application/json: + schema: + description: Generic error response from the PagerDuty API + type: object + properties: + error: + type: object + properties: + code: + type: integer + readOnly: true + message: + type: string + readOnly: true + description: Error message string + errors: + type: array + readOnly: true + items: + type: string + readOnly: true + description: Human-readable error details + example: + message: Not Found + code: 2100 + parameters: + cursor_limit: + name: limit + in: query + required: false + description: The minimum of the `limit` parameter used in the request or the maximum request size of the API. + schema: + type: integer + cursor_cursor: + name: cursor + in: query + required: false + description: | + Optional parameter used to request the "next" set of results from an API. The value provided here is most commonly obtained from the `next_cursor` field of the previous request. When no value is provided, the request starts at the beginning of the result set. + schema: + type: string + include_deprecated: + name: include_deprecated + in: query + description: Whether to include deprecated Integrations in the response. + explode: true + schema: + type: boolean + default: false + id: + name: id + description: The ID of the resource. + in: path + required: true + schema: + type: string + name: + name: name + in: query + required: false + description: Filter Integrations by partial name. + schema: + type: string + example: PagerDuty + workflow_integrations_integration_id: + name: integration_id + in: path + description: The ID of the Workflow Integration + required: true + schema: + type: string + examples: + WorkflowIntegrationExample: + summary: Response Example + value: + integration: + - id: http-api + type: workflow_integration + domain_name: pagerduty.com + package_name: http-api + name: Web API + description: Create fast, custom connections to apps without integrations. + icon_svg: | + + + + tags: + - integration + search_keywords: + - web + - api + - rest + - http + - headers + is_deprecated: false + entitled: true + application: null + configuration_schema: + $schema: https://json-schema.org/draft/2020-12/schema + $id: https://api.pagerduty.com/workflows/integrations/http-api/schemas/configuration.json + title: Web API Integration Configuration + description: The configuration of a workflow integration connection to Web API + type: object + properties: + Redacted Authentication Headers: + type: text + description: Stores the redacted versions of the sensitive authentication headers + is_hidden: true + advanced: false + metadata: '' + default_value: null + restrictions: null + display_order: 2 + Allowed Hostnames: + type: text + description: 'Enter the hostnames to allow sending these credentials to, one per line. An asterisk (*) may be used for subdomains. Ex: "example.com", "subdomain.example.com" or "*.example.com"' + is_hidden: false + advanced: false + metadata: '{"format":"textarea"}' + default_value: null + restrictions: null + display_order: 3 + format: TEXTAREA + Health Check URL: + type: text + description: Enter a url to monitor the health of this connection. + is_hidden: false + advanced: false + metadata: '' + default_value: null + restrictions: null + display_order: 4 + Health Check Method: + type: singleChoice + description: Select which HTTP method to use for the health check request. + is_hidden: false + advanced: false + metadata: '' + default_value: HEAD + restrictions: + choices: + - HEAD + - GET + display_order: 5 + Existing Connection: + type: connection + description: Existing connection to update, if any + is_hidden: true + advanced: false + metadata: '' + default_value: null + restrictions: null + display_order: 6 + connection_type_id: pagerduty.com:http-api:integration:1 + required: + - Allowed Hostnames + secrets_schema: + $schema: https://json-schema.org/draft/2020-12/schema + $id: https://api.pagerduty.com/workflows/integrations/http-api/schemas/secrets.json + title: Web API Integration Secrets + description: The secrets of a workflow integration connection to Web API + type: object + properties: + Authentication Headers: + type: text + description: 'Enter the headers to include in Web API calls made with this connection, one per line. Ex: "Authorization: Bearer XXXX"' + is_hidden: false + advanced: false + metadata: '{"format":"textarea"}' + default_value: null + restrictions: null + display_order: 1 + format: TEXTAREA + required: + - Authentication Headers + html_url: https://subdomain.pagerduty.com/workflows/integrations/http-api + self: https://api.pagerduty.com/workflows/integrations/http-api + created_at: '2024-06-18T18:41:27.1+00:00' + created_by: + id: P7F68N8 + type: user_reference + summary: John Smith + html_url: https://subdomain.pagerduty.com/users/P7F68N8 + self: https://api.pagerduty.com/users/P7F68N8 + WorkflowIntegrationConnectionExample: + summary: Response Example + value: + connection: + - id: 5a8e88bb-2acd-4035-8f02-163c10f917b8 + type: workflow_integration_connection + integration_id: http-api + name: My Connection + service_url: https://webhook.site + external_id: My Connection + external_id_label: Connection Name + is_default: true + health: + is_healthy: true + last_checked_at: '2024-07-18T21:16:51.511+00:00' + health_message: Healthy + configuration: + Health Check URL: https://example.com/health + Allowed Hostnames: webhook.site + Health Check Method: GET + Redacted Authentication Headers: 'x-api-key: ****' + secrets: null + teams: [] + apps: [] + html_url: https://subdomain.pagerduty.com/workflows/integrations/http-api/connections/5a8e88bb-2acd-4035-8f02-163c10f917b8 + self: https://api.pagerduty.com/workflows/integrations/http-api/connections/5a8e88bb-2acd-4035-8f02-163c10f917b8 + created_at: '2024-06-18T18:41:27.1+00:00' + created_by: + id: P7F68N8 + type: user_reference + summary: John Smith + html_url: https://subdomain.pagerduty.com/users/P7F68N8 + self: https://api.pagerduty.com/users/P7F68N8 + CreateWorkflowIntegrationConnectionExample: + summary: Create or update Workflow Integration Connection example. + value: + connection: + name: My Connection + service_url: https://webhook.site + external_id: My Connection + external_id_label: Connection Name + configuration: + Health Check URL: https://example.com/health + Allowed Hostnames: webhook.site + Health Check Method: GET + secrets: + Authentication Headers: 'x-api-key: 1234abcd' + is_default: true + teams: [] + apps: [] + requestBodies: + CreateWorkflowIntegrationConnection: + content: + application/json: + schema: + type: object + description: Create a new connection for a Workflow Integration + properties: + id: + type: string + description: The ID of the connection + readOnly: true + type: + type: string + description: The type of the connection + readOnly: true + integration_id: + type: string + description: The integration ID that this connection is associated with + readOnly: true + name: + type: string + description: The name given to the connection + service_url: + type: string + description: The URL of the service that this connection is associated with + external_id: + type: string + description: The ID of the external system that this connection is used to connect to + external_id_label: + type: string + description: The label of the external system that this connection is used to connect to + scopes: + type: array + items: + type: string + description: The scopes that this connection has access to + is_default: + type: boolean + description: Whether or not this connection is the default connection for this integration + health: + type: object + readOnly: true + properties: + is_healthy: + type: boolean + description: Whether or not the connection is healthy + readOnly: true + health_message: + type: string + description: A message describing the health of the connection + readOnly: true + last_checked_at: + type: string + format: date-time + description: The timestamp of the last health check + readOnly: true + configuration: + type: string + description: |- + The configuration for this connection. + The configuration schema is defined in the Workflow Integration's `configuration_schema` property. + It is dynamic based on the specific Workflow Integration. + (opaque JSON object) + secrets: + type: string + description: |- + The secrets for this connection. + The secrets schema is defined in the Workflow Integration's `secrets_schema` property. + It is dynamic based on the specific Workflow Integration. + This field is write-only and will always be `null` on a response so that secrets are not leaked. + (opaque JSON object) + teams: + type: array + description: The teams whose managers are allowed to use or edit this connection + items: + type: object + properties: + team_id: + type: string + description: The ID of the team + type: + type: string + enum: + - team_reference + apps: + type: array + description: The app IDs for this connection + items: + type: object + properties: + app_id: + type: string + description: The ID of the app + type: + type: string + enum: + - pd_app_reference + required: + - name + - secrets + examples: + request: + $ref: '#/components/examples/CreateWorkflowIntegrationConnectionExample' + UpdateWorkflowIntegrationConnection: + content: + application/json: + schema: + type: object + description: Update a connection for a Workflow Integration + properties: + id: + type: string + description: The ID of the connection + readOnly: true + type: + type: string + description: The type of the connection + readOnly: true + integration_id: + type: string + description: The integration ID that this connection is associated with + readOnly: true + name: + type: string + description: The name given to the connection + service_url: + type: string + description: The URL of the service that this connection is associated with + external_id: + type: string + description: The ID of the external system that this connection is used to connect to + external_id_label: + type: string + description: The label of the external system that this connection is used to connect to + scopes: + type: array + items: + type: string + description: The scopes that this connection has access to + is_default: + type: boolean + description: Whether or not this connection is the default connection for this integration + health: + type: object + readOnly: true + properties: + is_healthy: + type: boolean + description: Whether or not the connection is healthy + readOnly: true + health_message: + type: string + description: A message describing the health of the connection + readOnly: true + last_checked_at: + type: string + format: date-time + description: The timestamp of the last health check + readOnly: true + configuration: + type: string + description: |- + The configuration for this connection. + The configuration schema is defined in the Workflow Integration's `configuration_schema` property. + It is dynamic based on the specific Workflow Integration. + (opaque JSON object) + secrets: + type: string + description: |- + The secrets for this connection. + The secrets schema is defined in the Workflow Integration's `secrets_schema` property. + It is dynamic based on the specific Workflow Integration. + This field is write-only and will always be `null` on a response so that secrets are not leaked. + (opaque JSON object) + teams: + type: array + description: The teams whose managers are allowed to use or edit this connection + items: + type: object + properties: + team_id: + type: string + description: The ID of the team + type: + type: string + enum: + - team_reference + apps: + type: array + description: The app IDs for this connection + items: + type: object + properties: + app_id: + type: string + description: The ID of the app + type: + type: string + enum: + - pd_app_reference + required: + - name + - secrets + examples: + request: + $ref: '#/components/examples/CreateWorkflowIntegrationConnectionExample' + x-stackQL-resources: + integrations: + id: pagerduty.workflow_integrations.integrations + name: integrations + title: Integrations + methods: + list: + operation: + $ref: '#/paths/~1workflows~1integrations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integrations + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1workflows~1integrations~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/integrations/methods/get' + - $ref: '#/components/x-stackQL-resources/integrations/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + connections: + id: pagerduty.workflow_integrations.connections + name: connections + title: Connections + methods: + list: + operation: + $ref: '#/paths/~1workflows~1integrations~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.connections + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + list_by_integration: + operation: + $ref: '#/paths/~1workflows~1integrations~1{integration_id}~1connections/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.connections + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: next_cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1workflows~1integrations~1{integration_id}~1connections/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1workflows~1integrations~1{integration_id}~1connections~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1workflows~1integrations~1{integration_id}~1connections~1{id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1workflows~1integrations~1{integration_id}~1connections~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connections/methods/get' + - $ref: '#/components/x-stackQL-resources/connections/methods/list_by_integration' + - $ref: '#/components/x-stackQL-resources/connections/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connections/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connections/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connections/methods/delete' + replace: [] +servers: + - url: https://api.pagerduty.com + description: PagerDuty REST API v2 (US service region). The EU service region (https://api.eu.pagerduty.com) is documented in NOTES.md - a server variable cannot carry it without becoming a required parameter on every query. diff --git a/providers/src/sumologic/v00.00.00000/provider.yaml b/providers/src/sumologic/v00.00.00000/provider.yaml index 2fd8cfd6..401b0b89 100644 --- a/providers/src/sumologic/v00.00.00000/provider.yaml +++ b/providers/src/sumologic/v00.00.00000/provider.yaml @@ -3,295 +3,458 @@ name: sumologic version: v00.00.00000 providerServices: access_keys: - description: AccessKeys id: access_keys:v00.00.00000 name: access_keys preferred: true service: $ref: sumologic/v00.00.00000/services/access_keys.yaml - title: Sumo Logic API - access_keys + title: Sumo Logic Access Keys API version: v00.00.00000 + description: Access keys of the calling user and of the organization, their scopes, CORS headers and secret rotation. account: - description: account id: account:v00.00.00000 name: account preferred: true service: $ref: sumologic/v00.00.00000/services/account.yaml - title: Sumo Logic API - account + title: Sumo Logic Account API version: v00.00.00000 + description: Account status, owner, subdomain, plan update requests, usage reports and usage forecasts. apps: - description: apps id: apps:v00.00.00000 name: apps preferred: true service: $ref: sumologic/v00.00.00000/services/apps.yaml - title: Sumo Logic API - apps + title: Sumo Logic Apps API version: v00.00.00000 + description: The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, uninstall apps and follow the asynchronous install jobs. archive: - description: archive id: archive:v00.00.00000 name: archive preferred: true service: $ref: sumologic/v00.00.00000/services/archive.yaml - title: Sumo Logic API - archive + title: Sumo Logic Archive API version: v00.00.00000 + description: Archive ingestion jobs that replay archived logs from an AWS S3 archive source. + budgets: + id: budgets:v00.00.00000 + name: budgets + preferred: true + service: + $ref: sumologic/v00.00.00000/services/budgets.yaml + title: Sumo Logic Budgets API + version: v00.00.00000 + description: Data volume and search cost budgets and their usage. collectors: - description: collectors id: collectors:v00.00.00000 name: collectors preferred: true service: $ref: sumologic/v00.00.00000/services/collectors.yaml - title: Sumo Logic API - Collector Management API + title: Sumo Logic Collectors API version: v00.00.00000 + description: Collectors, Sources and Collector upgrades (the Collector Management API). connections: - description: connections id: connections:v00.00.00000 name: connections preferred: true service: $ref: sumologic/v00.00.00000/services/connections.yaml - title: Sumo Logic API - connections + title: Sumo Logic Connections API version: v00.00.00000 + description: Webhook, ServiceNow, PagerDuty and other outbound connections used by monitors and scheduled searches. content: - description: content id: content:v00.00.00000 name: content preferred: true service: $ref: sumologic/v00.00.00000/services/content.yaml - title: Sumo Logic API - content + title: Sumo Logic Content API + version: v00.00.00000 + description: The content library - folders (personal, global, admin recommended, installed apps), content permissions, paths, and the asynchronous export, import, copy, move and delete jobs. + content_sync: + id: content_sync:v00.00.00000 + name: content_sync + preferred: true + service: + $ref: sumologic/v00.00.00000/services/content_sync.yaml + title: Sumo Logic Content Sync API version: v00.00.00000 + description: Multi-account content synchronisation jobs between child organizations. dashboards: - description: dashboards id: dashboards:v00.00.00000 name: dashboards preferred: true service: $ref: sumologic/v00.00.00000/services/dashboards.yaml - title: Sumo Logic API - dashboards + title: Sumo Logic Dashboards API + version: v00.00.00000 + description: Dashboards (New), dashboard report schedules, report generation jobs and legacy report migration. + data_archiving: + id: data_archiving:v00.00.00000 + name: data_archiving + preferred: true + service: + $ref: sumologic/v00.00.00000/services/data_archiving.yaml + title: Sumo Logic Data Archiving API + version: v00.00.00000 + description: Data archiving destinations (AWS S3 buckets for archived logs). + data_deletion_rules: + id: data_deletion_rules:v00.00.00000 + name: data_deletion_rules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/data_deletion_rules.yaml + title: Sumo Logic Data Deletion Rules API + version: v00.00.00000 + description: Data deletion rules that remove already-ingested log data. + data_masking_rules: + id: data_masking_rules:v00.00.00000 + name: data_masking_rules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/data_masking_rules.yaml + title: Sumo Logic Data Masking Rules API version: v00.00.00000 + description: Data masking rules applied at ingest. dynamic_parsing_rules: - description: dynamicParsingRules id: dynamic_parsing_rules:v00.00.00000 name: dynamic_parsing_rules preferred: true service: $ref: sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml - title: Sumo Logic API - dynamic_parsing_rules + title: Sumo Logic Dynamic Parsing Rules API version: v00.00.00000 + description: Dynamic parsing rules that extract fields automatically from JSON logs. + event_extraction_rules: + id: event_extraction_rules:v00.00.00000 + name: event_extraction_rules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/event_extraction_rules.yaml + title: Sumo Logic Event Extraction Rules API + version: v00.00.00000 + description: Event extraction rules (Event Analytics) and their quota. extraction_rules: - description: extractionRules id: extraction_rules:v00.00.00000 name: extraction_rules preferred: true service: $ref: sumologic/v00.00.00000/services/extraction_rules.yaml - title: Sumo Logic API - extraction_rules + title: Sumo Logic Extraction Rules API + version: v00.00.00000 + description: Field extraction rules and their quota. + feature_settings: + id: feature_settings:v00.00.00000 + name: feature_settings + preferred: true + service: + $ref: sumologic/v00.00.00000/services/feature_settings.yaml + title: Sumo Logic Feature Settings API version: v00.00.00000 + description: Organization feature settings. fields: - description: fields id: fields:v00.00.00000 name: fields preferred: true service: $ref: sumologic/v00.00.00000/services/fields.yaml - title: Sumo Logic API - fields + title: Sumo Logic Fields API version: v00.00.00000 + description: Custom fields, built-in fields, dropped fields and the field quota. health_events: - description: healthEvents id: health_events:v00.00.00000 name: health_events preferred: true service: $ref: sumologic/v00.00.00000/services/health_events.yaml - title: Sumo Logic API - health_events + title: Sumo Logic Health Events API version: v00.00.00000 + description: Health events for collectors, sources, ingest budgets and other resources. ingest_budgets: - description: ingestBudgets id: ingest_budgets:v00.00.00000 name: ingest_budgets preferred: true service: $ref: sumologic/v00.00.00000/services/ingest_budgets.yaml - title: Sumo Logic API - ingest_budgets + title: Sumo Logic Ingest Budgets API version: v00.00.00000 + description: Ingest budgets (v2) and their usage reset. log_searches: - description: logSearches id: log_searches:v00.00.00000 name: log_searches preferred: true service: $ref: sumologic/v00.00.00000/services/log_searches.yaml - title: Sumo Logic API - log_searches + title: Sumo Logic Log Searches API version: v00.00.00000 + description: Saved and scheduled log searches, and estimated usage of a log search across data tiers. logs_data_forwarding: - description: logsDataForwarding id: logs_data_forwarding:v00.00.00000 name: logs_data_forwarding preferred: true service: $ref: sumologic/v00.00.00000/services/logs_data_forwarding.yaml - title: Sumo Logic API - logs_data_forwarding + title: Sumo Logic Logs Data Forwarding API version: v00.00.00000 + description: Log data forwarding destinations (AWS S3) and forwarding rules per partition. lookup_tables: - description: lookupTables id: lookup_tables:v00.00.00000 name: lookup_tables preferred: true service: $ref: sumologic/v00.00.00000/services/lookup_tables.yaml - title: Sumo Logic API - lookup_tables + title: Sumo Logic Lookup Tables API version: v00.00.00000 + description: Lookup tables, their rows, file uploads and the asynchronous lookup jobs. + macros: + id: macros:v00.00.00000 + name: macros + preferred: true + service: + $ref: sumologic/v00.00.00000/services/macros.yaml + title: Sumo Logic Macros API + version: v00.00.00000 + description: Search macros. metrics_queries: - description: metricsQueries id: metrics_queries:v00.00.00000 name: metrics_queries preferred: true service: $ref: sumologic/v00.00.00000/services/metrics_queries.yaml - title: Sumo Logic API - metrics_queries + title: Sumo Logic Metrics Queries API version: v00.00.00000 + description: Ad hoc metrics queries. metrics_searches: - description: metricsSearches id: metrics_searches:v00.00.00000 name: metrics_searches preferred: true service: $ref: sumologic/v00.00.00000/services/metrics_searches.yaml - title: Sumo Logic API - metrics_searches + title: Sumo Logic Metrics Searches API version: v00.00.00000 + description: Saved metrics searches (v1 and v2). monitors: - description: monitors id: monitors:v00.00.00000 name: monitors preferred: true service: $ref: sumologic/v00.00.00000/services/monitors.yaml - title: Sumo Logic API - monitors + title: Sumo Logic Monitors API + version: v00.00.00000 + description: Monitors and monitor folders in the monitors library - search, path, copy, move, import, export, permissions, playbooks and usage. + muting_schedules: + id: muting_schedules:v00.00.00000 + name: muting_schedules + preferred: true + service: + $ref: sumologic/v00.00.00000/services/muting_schedules.yaml + title: Sumo Logic Muting Schedules API + version: v00.00.00000 + description: Muting schedules in the muting schedules library. + oauth: + id: oauth:v00.00.00000 + name: oauth + preferred: true + service: + $ref: sumologic/v00.00.00000/services/oauth.yaml + title: Sumo Logic Oauth API version: v00.00.00000 + description: OAuth clients, consents and scopes. + organizations: + id: organizations:v00.00.00000 + name: organizations + preferred: true + service: + $ref: sumologic/v00.00.00000/services/organizations.yaml + title: Sumo Logic Organizations API + version: v00.00.00000 + description: Usage of child organizations (multi-account management). + ot_collectors: + id: ot_collectors:v00.00.00000 + name: ot_collectors + preferred: true + service: + $ref: sumologic/v00.00.00000/services/ot_collectors.yaml + title: Sumo Logic Ot Collectors API + version: v00.00.00000 + description: OpenTelemetry collectors. + parsers: + id: parsers:v00.00.00000 + name: parsers + preferred: true + service: + $ref: sumologic/v00.00.00000/services/parsers.yaml + title: Sumo Logic Parsers API + version: v00.00.00000 + description: Custom and system parsers in the parsers library. partitions: - description: partitions id: partitions:v00.00.00000 name: partitions preferred: true service: $ref: sumologic/v00.00.00000/services/partitions.yaml - title: Sumo Logic API - partitions + title: Sumo Logic Partitions API version: v00.00.00000 + description: Partitions (indexes), their retention and decommissioning, and the partition quota. password_policy: - description: passwordPolicy id: password_policy:v00.00.00000 name: password_policy preferred: true service: $ref: sumologic/v00.00.00000/services/password_policy.yaml - title: Sumo Logic API - password_policy - version: v00.00.00000 - plan: - description: plan - id: plan:v00.00.00000 - name: plan - preferred: true - service: - $ref: sumologic/v00.00.00000/services/plan.yaml - title: Sumo Logic API - plan + title: Sumo Logic Password Policy API version: v00.00.00000 + description: The organization password policy. policies: - description: policies id: policies:v00.00.00000 name: policies preferred: true service: $ref: sumologic/v00.00.00000/services/policies.yaml - title: Sumo Logic API - policies + title: Sumo Logic Policies API version: v00.00.00000 + description: Organization security and behaviour policies - audit, search audit, data access level, data deletion, session limits, dashboard sharing, timestamp format, OAuth CIMD and access key lifetime. roles: - description: roles id: roles:v00.00.00000 name: roles preferred: true service: $ref: sumologic/v00.00.00000/services/roles.yaml - title: Sumo Logic API - roles + title: Sumo Logic Roles API version: v00.00.00000 + description: Roles (v1 and v2) and role assignment to users. saml: - description: saml id: saml:v00.00.00000 name: saml preferred: true service: $ref: sumologic/v00.00.00000/services/saml.yaml - title: Sumo Logic API - saml + title: Sumo Logic Saml API version: v00.00.00000 + description: SAML identity providers, allowlisted users and SAML lockdown. scheduled_views: - description: scheduledViews id: scheduled_views:v00.00.00000 name: scheduled_views preferred: true service: $ref: sumologic/v00.00.00000/services/scheduled_views.yaml - title: Sumo Logic API - scheduled_views + title: Sumo Logic Scheduled Views API + version: v00.00.00000 + description: Scheduled views and their quota. + schemas: + id: schemas:v00.00.00000 + name: schemas + preferred: true + service: + $ref: sumologic/v00.00.00000/services/schemas.yaml + title: Sumo Logic Schemas API version: v00.00.00000 + description: Schema identities grouped by product (Schema Base Management). + scim: + id: scim:v00.00.00000 + name: scim + preferred: true + service: + $ref: sumologic/v00.00.00000/services/scim.yaml + title: Sumo Logic Scim API + version: v00.00.00000 + description: SCIM 2.0 user provisioning. + search_jobs: + id: search_jobs:v00.00.00000 + name: search_jobs + preferred: true + service: + $ref: sumologic/v00.00.00000/services/search_jobs.yaml + title: Sumo Logic Search Jobs API + version: v00.00.00000 + description: Search jobs (v2) - create a log search job, poll its status and page through its messages and records. + service_accounts: + id: service_accounts:v00.00.00000 + name: service_accounts + preferred: true + service: + $ref: sumologic/v00.00.00000/services/service_accounts.yaml + title: Sumo Logic Service Accounts API + version: v00.00.00000 + description: Service accounts and their access keys. service_allowlist: - description: serviceAllowlist id: service_allowlist:v00.00.00000 name: service_allowlist preferred: true service: $ref: sumologic/v00.00.00000/services/service_allowlist.yaml - title: Sumo Logic API - service_allowlist + title: Sumo Logic Service Allowlist API version: v00.00.00000 + description: The service allowlist of CIDR addresses for login and content access. slos: - description: slos id: slos:v00.00.00000 name: slos preferred: true service: $ref: sumologic/v00.00.00000/services/slos.yaml - title: Sumo Logic API - slos + title: Sumo Logic Slos API + version: v00.00.00000 + description: SLOs and SLO folders in the SLO library, service level indicators and usage. + source_templates: + id: source_templates:v00.00.00000 + name: source_templates + preferred: true + service: + $ref: sumologic/v00.00.00000/services/source_templates.yaml + title: Sumo Logic Source Templates API + version: v00.00.00000 + description: Source templates for OpenTelemetry collectors (v1 deprecated and v2). + threat_intel: + id: threat_intel:v00.00.00000 + name: threat_intel + preferred: true + service: + $ref: sumologic/v00.00.00000/services/threat_intel.yaml + title: Sumo Logic Threat Intel API version: v00.00.00000 + description: Threat intelligence datastore, data sources, retention and indicator ingestion. tokens: - description: tokens id: tokens:v00.00.00000 name: tokens preferred: true service: $ref: sumologic/v00.00.00000/services/tokens.yaml - title: Sumo Logic API - tokens + title: Sumo Logic Tokens API version: v00.00.00000 + description: Installation tokens (tokens library). tracing: - description: tracing id: tracing:v00.00.00000 name: tracing preferred: true service: $ref: sumologic/v00.00.00000/services/tracing.yaml - title: Sumo Logic API - tracing + title: Sumo Logic Tracing API version: v00.00.00000 + description: Traces, spans, trace and span queries, tracing metrics and the service map. transformation_rules: - description: transformationRules id: transformation_rules:v00.00.00000 name: transformation_rules preferred: true service: $ref: sumologic/v00.00.00000/services/transformation_rules.yaml - title: Sumo Logic API - transformation_rules + title: Sumo Logic Transformation Rules API version: v00.00.00000 + description: Metrics transformation rules. users: - description: users id: users:v00.00.00000 name: users preferred: true service: $ref: sumologic/v00.00.00000/services/users.yaml - title: Sumo Logic API - users + title: Sumo Logic Users API version: v00.00.00000 + description: Users and their lifecycle actions - unlock, password reset, email change, welcome email, MFA. config: auth: type: basic username_var: SUMOLOGIC_ACCESSID - password_var: SUMOLOGIC_ACCESSKEY \ No newline at end of file + password_var: SUMOLOGIC_ACCESSKEY + snake_case_aliases: true diff --git a/providers/src/sumologic/v00.00.00000/services/access_keys.yaml b/providers/src/sumologic/v00.00.00000/services/access_keys.yaml index f0909c5d..df499244 100644 --- a/providers/src/sumologic/v00.00.00000/services/access_keys.yaml +++ b/providers/src/sumologic/v00.00.00000/services/access_keys.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Access Keys API + description: Access keys of the calling user and of the organization, their scopes, CORS headers and secret rotation. + version: 1.0.0 paths: /v1/accessKeys: get: @@ -85,6 +90,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/scopes: + get: + tags: + - accessKeyManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an access key. + operationId: listScopes + responses: + '200': + description: A list of scopes that can be added to an access key. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v1/accessKeys/{id}: put: tags: @@ -140,6 +165,33 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/accessKeys/{id}/rotate: + put: + tags: + - accessKeyManagement + summary: Rotate the access key secret + description: Generates a new secret for the access key that is passed in the call, keeping the same access ID. + operationId: rotateAccessKeySecret + parameters: + - name: id + in: path + description: The accessId of the access key to rotate the secret for. + required: true + schema: + type: string + responses: + '200': + description: Access key secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Access key secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: PaginatedListAccessKeysResult: @@ -177,7 +229,84 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - AccessKeyPublic: + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: required: - createdAt - createdBy @@ -185,6 +314,8 @@ components: - id - label - modifiedAt + - modifiedBy + - key type: object properties: id: @@ -214,7 +345,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the access key. @@ -223,71 +354,85 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA lastUsed: type: string description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. format: date-time - example: '2018-10-16T09:10:00Z' - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - AccessKeyCreateRequest: - required: - - label - type: object - properties: - label: - maxLength: 128 - type: string - description: A name for the access key to be created. - example: automation access key - corsHeaders: - maxItems: 20 + example: '2018-10-16T09:10:00.000Z' + scopes: type: array description: |- - An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request - depends on whether it contains an ORIGIN header and the entries in the allowlist. - Sumo Logic will reject: - 1. Requests with an ORIGIN header but the allowlist is empty. - 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles example: - - https://my-app.com - - https://mail.my-app.com + - manageUsersAndRoles + - viewCollectors items: type: string - AccessKey: - allOf: - - $ref: '#/components/schemas/AccessKeyPublic' - - required: - - key - type: object - properties: - key: - type: string - description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. - example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + key: + type: string + description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ ListAccessKeysResult: required: - data @@ -299,6 +444,16 @@ components: items: $ref: '#/components/schemas/AccessKeyPublic' description: List of access keys. + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' AccessKeyUpdateRequest: required: - disabled @@ -320,403 +475,381 @@ components: - https://mail.my-app.com items: type: string - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + scopes: + type: array + description: |- + Scopes assigned to the key.

Note: Updates to scopes will take up to 5m to reflect due to caching in the system. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. x-stackQL-resources: access_keys: id: sumologic.access_keys.access_keys name: access_keys - title: Access_keys + title: Access Keys methods: - listAccessKeys: + list: operation: $ref: '#/paths/~1v1~1accessKeys/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createAccessKey: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1accessKeys/post' response: mediaType: application/json openAPIDocKey: '200' - updateAccessKey: + request: + mediaType: application/json + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1accessKeys~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteAccessKey: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1accessKeys~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + rotate_secret: + operation: + $ref: '#/paths/~1v1~1accessKeys~1{id}~1rotate/put' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/access_keys/methods/listAccessKeys' + - $ref: '#/components/x-stackQL-resources/access_keys/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/access_keys/methods/createAccessKey' - update: [] + - $ref: '#/components/x-stackQL-resources/access_keys/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/access_keys/methods/deleteAccessKey' - personal: - id: sumologic.access_keys.personal - name: personal - title: Personal + - $ref: '#/components/x-stackQL-resources/access_keys/methods/delete' + replace: [] + personal_access_keys: + id: sumologic.access_keys.personal_access_keys + name: personal_access_keys + title: Personal Access Keys methods: - listPersonalAccessKeys: + list: operation: $ref: '#/paths/~1v1~1accessKeys~1personal/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/personal/methods/listPersonalAccessKeys' + - $ref: '#/components/x-stackQL-resources/personal_access_keys/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + scopes: + id: sumologic.access_keys.scopes + name: scopes + title: Scopes + methods: + list: + operation: + $ref: '#/paths/~1v1~1accessKeys~1scopes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/scopes/methods/list' + insert: [] + update: [] + delete: [] + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - access_keys - description: accessKeys - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/account.yaml b/providers/src/sumologic/v00.00.00000/services/account.yaml index 0a99df6c..db127a71 100644 --- a/providers/src/sumologic/v00.00.00000/services/account.yaml +++ b/providers/src/sumologic/v00.00.00000/services/account.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Account API + description: Account status, owner, subdomain, plan update requests, usage reports and usage forecasts. + version: 1.0.0 paths: /v1/account/accountOwner: get: @@ -13,6 +18,7 @@ paths: application/json: schema: type: string + example: 10000000 default: description: Operation failed with an error. content: @@ -149,6 +155,122 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report: + post: + tags: + - accountManagement + summary: Export credits usage details as CSV. + description: Export the credit usage details as csv for the specific period of time given as input in the form of a start and end date with a specific grouping according to `day`, `week`, `month`, Note that this API will work only for credits plan customers. + operationId: exportUsageReport + requestBody: + description: Export Usage Report Request. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportRequest' + required: true + responses: + '200': + description: Export Response with Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usage/report/{jobId}/status: + get: + tags: + - accountManagement + summary: Get report generation status. + description: Get the report download URL and status using Job Id. + operationId: getStatusForReport + parameters: + - name: jobId + in: path + description: Job Id for the report to be exported. + required: true + schema: + type: string + responses: + '200': + description: Status response containing status and downloadURL if successful. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageReportStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/account/usageForecast: + get: + tags: + - accountManagement + summary: Get usage forecast with respect to last number of days specified. + description: Get usage forecast with respect to last number of days specified. If nothing is provided for last number of days, the average of term period will be taken to do the forecast. + operationId: getUsageForecast + parameters: + - name: numberOfDays + in: query + description: Number of days to use for calculating average usage and forecast. + required: false + schema: + type: number + responses: + '200': + description: Usage Forecast. + content: + application/json: + schema: + $ref: '#/components/schemas/UsageForecastResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/plan/pendingUpdateRequest: + get: + tags: + - accountManagement + summary: Get the pending plan update request, if any. + description: Get the pending plan update request which will be applicable from next billing cycle. + operationId: getPendingUpdateRequest + responses: + '200': + description: Pending plan update request. + content: + application/json: + schema: + $ref: '#/components/schemas/PendingUpdateRequest' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - accountManagement + summary: Delete the pending plan update request, if any. + description: Delete the pending plan update request which would be applicable from next billing cycle. + operationId: deletePendingUpdateRequest + responses: + '204': + description: Deleted the pending update request. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ErrorResponse: @@ -171,30 +293,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 AccountStatusResponse: required: - applicationUse @@ -230,6 +328,19 @@ components: type: boolean description: If the account is activated or not example: true + totalCredits: + type: integer + description: Total amount of credits assigned to the account + example: 400 + logModel: + pattern: ^(Flex|Tiered|FlexPlusTiered)$ + type: string + description: The log model of the account + example: Flex + isSubscriptionV2: + type: boolean + description: Indicates whether the account has v2 subscription enabled. + example: false description: Information about the account's plan and payment. SubdomainDefinitionResponse: required: @@ -276,433 +387,647 @@ components: type: string description: The new subdomain. example: my-company - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + UsageReportRequest: + type: object + properties: + startDate: + type: string + description: Start date, without the time, of the usage data to fetch. If no value is provided startDate is used as the start of the subscription. The start date cannot be before the start of the subscription. + example: '2019-07-20T00:00:00.000Z' + endDate: + type: string + description: End date, without the time, of usage data to fetch. If no value is provided endDate is used as the end of the subscription. The end date cannot be after the end of the subscription. + example: '2019-08-20T00:00:00.000Z' + groupBy: + pattern: ^(day|week|month)$ + type: string + description: 'Perform a groupBy operation on the usage details. If no value is provided data is grouped by `Day` - `day`: Aggregate the data by day - `week`: Aggregate the data by week. Week starts at Monday and ends at sunday night. - `month`: Aggregate the data by calendar month.' + example: day + default: day + reportType: + pattern: ^(standard|detailed|childDetailed)$ + type: string + description: Specifies the type of report to be exported. Available types are `standard` and `detailed`. An additional `childDetailed` type is available for Sumo Orgs parents. Detailed report will have raw consumption along with the credits breakdown. If no value is provided Standard reports will be exported. + example: standard + default: standard + includeDeploymentCharge: + type: boolean + description: Deployment charges will be applied to the returned usages csv if this is set to true and the organization is a part of Sumo Organizations as a child organization. + example: false + default: false + description: Usage Export Report Request + UsageReportResponse: + type: object + properties: + jobId: + type: string + description: Job Id for export + example: '12345678' + description: Export Usage response containing the jobId + UsageReportStatusResponse: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + status: + pattern: ^(Success|InProgress|Failed)$ + type: string + description: Status export + example: Success + statusMessage: + type: string + description: Status message export + example: Successful request + reportDownloadURL: + type: string + description: S3 presigned download URL for the report. It is valid for 10 minutes. + example: www.example.com + description: Status response containing status and downloadURL if successful + UsageForecastResponse: + type: object + properties: + averageUsage: + type: number + description: Average credit usage per day till now. + format: double + example: 4 + usagePercentage: + type: number + description: Percentage of total credits used till date. + format: double + example: 7 + forecastedUsage: + type: number + description: Total expected usage by the end of contract period. + format: double + example: 10 + forecastedUsagePercentage: + type: number + description: Percentage of allocated credits that will be used in the contract period. + format: double + example: 5 + remainingDays: + type: number + description: Days remaining till all the credits are consumed. + format: double + example: 10 + description: Usage forecast for the organization. + PendingUpdateRequest: + required: + - createdOn + - plan + type: object + properties: + createdOn: + type: string + description: The date on which the update request was created. + format: date + plan: + $ref: '#/components/schemas/CurrentPlan' + description: The pending plan update request for the account + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + CurrentPlan: + required: + - billingFrequency + - planCost + - productId + type: object + properties: + productId: + pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ + type: string + description: | + Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` + example: Essentials + x-pattern-message: 'must be one of the following: `Essentials`, `Trial`, `Free`, `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`' + planCost: + type: number + description: Cost incurred for the current plan. + format: double + example: 725.46 + billingFrequency: + pattern: ^(Monthly|Annually)$ + type: string + description: | + Billing frequency for the current plan. Valid values are: 1. `Monthly` 2. `Annually` + example: Monthly + x-pattern-message: 'must be one of the following: `Monthly` or `Annually`' + consumables: + type: array + description: Consumables in the current plan. + items: + $ref: '#/components/schemas/Consumable' + planType: + pattern: ^(Free|Trial|Paid)$ + type: string + description: Whether the account is `Free`/`Trial`/`Paid` + example: Free + x-pattern-message: 'must be one of the following: `Free`, `Trial` or `Paid`' + planName: + type: string + description: The plan name for the product being used. + discountAmount: + type: integer + description: The discount offered for the given contract period. + contractPeriod: + $ref: '#/components/schemas/ContractPeriod' + currentBillingPeriod: + $ref: '#/components/schemas/CurrentBillingPeriod' + credits: + type: integer + description: Numerical value of the amount of credits + format: int64 + example: 300 + baselines: + $ref: '#/components/schemas/Baselines' + pendingUpdateRequest: + type: boolean + description: True if there is a pending update request + prorationDetails: + $ref: '#/components/schemas/ProrationDetails' + description: Current plan of the account. + Consumable: + required: + - consumableId + - quantity + type: object + properties: + consumableId: + pattern: ^(Storage|Metrics|Continuous|Credits)$ + type: string + description: | + Unique identifier of the consumable. Valid values are: 1. `Storage` 2. `Metrics` 3. `Continuous` 4. `Credits` + example: Metrics + x-pattern-message: 'must be one of the following: `Storage`, `Metrics`, `Continuous`, `Credits`' + quantity: + $ref: '#/components/schemas/Quantity' + description: Details of consumable and its quantity. + ContractPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the contract. + format: date + endDate: + type: string + description: End date of the contract. + format: date + CurrentBillingPeriod: + required: + - endDate + - startDate + type: object + properties: + startDate: + type: string + description: Start date of the current billing period. + format: date + example: '2012-02-02T00:00:00.000Z' + endDate: + type: string + description: End date of the current billing period. + format: date + example: '2012-02-02T00:00:00.000Z' + Baselines: + type: object + properties: + continuousIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of continuous logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + continuousStorage: + maximum: 30 + minimum: 30 + type: integer + description: Number of days of continuous logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + frequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of frequent logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + frequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: Number of days of frequent logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + infrequentIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of infrequent logs ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + infrequentStorage: + maximum: 30 + minimum: 30 + type: integer + description: The amount of infrequent logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 30 + infrequentScan: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of infrequent logs scan to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + metrics: + maximum: 5000000 + minimum: 0 + type: integer + description: The amount of Metrics usage to allocate to the organization, in DPMs (Data Points per Minute). + format: int64 + example: 50000 + default: 0 + cseIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of CSE ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + cseStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of CSE storage to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + tracingIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of tracing data ingest to allocate to the organization, in GBs. + format: int64 + example: 50000 + default: 0 + flexIngest: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest to allocate to the organization, in GBs. + format: int64 + example: 5 + default: 0 + flexStorage: + maximum: 1000000 + minimum: 0 + type: integer + description: Number of days of flex logs storage to allocate to the organization, in Days. + format: int64 + example: 30 + default: 0 + flexScanRatio: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of flex logs ingest scan ratio. + format: int64 + example: 5 + default: 0 + aiInvestigation: + maximum: 1000000 + minimum: 0 + type: integer + description: The amount of AI Investigations needed to allocate to the organization. + format: int64 + example: 5 + default: 0 + socAiAgentDailyLimit: + maximum: 1000000 + minimum: 0 + type: integer + description: The daily investigation limit for SOC AI Agent. + format: int32 + example: 100 + default: 0 + description: Details of consumable and its quantity. + ProrationDetails: + required: + - proratedCost + - proratedCredits + - remainingDays + type: object + properties: + remainingDays: + type: integer + description: Remaining days in the billing cycle for which the new plan is prorated. + format: int32 + proratedCredits: + type: integer + description: Total prorated credits that get added to the bucket based on the remaining billing period. + format: int32 + proratedCost: + type: number + description: Cost of the total prorated credits. + format: double + description: Details about the prorated credits and prorated cost in case of immediate monthly to monthly cycle upgrades. + Quantity: + required: + - unit + - value + type: object + properties: + value: + type: integer + description: The value of the consumable in units. + format: int64 + example: 61425 + unit: + pattern: ^(GB|DPM|Credits|Days)$ + type: string + description: | + The unit of the consumable. Units are provided in: 1. `GB` 2. `DPM`(Data Points Per Minute) 3. `Credits` 4. `Days` + example: GB + x-pattern-message: 'must be one of the following: `GB`, `DPM`, `Credits`, `Days`' + description: Details of unit of consumption and its value. + AccountOwnerResponse: + type: object + properties: + accountOwner: + type: string + description: Email address of the account owner (the bare JSON string returned by the API, wrapped so it projects as a row). x-stackQL-resources: account_owner: id: sumologic.account.account_owner name: account_owner - title: Account_owner + title: Account Owner methods: - getAccountOwner: + get: operation: $ref: '#/paths/~1v1~1account~1accountOwner/get' response: mediaType: application/json openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/AccountOwnerResponse' + transform: + body: |- + {{- $wrapped := printf "{\"accountOwner\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/account_owner/methods/get' insert: [] update: [] delete: [] + replace: [] status: id: sumologic.account.status name: status title: Status methods: - getStatus: + get: operation: $ref: '#/paths/~1v1~1account~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/status/methods/getStatus' + - $ref: '#/components/x-stackQL-resources/status/methods/get' insert: [] update: [] delete: [] + replace: [] subdomain: id: sumologic.account.subdomain name: subdomain title: Subdomain methods: - getSubdomain: + get: operation: $ref: '#/paths/~1v1~1account~1subdomain/get' response: mediaType: application/json openAPIDocKey: '200' - updateSubdomain: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1account~1subdomain/put' response: mediaType: application/json openAPIDocKey: '200' - createSubdomain: + request: + mediaType: application/json + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1account~1subdomain/post' response: mediaType: application/json openAPIDocKey: '200' - deleteSubdomain: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1account~1subdomain/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + recover: + operation: + $ref: '#/paths/~1v1~1account~1subdomain~1recover/post' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/subdomain/methods/delete' + replace: [] + usage_reports: + id: sumologic.account.usage_reports + name: usage_reports + title: Usage Reports + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1account~1usage~1report/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1account~1usage~1report~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/subdomain/methods/getSubdomain' + - $ref: '#/components/x-stackQL-resources/usage_reports/methods/get' insert: - - $ref: '#/components/x-stackQL-resources/subdomain/methods/createSubdomain' + - $ref: '#/components/x-stackQL-resources/usage_reports/methods/create' update: [] - delete: - - $ref: '#/components/x-stackQL-resources/subdomain/methods/deleteSubdomain' - subdomain_recover: - id: sumologic.account.subdomain_recover - name: subdomain_recover - title: Subdomain_recover + delete: [] + replace: [] + usage_forecast: + id: sumologic.account.usage_forecast + name: usage_forecast + title: Usage Forecast methods: - recoverSubdomains: + get: operation: - $ref: '#/paths/~1v1~1account~1subdomain~1recover/post' + $ref: '#/paths/~1v1~1account~1usageForecast/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/usage_forecast/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + pending_update_request: + id: sumologic.account.pending_update_request + name: pending_update_request + title: Pending Update Request + methods: + get: + operation: + $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - account - description: account - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/apps.yaml b/providers/src/sumologic/v00.00.00000/services/apps.yaml index c40edc9e..f34bf692 100644 --- a/providers/src/sumologic/v00.00.00000/services/apps.yaml +++ b/providers/src/sumologic/v00.00.00000/services/apps.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Apps API + description: The Sumo Logic app catalog (v1 and v2) - browse, install, upgrade, uninstall apps and follow the asynchronous install jobs. + version: 1.0.0 paths: /v1/apps: get: @@ -108,6 +113,345 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/install: + post: + tags: + - appManagementV2 + summary: Start app install job + description: |- + Schedule an asynchronous job to install the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app install status API to get the status of the installation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncInstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to install. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to install. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppRequest' + required: true + responses: + '200': + description: App installation job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/install/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App install job status + description: Get the status of an asynchronous app install request for the given job identifier. + operationId: getAsyncInstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for installing the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app installation job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncInstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/uninstall: + post: + tags: + - appManagementV2 + summary: Start app uninstall job + description: |- + Schedule an asynchronous job to uninstall app with the given UUID. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app uninstall status API to get the status of the uninstallation request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncUninstallApp + parameters: + - name: uuid + in: path + description: UUID of the app to uninstall. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '200': + description: App uninstall job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/uninstall/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App uninstall job status + description: Get the status of an asynchronous app uninstall request for the given job identifier. + operationId: getAsyncUninstallAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for uninstalling the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app uninstall job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUninstallAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/upgrade: + post: + tags: + - appManagementV2 + summary: Start app upgrade job + description: |- + Schedule an asynchronous job to upgrade the app with the given UUID and version from the App Catalog. The app will be installed in 'Installed Apps' folder in the Content Library. + + _You get back an identifier of asynchronous job in response to this endpoint. You can then use the app upgrade status API to get the status of the upgrade request. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: asyncUpgradeApp + parameters: + - name: uuid + in: path + description: UUID of the app to upgrade. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + requestBody: + description: Information about the app to upgrade. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppRequest' + required: true + responses: + '200': + description: App upgrade job has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/upgrade/{jobId}/status: + get: + tags: + - appManagementV2 + summary: App upgrade job status + description: Get the status of an asynchronous app upgrade request for the given job identifier. + operationId: getAsyncUpgradeAppStatus + parameters: + - name: jobId + in: path + description: Identifier of the asynchronous job for upgrading the app. + required: true + schema: + type: string + example: C03E086C137F38B4 + responses: + '200': + description: Status of the app upgrade job. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncUpgradeAppJobStatus' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps: + get: + tags: + - appManagementV2 + summary: List apps + description: List all apps from the App Catalog. + operationId: listAppsV2 + parameters: + - name: name + in: query + description: Name of the app. + required: false + schema: + type: string + example: AWS%20CloudTrail + - name: author + in: query + description: Author of the app. + required: false + schema: + type: string + example: Sumo%20Logic + responses: + '200': + description: List of apps. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsV2Response' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/details: + get: + tags: + - appManagementV2 + summary: Get details of an app version. + description: |- + Get details about an app with the given UUID and version. The details include: + + 1. The base URL for all the resource for the app. + 2. The app manifest + operationId: getAppDetails + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + - name: version + in: query + description: Version of the app. The latest version is used if this is omitted or specified as "latest". + required: false + schema: + type: string + example: 1.0.0 + responses: + '200': + description: Information about the requested app. + content: + application/json: + schema: + $ref: '#/components/schemas/GetAppDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/apps/{uuid}/subscription: + get: + tags: + - appManagementV2 + summary: Get subscription status for the user + description: Get Subscription status for the user for a specific app. This will indicate whether the user has subscribed to the app or not. + operationId: getAppNotificationSubscriptionStatus + parameters: + - name: uuid + in: path + description: UUID of the app. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '200': + description: Information about user's subscription status for the app. + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - appManagementV2 + summary: Subscribe to an app upgrade notification + description: Subscribe to an app upgrade notification. This will allow the user to receive notifications for the app updates. + operationId: subscribeToAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to subscribe to. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '204': + description: Successfully subscribed to the app notification. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - appManagementV2 + summary: Unsubscribe from an app upgrade notification + description: Unsubscribe from an app. This will remove the user's subscription to notifications for the app. + operationId: unsubscribeFromAppNotification + parameters: + - name: uuid + in: path + description: UUID of the app to unsubscribe from. + required: true + schema: + type: string + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + responses: + '204': + description: App Notification unsubscription was successful. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListAppsResult: @@ -117,40 +461,272 @@ components: properties: apps: type: array - description: An array of Apps + description: An array of Apps + items: + $ref: '#/components/schemas/App' + description: List of all available apps from the App Catalog. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + App: + required: + - appDefinition + - appManifest + type: object + properties: + appDefinition: + $ref: '#/components/schemas/AppDefinition' + appManifest: + $ref: '#/components/schemas/AppManifest' + AppInstallRequest: + required: + - description + - destinationFolderId + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Preferred name of the app to be installed. This will be the name of the app in the selected installation folder. + example: Sumo Logic Configuration App + description: + maxLength: 255 + minLength: 1 + type: string + description: Preferred description of the app to be installed. This will be displayed as the app description in the selected installation folder. + example: Sumo Logic Configuration App to configure collectors and data sources + destinationFolderId: + type: string + description: Identifier of the folder in which the app will be installed in hexadecimal format. + example: 00000000000001C8 + dataSourceValues: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Dictionary of properties specifying log-source name and value. + example: + logsrc: _sourceCategory = api + description: JSON object containing name, description, destinationFolderId, and dataSourceType. + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + AsyncInstallAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to install. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Install app request. + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of the job. + example: C03E086C137F38B4 + AsyncInstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + instanceId: + type: string + description: Instance identifier of the installed app. This field is not set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was installed. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was installed. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the install app async job. + AsyncUninstallAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + errors: + type: array + description: More information about the failure if the status is `Failed`. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Status of an uninstall app job. + AsyncUpgradeAppRequest: + type: object + properties: + version: + type: string + description: | + Version of the app to upgrade. You can either specify a specific version of the app or use `latest` to install the latest version of the app. _If version is not specified, the latest version of the app will be installed_. + example: 1.0.1 + default: latest + parameters: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map of additional parameters for the app installation. + example: + db_system: redis + description: Upgrade app request. + AsyncUpgradeAppJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + example: Success + instanceId: + type: string + description: Instance identifier of the upgraded app. This field is not set yet but is a placeholder for future use. + example: 0000000001578BE8 + path: + type: string + description: Path of the folder in which the app was upgraded. + example: /Library/Installed Apps/AWS CloudTrail + folderId: + type: string + description: Identifier of the folder in which the app was upgraded. + example: 0000000001578BE8 + error: + $ref: '#/components/schemas/ErrorDescription' + description: Status of the upgrade app async job. + ListAppsV2Response: + required: + - apps + type: object + properties: + apps: + type: array + description: An array of apps. items: - $ref: '#/components/schemas/App' - description: List of all available apps from the App Catalog. - ErrorResponse: + $ref: '#/components/schemas/AppV2' + description: List of all apps from the apps + GetAppDetailsResponse: required: - - errors - - id + - baseUrl + - manifest + - uuid + - version type: object properties: - id: + uuid: type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. + description: UUID of the app. + format: uuid + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + version: + type: string + description: Version of the app. + example: 1.0.0 + baseUrl: + type: string + description: URL prefix for where the app is stored. + format: url + example: https://some_bucket.s3.amazonaws.com/path/to/app/version/ + manifest: + type: string + description: Content of the manifest YAML file, as Base64-encoded string. + format: byte + config: + type: string + description: Content of the config YAML file, as Base64-encoded string. + format: byte + readme: + type: string + description: Content of the README markdown file, as Base64-encoded string. + format: byte + files: + maxProperties: 100 + type: object + additionalProperties: + type: string + format: byte + description: Content of various files part of app package, as Base64-encoded string. example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - App: + config: ICAtIGNvbXBvbmVudFR5cGU6IHNjb3BlCiAgICBsYWJlbDog4oCYQXBhY2hlIEVycm9yIExvZyBT b3VyY2XigJkKICAgIHRmVmFyOiBlcnJMb2dTY29wZQogICAgCiAgLSBjb21wb25lbnRUeXBlOiBz Y29wZQogICAgbGFiZWw6IOKAmEFwYWNoZSBBY2Nlc3MgTG9nIFNvdXJjZeKAmQogICAgdGZWYXI6 IGFjY2Vzc0xvZ1Njb3BlCgogIC0gY29tcG9uZW50VHlwZTogY3VzdG9tCiAgICBkYXRhVHlwZTog U3RyaW5nCiAgICBsYWJlbDog4oCYQXBhY2hlIEVuZ2luZSBUeXBl4oCYCiAgICBoZWxwVGV4dDog 4oCYVGhlIGVuZ2luZSB0eXBlIG9mIHlvdXIgQXBhY2hlIEluc3RhbmNl4oCYCiAgICByZXF1aXJl ZDogRmFsc2UKICAgIGRlZmF1bHQ6IOKAmHYxLjDigJkKICAgIHRmVmFyOiBlbmdpbmVUeXBlCg== + readme: IyBPdmVydmlldwoKVGhlIEFwYWNoZSBhcHAgaXMgYSB1bmlmaWVkIGxvZ3MgYW5kIG1ldHJpY3Mg YXBwIHRoYXQgaGVscHMgeW91IG1vbml0b3IgdGhlIGF2YWlsYWJpbGl0eSwgcGVyZm9ybWFuY2Us IGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24gb2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFy bXMuICBQcmVjb25maWd1cmVkIGRhc2hib2FyZHMgYW5kIHNlYXJjaGVzIHByb3ZpZGUgaW5zaWdo dCBpbnRvIHZpc2l0b3IgbG9jYXRpb25zLCB2aXNpdG9yIGFjY2VzcyB0eXBlcywgdHJhZmZpYyBw YXR0ZXJucywgZXJyb3JzLCB3ZWIgc2VydmVyIG9wZXJhdGlvbnMsIHJlc291cmNlIHV0aWxpemF0 aW9uIGFuZCBhY2Nlc3MgZnJvbSBrbm93biBtYWxpY2lvdXMgc291cmNlcy4KCiMgU2V0dXAKVGhp cyBpcyB0aGUgc2VjdGlvbiBmb3IgQXBhY2hlIC0gT3BlblRlbGVtZXRyeSBjb2xsZWN0aW9uIHNl dHVwLgo= + manifest: CnNjaGVtYVZlcnNpb246ICIxLjAiCgpuYW1lOiBBcGFjaGUKCmRlc2NyaXB0aW9u OiA+LQogIFRoZSBBcGFjaGUgYXBwIGlzIGEgdW5pZmllZCBsb2dzIGFuZCBtZXRy aWNzIGFwcCB0aGF0IGhlbHBzIHlvdSBtb25pdG9yIHRoZSBhdmFpbGFiaWxpdHks IHBlcmZvcm1hbmNlLAogIGhlYWx0aCBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24g b2YgQXBhY2hlIHdlYiBzZXJ2ZXIgZmFybXMuICBQcmVjb25maWd1cmVkIGRhc2hi b2FyZHMgYW5kIHNlYXJjaGVzCiAgcHJvdmlkZSBpbnNpZ2h0IGludG8gdmlzaXRv ciBsb2NhdGlvbnMsIHZpc2l0b3IgYWNjZXNzIHR5cGVzLCB0cmFmZmljIHBhdHRl cm5zLCBlcnJvcnMsIHdlYiBzZXJ2ZXIKICBvcGVyYXRpb25zLCByZXNvdXJjZSB1 dGlsaXphdGlvbiBhbmQgYWNjZXNzIGZyb20ga25vd24gbWFsaWNpb3VzIHNvdXJj ZXMuCmF1dGhvcjogU3VtbyBMb2dpYwoKdmVyc2lvbjogMS4wLjAKCgo= + description: Information about an app. + SubscriptionStatusResponse: required: - - appDefinition - - appManifest + - status type: object properties: - appDefinition: - $ref: '#/components/schemas/AppDefinition' - appManifest: - $ref: '#/components/schemas/AppManifest' + status: + type: boolean + description: Show if the user has subscribed to the app or not. value is true, if the user has subscribed to the app + example: true + description: Subscription Status ErrorDescription: required: - code @@ -170,8 +746,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -252,6 +828,7 @@ components: description: App help page URL. example: https://help.sumologic.com/ helpDocIdMap: + maxProperties: 1000 type: object additionalProperties: type: string @@ -294,6 +871,94 @@ components: type: string description: App author website URL. example: https://www.sumologic.com + AppV2: + required: + - accountTypes + - attributes + - author + - beta + - description + - family + - icon + - installable + - latestVersion + - name + - showOnMarketplace + - uuid + type: object + properties: + uuid: + type: string + description: UUID of the app. + example: ceb7fac5-1127-4a04-a5b8-2e49190be3d5 + name: + type: string + description: Name of the app. + example: AWS CloudTrail + description: + type: string + description: Description of the app. + example: AWS CloudTrail app description + latestVersion: + type: string + description: Latest version of the app. + example: 1.1.0 + icon: + type: string + description: URL of the icon for the app. + example: https://some-bucket.s3.amazonaws.com/AWSCloudTrail.png + author: + type: string + description: Author of the app. + example: Sumo Logic + accountTypes: + type: array + description: Account types of which the app is available to. + example: + - All + items: + type: string + beta: + type: boolean + description: Whether the app is in beta. + example: false + installs: + type: integer + description: Number of times the app was installed. + format: int32 + example: 3452 + attributes: + maxProperties: 3 + type: object + additionalProperties: + type: array + items: + type: string + description: A map of attributes for this app. Attributes allow to group apps based on different criteria. + example: + category: + - Web Server + - IT Infrastructure + - Amazon Web Services + useCase: + - security + - observability + collection: + - OpenTelemetry + installable: + type: boolean + description: Whether the app is installable or not as not all apps are installable. + example: true + showOnMarketplace: + type: boolean + description: Whether the app should show up on sumologic.com/applications webpage. + example: true + modifiedAt: + type: string + description: The timestamp in UTC of the most recent modification of the app. + format: date-time + example: '2018-10-16T09:10:00.000Z' + description: An app object. ServiceManifestDataSourceParameter: required: - parameterId @@ -332,460 +997,249 @@ components: type: boolean description: Should the UI display? default: false - AppInstallRequest: - required: - - description - - destinationFolderId - - name - type: object - properties: - name: - maxLength: 128 - minLength: 1 - type: string - description: Preferred name of the app to be installed. This will be the name of the app in the selected installation folder. - example: Sumo Logic Configuration App - description: - maxLength: 255 - minLength: 1 - type: string - description: Preferred description of the app to be installed. This will be displayed as the app description in the selected installation folder. - example: Sumo Logic Configuration App to configure collectors and data sources - destinationFolderId: - type: string - description: Identifier of the folder in which the app will be installed in hexadecimal format. - example: 00000000000001C8 - dataSourceValues: - type: object - additionalProperties: - type: string - description: Dictionary of properties specifying log-source name and value. - example: - logsrc: _sourceCategory = api - description: JSON object containing name, description, destinationFolderId, and dataSourceType. - BeginAsyncJobResponse: - required: - - id - type: object - properties: - id: - type: string - description: Identifier to get the status of an asynchronous job. - example: C03E086C137F38B4 - AsyncJobStatus: - required: - - status - type: object - properties: - status: - type: string - description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). - statusMessage: - type: string - description: Additional status message generated if the status is not `Failed`. - error: - $ref: '#/components/schemas/ErrorDescription' - example: - status: Success - statusMessage: '' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: apps: id: sumologic.apps.apps name: apps title: Apps methods: - listApps: + list: operation: $ref: '#/paths/~1v1~1apps/get' response: mediaType: application/json openAPIDocKey: '200' - getApp: + objectKey: $.apps + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1apps~1{uuid}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel + install: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1apps~1{uuid}~1install/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/apps/methods/getApp' - - $ref: '#/components/x-stackQL-resources/apps/methods/listApps' + - $ref: '#/components/x-stackQL-resources/apps/methods/get' + - $ref: '#/components/x-stackQL-resources/apps/methods/list' insert: [] update: [] delete: [] - install: - id: sumologic.apps.install - name: install - title: Install + replace: [] + install_jobs: + id: sumologic.apps.install_jobs + name: install_jobs + title: Install Jobs methods: - installApp: + get: operation: - $ref: '#/paths/~1v1~1apps~1{uuid}~1install/post' + $ref: '#/paths/~1v1~1apps~1install~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/install_jobs/methods/get' insert: [] update: [] delete: [] - install_status: - id: sumologic.apps.install_status - name: install_status - title: Install_status + replace: [] + apps_v2: + id: sumologic.apps.apps_v2 + name: apps_v2 + title: Apps V2 methods: - getAsyncInstallStatus: + install: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1apps~1install~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1apps~1{uuid}~1install/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + uninstall: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1uninstall/post' + response: + mediaType: application/json + openAPIDocKey: '200' + upgrade: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1upgrade/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v2~1apps/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.apps + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1details/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/install_status/methods/getAsyncInstallStatus' + - $ref: '#/components/x-stackQL-resources/apps_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/apps_v2/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + install_jobs_v2: + id: sumologic.apps.install_jobs_v2 + name: install_jobs_v2 + title: Install Jobs V2 + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1install~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/install_jobs_v2/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + uninstall_jobs: + id: sumologic.apps.uninstall_jobs + name: uninstall_jobs + title: Uninstall Jobs + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1uninstall~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/uninstall_jobs/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + upgrade_jobs: + id: sumologic.apps.upgrade_jobs + name: upgrade_jobs + title: Upgrade Jobs + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1upgrade~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/upgrade_jobs/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + app_subscriptions: + id: sumologic.apps.app_subscriptions + name: app_subscriptions + title: App Subscriptions + methods: + get: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1subscription/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + subscribe: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1subscription/post' + response: + mediaType: application/json + openAPIDocKey: '204' + delete: + operation: + $ref: '#/paths/~1v2~1apps~1{uuid}~1subscription/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/app_subscriptions/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/app_subscriptions/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - apps - description: apps - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/archive.yaml b/providers/src/sumologic/v00.00.00000/services/archive.yaml index d6b8feed..b02d0c54 100644 --- a/providers/src/sumologic/v00.00.00000/services/archive.yaml +++ b/providers/src/sumologic/v00.00.00000/services/archive.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Archive API + description: Archive ingestion jobs that replay archived logs from an AWS S3 archive source. + version: 1.0.0 paths: /v1/archive/{sourceId}/jobs: get: @@ -162,80 +167,41 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ArchiveJob: - allOf: - - $ref: '#/components/schemas/CreateArchiveJobRequest' - - required: - - createdAt - - createdBy - - id - - status - - totalBytesIngested - - totalObjectsIngested - - totalObjectsScanned - properties: - id: - type: string - description: The unique identifier of the ingestion job. - example: 4e214571-cf27-4114-93e6-69a98c017f3 - totalObjectsScanned: - type: integer - description: The total number of objects scanned by the ingestion job. - format: int64 - example: 25 - totalObjectsIngested: - type: integer - description: The total number of objects ingested by the ingestion job. - format: int64 - example: 10 - totalBytesIngested: - type: integer - description: The total bytes ingested by the ingestion job. - format: int64 - example: 100 - status: - type: string - description: The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`, or `Succeeded`. - example: Scanning - createdAt: - type: string - description: The creation timestamp in UTC of the ingestion job. - format: date-time - example: '2018-10-16T09:10:00Z' - createdBy: - type: string - description: The identifier of the user who created the ingestion job. - example: 0000000006743FDD - ErrorDescription: + CreateArchiveJobRequest: required: - - code - - message + - endTime + - name + - startTime type: object properties: - code: + name: + maxLength: 128 + minLength: 1 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The name of the ingestion job. + startTime: type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: The starting timestamp of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + endTime: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreateArchiveJobRequest: + description: The ending timestamp of the ingestion job. + format: date-time + example: '2018-10-16T10:10:00.000Z' + ArchiveJob: + type: object required: - endTime - name - startTime - type: object + - createdAt + - createdBy + - id + - status + - totalBytesIngested + - totalObjectsIngested + - totalObjectsScanned properties: name: maxLength: 128 @@ -246,12 +212,44 @@ components: type: string description: The starting timestamp of the ingestion job. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' endTime: type: string description: The ending timestamp of the ingestion job. format: date-time - example: '2018-10-16T10:10:00Z' + example: '2018-10-16T10:10:00.000Z' + id: + type: string + description: The unique identifier of the ingestion job. + example: 4e214571-cf27-4114-93e6-69a98c017f3 + totalObjectsScanned: + type: integer + description: The total number of objects scanned by the ingestion job. + format: int64 + example: 25 + totalObjectsIngested: + type: integer + description: The total number of objects ingested by the ingestion job. + format: int64 + example: 10 + totalBytesIngested: + type: integer + description: The total bytes ingested by the ingestion job. + format: int64 + example: 100 + status: + type: string + description: The status of the ingestion job, either `Pending`,`Scanning`,`Ingesting`,`Failed`, or `Succeeded`. + example: Scanning + createdAt: + type: string + description: The creation timestamp in UTC of the ingestion job. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the ingestion job. + example: 0000000006743FDD ListArchiveJobsCount: required: - data @@ -262,6 +260,30 @@ components: description: List of archive sources with count of jobs having various statuses. items: $ref: '#/components/schemas/ArchiveJobsCount' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 ArchiveJobsCount: required: - failed @@ -301,397 +323,96 @@ components: description: The total number of archive jobs with succeeded status for the archive source. format: int64 example: 20 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: jobs: id: sumologic.archive.jobs name: jobs title: Jobs methods: - listArchiveJobsBySourceId: + list: operation: $ref: '#/paths/~1v1~1archive~1{sourceId}~1jobs/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createArchiveJob: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1archive~1{sourceId}~1jobs/post' response: mediaType: application/json openAPIDocKey: '200' - deleteArchiveJob: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1archive~1{sourceId}~1jobs~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/jobs/methods/listArchiveJobsBySourceId' + - $ref: '#/components/x-stackQL-resources/jobs/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/jobs/methods/createArchiveJob' + - $ref: '#/components/x-stackQL-resources/jobs/methods/create' update: [] delete: - - $ref: '#/components/x-stackQL-resources/jobs/methods/deleteArchiveJob' - jobs_count: - id: sumologic.archive.jobs_count - name: jobs_count - title: Jobs_count + - $ref: '#/components/x-stackQL-resources/jobs/methods/delete' + replace: [] + job_counts: + id: sumologic.archive.job_counts + name: job_counts + title: Job Counts methods: - listArchiveJobsCountPerSource: + list: operation: $ref: '#/paths/~1v1~1archive~1jobs~1count/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/jobs_count/methods/listArchiveJobsCountPerSource' + - $ref: '#/components/x-stackQL-resources/job_counts/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - archive - description: archive - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/budgets.yaml b/providers/src/sumologic/v00.00.00000/services/budgets.yaml new file mode 100644 index 00000000..f305867a --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/budgets.yaml @@ -0,0 +1,653 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Budgets API + description: Data volume and search cost budgets and their usage. + version: 1.0.0 +paths: + /v1/budgets: + get: + tags: + - budgetManagement + summary: Get budgets + description: Get budgets + operationId: getBudgets + parameters: + - name: limit + in: query + description: Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: Budgets assigned to the org. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - budgetManagement + summary: Creates a budget definition + description: Create a budget definition + operationId: createBudget + parameters: [] + requestBody: + description: Information about the new budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + '200': + description: The created budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}: + get: + tags: + - budgetManagement + summary: Get budget + description: Get budget + operationId: getBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '200': + description: The requested budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - budgetManagement + summary: Update budget + description: Update budget + operationId: updateBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + requestBody: + description: Updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetDefinition' + required: true + responses: + '200': + description: The updated budget. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudget' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - budgetManagement + summary: Delete budget + description: Delete budget + operationId: deleteBudget + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '204': + description: The budget was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/usage: + get: + tags: + - budgetManagement + summary: Get budget usages + description: Get budget usages + operationId: getBudgetUsages + parameters: + - name: limit + in: query + description: Limit the number of budget usages returned in the response. The number of budget usages returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: Scan budget usages. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsageList' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/budgets/{budgetId}/usage: + get: + tags: + - budgetManagement + summary: Get budget usage + description: Get budget usage + operationId: getBudgetUsage + parameters: + - name: budgetId + in: path + description: The id of the budget. + required: true + schema: + type: string + responses: + '200': + description: The requested budget usage. + content: + application/json: + schema: + $ref: '#/components/schemas/ScanBudgetUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ScanBudgetList: + required: + - data + type: object + properties: + data: + type: array + description: List of scan budgets. + items: + $ref: '#/components/schemas/ScanBudget' + next: + type: string + description: Next continuation token. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ScanBudgetDefinition: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + ScanBudget: + required: + - action + - applicableOn + - budgetType + - capacity + - groupBy + - name + - scope + - unit + - window + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - orgId + - resetDateOfMonth + - resetDayOfWeek + - resetTime + - resetTimeZone + type: object + properties: + name: + type: string + description: Name of the budget. + capacity: + type: integer + description: Capacity of the budget. + format: int64 + unit: + pattern: ^(GB|MB|TB|KB)$ + type: string + description: Unit of the budget. + example: GB + budgetType: + $ref: '#/components/schemas/BudgetType' + scope: + $ref: '#/components/schemas/ScanBudgetScope' + window: + pattern: ^(Query|Daily|Weekly|Monthly)$ + type: string + description: Window of the budget. Use Daily/Weekly/Monthly for creating a time based budget (beta) + example: Query + applicableOn: + pattern: ^(PerEntity|Sum)$ + type: string + description: Grouping of the budget. + example: PerEntity + groupBy: + pattern: ^(User)$ + type: string + description: Grouping Entity of the budget. + example: User + action: + pattern: ^(StopScan|StopForeGroundScan|Warn)$ + type: string + description: Action to be taken if the budget is breached + example: Warn + callerModules: + type: array + description: Caller modules this budget applies to. Empty list means budget applies to all callers. + example: + - api + - mcp + items: + type: string + status: + pattern: ^(active|inactive)$ + type: string + description: Signifies the state of the budget. (Active/Inactive) + example: active + id: + type: string + description: Id of the budget. + orgId: + type: string + description: Org Id of the org for the budget. + resetTime: + maxLength: 5 + minLength: 5 + type: string + description: Reset time of the time based scan budget in HH:MM format + example: '23:30' + default: '00:00' + resetTimeZone: + type: string + description: Time zone of the reset time for the time based scan budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: Etc/UTC + resetDayOfWeek: + pattern: ^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$ + type: string + description: The day of the week when the budget resets, applicable for time based budgets with a Weekly window. Must be a valid day of the week. + default: MONDAY + resetDateOfMonth: + maximum: 28 + minimum: 1 + type: integer + description: The date of the month when the budget resets, applicable for time based budgets with a Monthly window. Must be a valid day of the month (1-28). + format: int32 + default: 1 + createdAt: + type: string + description: Date & time when budget was created. + format: date-time + createdBy: + type: string + description: Id of the user who created the budget. + modifiedAt: + type: string + description: Date & time when budget was last modified. + format: date-time + modifiedBy: + type: string + description: Id of the user who last modified the budget. + ScanBudgetUsageList: + required: + - data + type: object + properties: + data: + type: array + description: List of budget usages + items: + $ref: '#/components/schemas/ScanBudgetUsage' + next: + type: string + description: Next continuation token. + ScanBudgetUsage: + required: + - budgetId + - usage + - usagePercentage + type: object + properties: + budgetId: + type: string + description: Budget id. + usage: + type: integer + description: Budget usage (in bytes). + format: int64 + usagePercentage: + type: integer + description: Budget usage percentage. + format: int64 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BudgetType: + pattern: ^(ScanBudget)$ + type: string + description: Type of the budget. + example: ScanBudget + ScanBudgetScope: + required: + - excludedRoles + - excludedUsers + - includedRoles + - includedUsers + type: object + properties: + includedUsers: + type: array + description: List of userIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedUsers: + type: array + description: List of userIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + includedRoles: + type: array + description: List of roleIds included in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + excludedRoles: + type: array + description: List of roleIds excluded in the budget. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + x-stackQL-resources: + budgets: + id: sumologic.budgets.budgets + name: budgets + title: Budgets + methods: + list: + operation: + $ref: '#/paths/~1v1~1budgets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1budgets/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/budgets/methods/get' + - $ref: '#/components/x-stackQL-resources/budgets/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/budgets/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/budgets/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/budgets/methods/delete' + replace: [] + usages: + id: sumologic.budgets.usages + name: usages + title: Usages + methods: + list: + operation: + $ref: '#/paths/~1v1~1budgets~1usage/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1budgets~1{budgetId}~1usage/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/usages/methods/get' + - $ref: '#/components/x-stackQL-resources/usages/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/collectors.yaml b/providers/src/sumologic/v00.00.00000/services/collectors.yaml index 38fa2583..90fda22d 100644 --- a/providers/src/sumologic/v00.00.00000/services/collectors.yaml +++ b/providers/src/sumologic/v00.00.00000/services/collectors.yaml @@ -1,650 +1,1024 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Collectors API + description: Collectors, Sources and Collector upgrades (the Collector Management API). + version: 1.0.0 +tags: + - name: collectorManagement + description: Collector Management API - Collectors, Sources and Collector upgrades. +paths: + /v1/collectors: + get: + tags: + - collectorManagement + operationId: listCollectors + summary: List Collectors + description: Get a list of Collectors with an optional limit and offset. + parameters: + - name: filter + in: query + description: 'Filter the Collectors returned using one of the available filter types: installed, hosted, dead, or alive.' + schema: + type: string + enum: + - installed + - hosted + - dead + - alive + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + post: + tags: + - collectorManagement + operationId: createCollector + summary: Create Hosted Collector + description: Create a Hosted Collector. This method can only be used to create Hosted Collectors; an Installed Collector is created by installing the collector software on a host. + requestBody: + description: Definition of the new Hosted Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/offline: + get: + tags: + - collectorManagement + operationId: listOfflineCollectors + summary: List offline Collectors + description: Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 1000). + schema: + type: integer + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + delete: + tags: + - collectorManagement + operationId: deleteOfflineCollectors + summary: Delete offline Collectors + description: Delete Installed Collectors last seen alive before a specified number of days. The delete task is initiated asynchronously. + parameters: + - name: aliveBeforeDays + in: query + description: Minimum number of days the Collectors have been offline (default 100, minimum 1). + schema: + type: integer + responses: + '200': + description: The delete task has been initiated. + /v1/collectors/overview: + get: + tags: + - collectorManagement + operationId: getCollectorsOverview + summary: Collectors overview + description: Summary counts of Installed and Hosted Collectors and Sources, offline Collectors, errors and warnings. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsOverview' + /v1/collectors/{id}: + get: + tags: + - collectorManagement + operationId: getCollector + summary: Get Collector by ID + description: Get the Collector with the specified identifier. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + put: + tags: + - collectorManagement + operationId: updateCollector + summary: Update Collector + description: Update a Collector. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Collector; the request body is the full Collector object wrapped in collector. + parameters: + - $ref: '#/components/parameters/collectorId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Collector, wrapped in a collector object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorDefinition' + responses: + '200': + description: The Collector was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + delete: + tags: + - collectorManagement + operationId: deleteCollector + summary: Delete Collector + description: Delete the Collector with the specified identifier. + parameters: + - $ref: '#/components/parameters/collectorId' + responses: + '200': + description: The Collector was deleted successfully. + /v1/collectors/name/{name}: + get: + tags: + - collectorManagement + operationId: getCollectorByName + summary: Get Collector by name + description: Get the Collector with the specified name. + parameters: + - name: name + in: path + description: Name of the Collector. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetCollector' + /v1/collectors/{collectorId}/sources: + get: + tags: + - collectorManagement + operationId: listSources + summary: List Sources + description: Get information about all Sources of a specified Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/SourcesList' + post: + tags: + - collectorManagement + operationId: createSource + summary: Create Source + description: Create a new Source on a Collector. The request body is the Source definition wrapped in a source object; see the vendor documentation (Use JSON to Configure Sources) for the fields required by each sourceType. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + requestBody: + description: Definition of the new Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + /v1/collectors/{collectorId}/sources/{sourceId}: + get: + tags: + - collectorManagement + operationId: getSource + summary: Get Source + description: Get information about a specified Source of a Collector. The response carries an ETag header, which must be supplied as If-Match on an update. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/download' + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + put: + tags: + - collectorManagement + operationId: updateSource + summary: Update Source + description: Update a Source. The Collector Management API requires the If-Match header to carry the ETag returned by a previous GET of the same Source; the request body is the full Source object wrapped in source. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + - $ref: '#/components/parameters/ifMatch' + requestBody: + description: The updated Source, wrapped in a source object. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SourceDefinition' + responses: + '200': + description: The Source was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSource' + delete: + tags: + - collectorManagement + operationId: deleteSource + summary: Delete Source + description: Delete the specified Source of a Collector. + parameters: + - $ref: '#/components/parameters/parentCollectorId' + - $ref: '#/components/parameters/sourceId' + responses: + '200': + description: The Source was deleted successfully. + /v1/collectors/upgrades/targets: + get: + tags: + - collectorManagement + operationId: listUpgradeTargets + summary: List Collector upgrade targets + description: Get the Installed Collector versions available as upgrade (or downgrade) targets. + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTargetsList' + /v1/collectors/upgrades/collectors: + get: + tags: + - collectorManagement + operationId: listUpgradableCollectors + summary: List upgradable Collectors + description: Get the Installed Collectors that can be upgraded (or downgraded) to the specified version. + parameters: + - name: toVersion + in: query + description: Target Collector version. Defaults to the latest version. + schema: + type: string + - name: offset + in: query + description: Offset into the list of Collectors (default 0). + schema: + type: integer + - name: limit + in: query + description: Maximum number of Collectors to return (default 50). + schema: + type: integer + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CollectorsList' + /v1/collectors/upgrades: + post: + tags: + - collectorManagement + operationId: createUpgrade + summary: Upgrade a Collector + description: Start an upgrade (or downgrade) task for an Installed Collector. Poll the returned task with the upgrade status method. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeRequest' + responses: + '202': + description: The upgrade task has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/UpgradeTask' + /v1/collectors/upgrades/{upgradeTaskId}: + get: + tags: + - collectorManagement + operationId: getUpgradeStatus + summary: Get Collector upgrade status + description: Get the status of a Collector upgrade task. + parameters: + - name: upgradeTaskId + in: path + description: Identifier of the upgrade task. + required: true + schema: + type: string + responses: + '200': + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GetUpgrade' components: + parameters: + collectorId: + name: id + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + parentCollectorId: + name: collectorId + in: path + description: Unique identifier of the Collector. + required: true + schema: + type: string + sourceId: + name: sourceId + in: path + description: Unique identifier of the Source. + required: true + schema: + type: string + ifMatch: + name: If-Match + in: header + description: The ETag value returned in the response headers of a previous GET of this object. The Collector Management API requires it on updates. + required: false + schema: + type: string + download: + name: download + in: query + description: When true, the response is the JSON configuration of the Source(s), suitable for registering a new Collector or creating a new Source. + required: false + schema: + type: boolean schemas: - CollectorsList: - description: List of Collector objects. - properties: - collectors: - items: - $ref: '#/components/schemas/Collector' - type: array - type: object - GetCollector: - description: Collector object. - properties: - collector: - $ref: '#/components/schemas/Collector' - type: object Collector: + type: object description: Collector object. properties: - alive: - type: boolean - description: When a Collector is running it sends Sumo a heartbeat message every 15 seconds. If no heartbeat message is received after 30 minutes this becomes false. - category: - type: string - description: The Category of the Collector, used as metadata when searching data. - collectorType: - type: string - description: 'The Collector type: Installable or Hosted' - collectorVersion: - type: string - description: Version of the Collector software installed. - fields: - type: object - description: JSON map of key-value fields (metadata) to apply to the Collector. id: - type: integer - description: Identifier - lastSeenAlive: type: integer - description: The last time the Sumo Logic service received an active heartbeat from the Collector, specified as milliseconds since epoch. - links: - type: array - items: - properties: - href: - type: string - rel: - type: string - type: object + description: Unique identifier of the Collector. name: type: string description: Name of the Collector. It must be unique on your account. description: type: string description: Description of the Collector. - timeZone: + category: type: string - description: Time zone of the Collector. For a list of possible values, refer to the "TZ" column in this Wikipedia article. - cutoffRelativeTime: + description: The category of the Collector, used as metadata when searching data. + collectorType: type: string - description: 'Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time. Example: use "-1h", "-1d", or "-1w" to collect data thats less than one hour, one day, or one week old, respectively.' - cutoffTimestamp: + description: 'The Collector type: Installable or Hosted.' + collectorVersion: + type: string + description: Version of the Collector software installed. + alive: + type: boolean + description: When a Collector is running it sends a heartbeat every 15 seconds. If no heartbeat is received for 30 minutes this becomes false. + lastSeenAlive: type: integer - description: 0 (collects all data)|Only collect data from files with a modified date more recent than this timestamp, specified as milliseconds since epoch + format: int64 + description: The last time the Sumo Logic service received an active heartbeat from the Collector, in milliseconds since epoch. ephemeral: type: boolean - description: When true, the collector will be deleted after 12 hours of inactivity. For more information, see Setting a Collector as Ephemeral. + description: When true, the Collector is deleted after 12 hours of inactivity. hostName: type: string - description: Host name of the Collector. The hostname can be a maximum of 128 characters. + description: Host name of the Collector. + timeZone: + type: string + description: Time zone of the Collector (TZ database name). sourceSyncMode: type: string - description: For installed Collectors, whether the Collector is using local source configuration management (using a JSON file), or cloud management (using the UI) + description: For Installed Collectors, whether Sources are managed locally from a JSON file (Json) or from the cloud (UI). + cutoffTimestamp: + type: integer + format: int64 + description: Only collect data from files with a modified date more recent than this timestamp, in milliseconds since epoch (0 collects all data). + cutoffRelativeTime: + type: string + description: Can be specified instead of cutoffTimestamp to provide a relative offset with respect to the current time, for example -1h, -1d or -1w. targetCpu: type: integer - description: When CPU utilization exceeds this threshold, the Collector will slow down its rate of ingestion to lower its CPU utilization. + description: When CPU utilization exceeds this threshold the Collector slows its rate of ingestion. osName: type: string - description: Name of OS that Collector is installed on. [Installed Collectors only] + description: Name of the OS the Collector is installed on (Installed Collectors only). osVersion: type: string - description: Version of the OS that Collector is installed on. [Installed Collectors only] + description: Version of the OS the Collector is installed on (Installed Collectors only). osArch: type: string - description: Architecture of the OS that Collector is installed on. [Installed Collectors only] + description: Architecture of the OS the Collector is installed on (Installed Collectors only). osTime: type: integer - description: Time that the Collector has been running, in milliseconds. [Installed Collectors only] + format: int64 + description: Time that the Collector has been running, in milliseconds (Installed Collectors only). + fields: + type: string + description: JSON map of key-value fields (metadata) applied to the Collector. (opaque JSON object) + links: + type: array + description: Related links. + items: + type: object + properties: + rel: + type: string + href: + type: string + CollectorsList: + type: object + description: List of Collector objects. + properties: + collectors: + type: array + items: + $ref: '#/components/schemas/Collector' + GetCollector: type: object - HostedCollectorDefinition: - description: Hosted Collector object creation fields. + description: A single Collector, wrapped in a collector object. properties: collector: - type: object - required: - - name - properties: - category: - type: string - description: The Category of the Collector, used as metadata when searching data. - collectorType: - type: string - description: 'The Collector type: Installable or Hosted' - default: Hosted - fields: - type: object - description: JSON map of key-value fields (metadata) to apply to the Collector. - name: - type: string - description: Name of the Collector. It must be unique on your account. - description: - type: string - description: Description of the Collector. + $ref: '#/components/schemas/Collector' + CollectorDefinition: type: object - SourcesList: - description: List of Sources for a Collector. + description: Collector definition for create and update requests, wrapped in a collector object. + required: + - collector properties: - sources: - items: - $ref: '#/components/schemas/Source' - type: array + collector: + $ref: '#/components/schemas/Collector' + CollectorsOverview: type: object + description: Summary counts of Collectors and Sources. + properties: + installedCollectorsCount: + type: integer + installedSourcesCount: + type: integer + hostedCollectorsCount: + type: integer + hostedSourcesCount: + type: integer + offlineCollectorsCount: + type: integer + errors: + type: integer + warnings: + type: integer Source: - description: Source object. + type: object + description: Source object. The set of properties depends on the sourceType; the properties listed here are the common ones. properties: id: type: integer - description: Source identifer. + description: Unique identifier of the Source. name: type: string - description: Source name. + description: Name of the Source. + description: + type: string + description: Description of the Source. category: type: string - description: Source category. + description: Source category (the _sourceCategory metadata field). hostName: type: string - description: Source hostName. + description: Host name assigned to data from this Source (the _sourceHost metadata field). + sourceType: + type: string + description: Type of the Source, for example HTTP, LocalFile, RemoteFileV2, Syslog, SystemStats, Polling, Script, and the cloud-to-cloud types. + contentType: + type: string + description: Content type of the data collected (used by some cloud Source types). + alive: + type: boolean + description: Whether the Source is alive. + url: + type: string + description: Unique URL of an HTTP Source endpoint. + encoding: + type: string + description: Character encoding of the data (default UTF-8). + timeZone: + type: string + description: Time zone applied to messages when forceTimeZone is true or the message has no time zone. + forceTimeZone: + type: boolean + description: When true, the timeZone is applied to all messages. automaticDateParsing: type: boolean - description: Source automaticDateParsing. + description: Whether timestamps are parsed automatically. multilineProcessingEnabled: type: boolean - description: Source multilineProcessingEnabled. + description: Whether multiline message processing is enabled. useAutolineMatching: type: boolean - description: Source useAutolineMatching. - alive: - type: boolean - description: Source alive. - forceTimeZone: - type: boolean - description: Source forceTimeZone. + description: Whether message boundaries are inferred automatically. + manualPrefixRegexp: + type: string + description: Regular expression that marks the start of a message when useAutolineMatching is false. messagePerRequest: type: boolean - description: Source messagePerRequest. - sourceType: - type: string - description: Source sourceType. - encoding: - type: string - description: Source encoding. - hashAlgorithm: - type: string - description: Source hashAlgorithm. - url: - type: string - description: Source url. + description: For HTTP Sources, whether each request is a single message. + defaultDateFormats: + type: array + description: Default date formats used to parse timestamps. + items: + type: string + description: (opaque JSON object) pathExpression: type: string - description: Source pathExpression. + description: Path expression of the files to collect (file Sources). denylist: type: array - description: Source denylist. + description: Path expressions to exclude from collection (file Sources). + items: + type: string filters: type: array - description: Source filters. + description: Processing rules (Exclude, Include, Hash, Mask, Forward) applied to the Source. items: + type: object properties: filterType: type: string name: type: string regexp: - type: string - type: object + type: string + mask: + type: string fields: - type: object - description: Source fields. + type: string + description: JSON map of key-value fields (metadata) applied to the Source. (opaque JSON object) cutoffTimestamp: type: integer - description: Source cutoffTimestamp. + format: int64 + description: Only collect data more recent than this timestamp, in milliseconds since epoch. + cutoffRelativeTime: + type: string + description: Relative offset instead of cutoffTimestamp, for example -1h, -1d or -1w. + hashAlgorithm: + type: string + description: Hash algorithm used by Hash processing rules. + interval: + type: integer + description: Collection interval in milliseconds (metrics and script Sources). + metrics: + type: array + description: Metrics to collect (SystemStats Sources). + items: + type: string + thirdPartyRef: + type: string + description: Cloud-to-cloud Source configuration. (opaque JSON object) + status: + type: string + description: Source status (cloud Sources). (opaque JSON object) + SourcesList: type: object + description: List of Sources for a Collector. + properties: + sources: + type: array + items: + $ref: '#/components/schemas/Source' GetSource: - description: Source object. + type: object + description: A single Source, wrapped in a source object. + properties: + source: + $ref: '#/components/schemas/Source' + SourceDefinition: + type: object + description: Source definition for create and update requests, wrapped in a source object. + required: + - source + properties: + source: + $ref: '#/components/schemas/Source' + UpgradeTarget: + type: object + properties: + version: + type: string + description: Collector version. + latest: + type: boolean + description: Whether this is the latest version. + UpgradeTargetsList: + type: object + properties: + targets: + type: array + items: + $ref: '#/components/schemas/UpgradeTarget' + UpgradeRequest: + type: object + required: + - collectorId properties: - source: - $ref: '#/components/schemas/Source' + collectorId: + type: integer + description: Identifier of the Installed Collector to upgrade. + toVersion: + type: string + description: Target version. Defaults to the latest version. + UpgradeTask: type: object - SourceDefinition: - description: Source object to create. properties: - source: + id: + type: string + description: Identifier of the upgrade task. + link: type: object + description: Link to the upgrade task status. properties: - name: + rel: type: string - description: Source name. - category: + href: type: string - description: Source category. - automaticDateParsing: - type: boolean - description: Source automaticDateParsing. - multilineProcessingEnabled: - type: boolean - description: Source multilineProcessingEnabled. - useAutolineMatching: - type: boolean - description: Source useAutolineMatching. - forceTimeZone: - type: boolean - description: Source forceTimeZone. - messagePerRequest: - type: boolean - description: Source messagePerRequest. - sourceType: - type: string - description: Source sourceType. - encoding: - type: string - description: Source encoding. - filters: - type: array - description: Source filters. - items: - properties: - filterType: - type: string - name: - type: string - regexp: - type: string - type: object - fields: - type: object - description: Source fields. - cutoffTimestamp: - type: integer - description: Source cutoffTimestamp. + Upgrade: + type: object + properties: + id: + type: string + description: Identifier of the upgrade task. + collectorId: + type: integer + description: Identifier of the Collector being upgraded. + toVersion: + type: string + description: Target version. + requestTime: + type: integer + format: int64 + description: Time the upgrade was requested, in milliseconds since epoch. + status: + type: integer + description: 'Upgrade status: 0 not started, 1 running, 2 succeeded, 3 failed, 6 progressing.' + message: + type: string + description: Status message. + GetUpgrade: type: object + properties: + upgrade: + $ref: '#/components/schemas/Upgrade' x-stackQL-resources: collectors: + id: sumologic.collectors.collectors name: collectors + title: Collectors methods: - create_collector: + list: operation: - $ref: '#/paths/~1v1~1collectors/post' + $ref: '#/paths/~1v1~1collectors/get' response: mediaType: application/json openAPIDocKey: '200' - list_collectors: + objectKey: $.collectors + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1collectors/get' + $ref: '#/paths/~1v1~1collectors/post' response: mediaType: application/json - objectKey: '$.collectors' openAPIDocKey: '200' - get_collector_by_id: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1collectors~1{id}/get' response: mediaType: application/json - objectKey: '$.collector' openAPIDocKey: '200' - delete_collector: + objectKey: $.collector + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1collectors~1{id}/delete' + $ref: '#/paths/~1v1~1collectors~1{id}/put' response: mediaType: application/json - openAPIDocKey: '200' - update_collector: + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: operation: - $ref: '#/paths/~1v1~1collectors~1{id}/put' + $ref: '#/paths/~1v1~1collectors~1{id}/delete' response: mediaType: application/json - objectKey: '$.collector' - openAPIDocKey: '200' - get_collector_by_name: + openAPIDocKey: '200' + request: + nativeCasing: camel + get_by_name: operation: $ref: '#/paths/~1v1~1collectors~1name~1{name}/get' response: mediaType: application/json - objectKey: '$.collector' - openAPIDocKey: '200' - id: sumologic.collectors.collectors + openAPIDocKey: '200' + objectKey: $.collector + request: + nativeCasing: camel sqlVerbs: - delete: - - $ref: '#/components/x-stackQL-resources/collectors/methods/delete_collector' - insert: - - $ref: '#/components/x-stackQL-resources/collectors/methods/create_collector' select: - # - $ref: '#/components/x-stackQL-resources/collectors/methods/get_collector_by_id' - - $ref: '#/components/x-stackQL-resources/collectors/methods/get_collector_by_name' - - $ref: '#/components/x-stackQL-resources/collectors/methods/list_collectors' - update: [] - title: collectors + - $ref: '#/components/x-stackQL-resources/collectors/methods/get' + - $ref: '#/components/x-stackQL-resources/collectors/methods/get_by_name' + - $ref: '#/components/x-stackQL-resources/collectors/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/collectors/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/collectors/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/collectors/methods/delete' + replace: [] offline_collectors: + id: sumologic.collectors.offline_collectors name: offline_collectors + title: Offline Collectors methods: - list_offline_collectors: + list: operation: $ref: '#/paths/~1v1~1collectors~1offline/get' response: mediaType: application/json - objectKey: '$.collectors' openAPIDocKey: '200' - id: sumologic.collectors.offline_collectors + objectKey: $.collectors + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1collectors~1offline/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - delete: [] + select: + - $ref: '#/components/x-stackQL-resources/offline_collectors/methods/list' insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/offline_collectors/methods/delete' + replace: [] + overview: + id: sumologic.collectors.overview + name: overview + title: Overview + methods: + get: + operation: + $ref: '#/paths/~1v1~1collectors~1overview/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/offline_collectors/methods/list_offline_collectors' + - $ref: '#/components/x-stackQL-resources/overview/methods/get' + insert: [] update: [] - title: offline_collectors - sources: + delete: [] + replace: [] + sources: + id: sumologic.collectors.sources name: sources + title: Sources methods: - list_sources: + list: operation: $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources/get' response: mediaType: application/json - objectKey: '$.sources' openAPIDocKey: '200' - get_source_by_id: + objectKey: $.sources + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/get' + $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources/post' response: mediaType: application/json - objectKey: '$.source' openAPIDocKey: '200' - create_source: + request: + mediaType: application/json + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources/post' + $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/get' response: mediaType: application/json - objectKey: '$.source' openAPIDocKey: '200' - update_source: + objectKey: $.source + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/put' response: mediaType: application/json - objectKey: '$.source' openAPIDocKey: '200' - delete_source: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1collectors~1{collectorId}~1sources~1{sourceId}/delete' response: mediaType: application/json - objectKey: '$.source' - openAPIDocKey: '200' - id: sumologic.collectors.sources - sqlVerbs: - delete: - - $ref: '#/components/x-stackQL-resources/sources/methods/delete_source' + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sources/methods/get' + - $ref: '#/components/x-stackQL-resources/sources/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/sources/methods/create_source' + - $ref: '#/components/x-stackQL-resources/sources/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/sources/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/sources/methods/delete' + replace: [] + upgrade_targets: + id: sumologic.collectors.upgrade_targets + name: upgrade_targets + title: Upgrade Targets + methods: + list: + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades~1targets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.targets + request: + nativeCasing: camel + sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/sources/methods/get_source_by_id' - - $ref: '#/components/x-stackQL-resources/sources/methods/list_sources' + - $ref: '#/components/x-stackQL-resources/upgrade_targets/methods/list' + insert: [] update: [] - title: sources -externalDocs: - description: Find more info here - url: https://help.sumologic.com/docs/api/collectors/ -info: - title: Sumologic Collector Managament API - description: OpenAPI 3 specification for Sumologic Collector Managament API with StackQL extensions - contact: - name: Jeffrey Aven - url: https://github.com/stackql/stackql - email: javen@stackql.io - version: 'v0.1.1' -openapi: 3.0.1 -paths: - /v1/collectors/{id}: - get: - description: Get the Collector with the specified Identifier. - parameters: - - name: id - in: path - description: Unique identifier of the Collector. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - description: Success - put: - description: Update a Collector - parameters: - - name: id - in: path - description: Id of the collector to update. - required: true - schema: - type: string - requestBody: - description: Information to update about the collector. - content: - application/json: - schema: - $ref: '#/components/schemas/Collector' - required: true - responses: - '200': - description: The collector was successfully modified. - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - delete: - description: Delete Collector by ID - parameters: - - name: id - in: path - description: Identifier of the collector to delete. - required: true - schema: - type: string - responses: - '200': - description: Collector was deleted successfully. - /v1/collectors/name/{name}: - get: - description: Get the Collector with the specified name. - parameters: - - name: name - in: path - description: Name of the Collector. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - description: Success - /v1/collectors: - post: - description: Create Hosted Collector. This method can only be used to create Hosted Collectors. You must install a Collector manually to create an Installed Collector. - parameters: [] - requestBody: - description: Information about the new connection. - content: - application/json: - schema: - $ref: '#/components/schemas/HostedCollectorDefinition' - required: true - responses: - '200': - description: The connection has been created. - content: - application/json: - schema: - $ref: '#/components/schemas/GetCollector' - get: - description: Get a list of Collectors with an optional limit and offset. - parameters: - - description: 'Filter the Collectors returned using one of the available filter types:installed, hosted, dead, or alive.' - in: query - name: filter - schema: - type: string - - description: Max number of Collectors to return. - in: query - name: limit - schema: - type: integer - - description: Offset into the list of Collectors. - in: query - name: offset - schema: - type: integer - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CollectorsList' - description: Success - /v1/collectors/offline: - get: - description: Get a list of Installed Collectors last seen alive before a specified number of days with an optional limit and offset. - parameters: - - description: 'Filter the Collectors returned using one of the available filter types:installed, hosted, dead, or alive.' - in: query - name: aliveBeforeDays - schema: - type: integer - - description: Minimum number of days the Collectors have been offline, must be at least 1 day. - in: query - name: limit - schema: - type: integer - - description: 'Offset into the list of Collectors.' - in: query - name: offset - schema: - type: integer - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/CollectorsList' - description: Success - /v1/collectors/{collectorId}/sources: - post: - description: Creates a new Source for a Collector. See Use JSON to Configure Sources for required fields for the request JSON file. - parameters: - - name: collectorId - in: path - description: Unique identifier of the Collector. - required: true - schema: - type: string - requestBody: - description: Information about the new source. - content: - application/json: - schema: - $ref: '#/components/schemas/SourceDefinition' - required: true - responses: - '200': - description: The source has been created. - content: - application/json: - schema: - $ref: '#/components/schemas/GetSource' - get: - description: Gets information about all Sources for a specified Collector. - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/SourcesList' - description: Success - /v1/collectors/{collectorId}/sources/{sourceId}: - get: - description: Gets information about a specified Collector and Source. - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - - name: sourceId - in: path - description: Unique Source identifier. - required: true - schema: - type: string - responses: - '200': - content: - application/json: - schema: - $ref: '#/components/schemas/GetSource' - description: Success - put: - description: Update a source - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - - name: sourceId - in: path - description: Unique Source identifier. - required: true - schema: - type: string - requestBody: - description: Information to update about the source. - content: - application/json: - schema: - $ref: '#/components/schemas/Source' - required: true - responses: - '200': - description: The source was successfully modified. - content: - application/json: - schema: - $ref: '#/components/schemas/GetSource' - delete: - description: Delete Source by ID - parameters: - - name: collectorId - in: path - description: Unique Collector identifier. - required: true - schema: - type: string - - name: sourceId - in: path - description: Unique Source identifier. - required: true - schema: - type: string - responses: - '200': - description: Source was deleted successfully. + delete: [] + replace: [] + upgradable_collectors: + id: sumologic.collectors.upgradable_collectors + name: upgradable_collectors + title: Upgradable Collectors + methods: + list: + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades~1collectors/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collectors + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/upgradable_collectors/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + upgrades: + id: sumologic.collectors.upgrades + name: upgrades + title: Upgrades + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1collectors~1upgrades~1{upgradeTaskId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.upgrade + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/upgrades/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/upgrades/methods/create' + update: [] + delete: [] + replace: [] servers: - - url: 'https://api.{region}.sumologic.com/api' + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint \ No newline at end of file + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/connections.yaml b/providers/src/sumologic/v00.00.00000/services/connections.yaml index b5d9351e..46c6cd95 100644 --- a/providers/src/sumologic/v00.00.00000/services/connections.yaml +++ b/providers/src/sumologic/v00.00.00000/services/connections.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Connections API + description: Webhook, ServiceNow, PagerDuty and other outbound connections used by monitors and scheduled searches. + version: 1.0.0 paths: /v1/connections: get: @@ -155,7 +160,6 @@ paths: - name: type in: query description: Type of connection to return. Valid values are `WebhookConnection`, `ServiceNowConnection`. - required: true schema: type: string default: WebhookConnection @@ -270,6 +274,32 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + ConnectionDefinition: + required: + - name + - type + type: object + properties: + type: + pattern: ^(WebhookDefinition|ServiceNowDefinition)$ + type: string + description: Type of connection. Valid values are `WebhookDefinition`, `ServiceNowDefinition`. + x-pattern-message: must be either `WebhookDefinition` or `ServiceNowDefinition` + name: + maxLength: 127 + minLength: 1 + type: string + description: Name of the connection. + description: + maxLength: 1024 + type: string + description: Description of the connection. + default: '' + discriminator: + propertyName: type + mapping: + ServiceNowDefinition: '#/components/schemas/ServiceNowDefinition' + WebhookDefinition: '#/components/schemas/WebhookDefinition' Connection: required: - createdAt @@ -310,53 +340,6 @@ components: description: Identifier of the user who last modified the resource. discriminator: propertyName: type - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - ConnectionDefinition: - required: - - name - - type - type: object - properties: - type: - pattern: ^(WebhookDefinition|ServiceNowDefinition)$ - type: string - description: Type of connection. Valid values are `WebhookDefinition`, `ServiceNowDefinition`. - x-pattern-message: must be either `WebhookDefinition` or `ServiceNowDefinition` - name: - maxLength: 127 - minLength: 1 - type: string - description: Name of the connection. - description: - maxLength: 1024 - type: string - description: Description of the connection. - default: '' - discriminator: - propertyName: type TestConnectionResponse: required: - responseContent @@ -412,6 +395,30 @@ components: description: List of incident templates. items: $ref: '#/components/schemas/IncidentTemplate' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 IncidentTemplate: required: - id @@ -424,423 +431,121 @@ components: name: type: string description: Name of the incident template. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: connections: id: sumologic.connections.connections name: connections title: Connections methods: - listConnections: + list: operation: $ref: '#/paths/~1v1~1connections/get' response: mediaType: application/json openAPIDocKey: '200' - createConnection: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1connections/post' response: mediaType: application/json openAPIDocKey: '200' - getConnection: + request: + mediaType: application/json + nativeCasing: camel + test: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1connections~1{id}/get' + $ref: '#/paths/~1v1~1connections~1test/post' response: mediaType: application/json openAPIDocKey: '200' - updateConnection: + request: + mediaType: application/json + nativeCasing: camel + get_incident_templates: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1connections~1{id}/put' + $ref: '#/paths/~1v1~1connections~1incidentTemplates/post' response: mediaType: application/json openAPIDocKey: '200' - deleteConnection: + request: + mediaType: application/json + nativeCasing: camel + get: operation: - $ref: '#/paths/~1v1~1connections~1{id}/delete' + $ref: '#/paths/~1v1~1connections~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/connections/methods/getConnection' - - $ref: '#/components/x-stackQL-resources/connections/methods/listConnections' - insert: - - $ref: '#/components/x-stackQL-resources/connections/methods/createConnection' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/connections/methods/deleteConnection' - test: - id: sumologic.connections.test - name: test - title: Test - methods: - testConnection: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1connections~1test/post' + $ref: '#/paths/~1v1~1connections~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - incident_templates: - id: sumologic.connections.incident_templates - name: incident_templates - title: Incident_templates - methods: - getIncidentTemplates: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: - $ref: '#/paths/~1v1~1connections~1incidentTemplates/post' + $ref: '#/paths/~1v1~1connections~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] -openapi: 3.0.0 + select: + - $ref: '#/components/x-stackQL-resources/connections/methods/get' + - $ref: '#/components/x-stackQL-resources/connections/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connections/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connections/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connections/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - connections - description: connections - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/content.yaml b/providers/src/sumologic/v00.00.00000/services/content.yaml index 0b76f73a..28bee2f1 100644 --- a/providers/src/sumologic/v00.00.00000/services/content.yaml +++ b/providers/src/sumologic/v00.00.00000/services/content.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Content API + description: The content library - folders (personal, global, admin recommended, installed apps), content permissions, paths, and the asynchronous export, import, copy, move and delete jobs. + version: 1.0.0 paths: /v2/content/folders: post: @@ -132,11 +137,11 @@ paths: - folderManagement summary: Schedule Global View job description: |- - Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using [GetFolder API](#operation/getFolder) to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items. + Schedule an asynchronous job to get Global View. Global View contains all top-level content items that a user has permissions to view in the organization. User can traverse the top-level folders using GetFolder API to get rest of the content items. Make sure you set `isAdminMode` header parameter to `true` when traversing top-level items. _Global View is not a real folder, therefore there is no folder identifier associated with it_. - _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ operationId: getGlobalFolderAsync parameters: - name: isAdminMode @@ -163,7 +168,7 @@ paths: tags: - folderManagement summary: Get Global View job status - description: Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use [Global View Result](#operation/getGlobalFolderAsyncResult) endpoint to fetch all content items that you have permissions to view. + description: Get the status of an asynchronous Global View job for the given job identifier. If job succeeds, use Global View Result endpoint to fetch all content items that you have permissions to view. operationId: getGlobalFolderAsyncStatus parameters: - name: jobId @@ -220,7 +225,7 @@ paths: description: |- Schedule an asynchronous job to get the top-level Admin Recommended content items. You can read more about Admin Recommended folder [here](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode#move-important-content-to-admin-recommended). - _You get back a identifier of asynchronous job in response to this endpoint. See [Asynchronous-Request](#section/Getting-Started/Asynchronous-Request) section for more details on how to work with asynchronous request._ + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ operationId: getAdminRecommendedFolderAsync parameters: - name: isAdminMode @@ -247,7 +252,7 @@ paths: tags: - folderManagement summary: Get Admin Recommended folder job status - description: Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use [Admin Recommended Job Result](#operation/getAdminRecommendedFolderAsyncResult) endpoint to fetch top-level content items in Admin Recommended folder. + description: Get the status of an asynchronous Admin Recommended folder job for the given job identifier. If job succeeds, use Admin Recommended Job Result endpoint to fetch top-level content items in Admin Recommended folder. operationId: getAdminRecommendedFolderAsyncStatus parameters: - name: jobId @@ -296,6 +301,90 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps: + get: + tags: + - folderManagement + summary: Schedule Installed Apps folder job + description: |- + Schedule an asynchronous job to get the top-level Installed Apps content items. + + _You get back a identifier of asynchronous job in response to this endpoint. See Asynchronous-Request section for more details on how to work with asynchronous request._ + operationId: getInstalledAppsFolderAsync + parameters: + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: An asynchronous job to get the Installed Apps folder has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponse' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/status: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job status + description: Get the status of an asynchronous Installed Apps folder job for the given job identifier. If job succeeds, use Installed Apps Job Result endpoint to fetch top-level content items in Installed Apps folder. + operationId: getInstalledAppsFolderAsyncStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + '200': + description: Asynchronous Installed Apps folder job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/installedApps/{jobId}/result: + get: + tags: + - folderManagement + summary: Get Installed Apps folder job result + description: Get result of an Installed Apps job for the given job identifier. The result will be "Installed Apps" folder with a list of top-level Installed Apps content items in `children` field. + operationId: getInstalledAppsFolderAsyncResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Installed Apps folder job. + required: true + schema: + type: string + responses: + '200': + description: Installed Apps folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Folder' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v2/content/{id}/permissions: get: tags: @@ -488,7 +577,7 @@ paths: - contentManagement summary: Start a content export job. description: |- - Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the [getAsyncExportStatus](#operation/getAsyncExportStatus) endpoint and the job identifier you got back in the response to track the status of an asynchronous export job. + Schedule an _asynchronous_ export of content with the given identifier. You will get back an asynchronous job identifier on success. Use the getAsyncExportStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous export job. If the content item is a folder, everything under the folder is exported recursively. Keep in mind when exporting large folders that there is a limit of 1000 content objects that can be exported at once. If you want to import more than 1000 content objects, then be sure to split the import into batches of 1000 objects or less. The results from the export are compatible with the Library import feature in the Sumo Logic user interface as well as the API content import job. operationId: beginAsyncExport @@ -523,7 +612,7 @@ paths: tags: - contentManagement summary: Content export job status. - description: Get the status of an asynchronous content export request for the given job identifier. On success, use the [getExportResult](#operation/getAsyncExportResult) endpoint to get the result of the export job. + description: Get the status of an asynchronous content export request for the given job identifier. On success, use the getExportResult endpoint to get the result of the export job. operationId: getAsyncExportStatus parameters: - name: contentId @@ -682,6 +771,45 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/content/folders/{folderId}/import/{jobId}/result: + get: + tags: + - contentManagement + summary: Content import job result. + description: Get the complete summary of content import job for the given job identifier. + operationId: getAsyncImportResult + parameters: + - name: folderId + in: path + description: The identifier of the folder to import into. + required: true + schema: + type: string + - name: jobId + in: path + description: The identifier of the import request. + required: true + schema: + type: string + - name: isAdminMode + in: header + description: Set this to "true" if you want to perform the request as a Content Administrator. + required: false + schema: + type: string + responses: + '200': + description: The result of the import job. + content: + application/json: + schema: + $ref: '#/components/schemas/ImportResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v2/content/{id}/delete: delete: tags: @@ -896,119 +1024,23 @@ components: type: string description: The identifier of the parent folder. Folder: - allOf: - - $ref: '#/components/schemas/Content' - - type: object - properties: - description: - maxLength: 255 - minLength: 0 - type: string - description: The description of the folder. - example: This is a sample folder. - children: - type: array - description: A list of the content items. - items: - $ref: '#/components/schemas/Content' - ErrorResponse: - required: - - errors - - id type: object - properties: - id: - type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. - example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - Content: - allOf: - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - - itemType - - name - - parentId - - permissions - properties: - id: - type: string - description: Identifier of the content item. - example: 000000000C1C17C6 - name: - type: string - description: The name of the content item. - example: Personal - itemType: - type: string - description: |- - Type of the content item. Supported values are: - 1. Folder - 2. Search - 3. Report (for old dashboards) - 4. Dashboard (for new dashboards) - 5. Lookups - example: Folder - parentId: - type: string - description: Identifier of the parent content item. - example: 0000000001C41EF2 - permissions: - type: array - description: List of permissions the user has on the content item. - example: - - View - - GrantView - - Edit - items: - type: string - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - MetadataModel: required: - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id + - itemType + - name + - parentId + - permissions properties: createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -1017,11 +1049,76 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. + example: false + default: false + children: + type: array + description: A list of the content items. + items: + $ref: '#/components/schemas/Content' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' UpdateFolderRequest: required: - name @@ -1089,31 +1186,6 @@ components: description: Implicitly inherited content permissions. items: $ref: '#/components/schemas/ContentPermissionAssignment' - ContentPermissionAssignment: - required: - - contentId - - permissionName - - sourceId - - sourceType - type: object - properties: - permissionName: - pattern: ^(View|GrantView|Edit|GrantEdit|Manage|GrantManage)$ - type: string - description: 'Content permission name. Valid values are: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, and `GrantManage`.' - x-pattern-message: 'must be one of the following: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, `GrantManage`' - sourceType: - pattern: ^(user|role|org)$ - type: string - description: 'Type of source for the permission. Valid values are: `user`, `role`, and `org`.' - example: role - x-pattern-message: 'must be one of the following: `user`, `role`, `org`' - sourceId: - type: string - description: An identifier that belongs to the source type chosen above. For e.g. if the sourceType is set to "user", sourceId should be identifier of a user (same goes for `role` and `org` sourceType) - contentId: - type: string - description: Unique identifier for the content item. ContentPermissionUpdateRequest: required: - contentPermissionAssignments @@ -1132,6 +1204,77 @@ components: notificationMessage: type: string description: The notification message sent to the users who had a permission update. + Content: + type: object + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - itemType + - name + - parentId + - permissions + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the content item. + example: 000000000C1C17C6 + name: + type: string + description: The name of the content item. + example: Personal + itemType: + type: string + description: |- + Type of the content item. Supported values are: + 1. Folder + 2. Search + 3. Report (for old dashboards) + 4. Dashboard (for new dashboards) + 5. Lookups + example: Folder + parentId: + type: string + description: Identifier of the parent content item. + example: 0000000001C41EF2 + permissions: + type: array + description: List of permissions the user has on the content item. + example: + - View + - GrantView + - Edit + items: + type: string + description: + type: string + description: Description of the content item. + example: Personal folder for John Doe + isScheduled: + type: boolean + description: Indicates whether the content item refers to scheduled search. This field is only relevant to `Search` content type. + example: false + default: false ContentPath: required: - path @@ -1141,6 +1284,11 @@ components: type: string description: Path of the content item. example: /Library/Users/user@test.com/SampleFolder + pathItems: + type: array + description: The items in the path of the content. + items: + $ref: '#/components/schemas/PathSegment' ContentSyncDefinition: required: - name @@ -1160,734 +1308,613 @@ components: description: The name of the item. discriminator: propertyName: type - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + ImportResult: + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + summary: + type: object + properties: + totalItems: + type: integer + description: Total content items attempted in the import. + example: 15 + successCount: + type: integer + description: Number of content items successfully imported. + example: 12 + failureCount: + type: integer + description: Number of content items that failed to import. + example: 3 + description: Summary about the import job indicating total, success and failure count. + failures: + type: array + description: Detailed listing of failed import items. + items: + $ref: '#/components/schemas/ImportErrorResultItem' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ContentPermissionAssignment: + required: + - contentId + - permissionName + - sourceId + - sourceType + type: object + properties: + permissionName: + pattern: ^(View|GrantView|Edit|GrantEdit|Manage|GrantManage)$ + type: string + description: 'Content permission name. Valid values are: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, and `GrantManage`.' + x-pattern-message: 'must be one of the following: `View`, `GrantView`, `Edit`, `GrantEdit`, `Manage`, `GrantManage`' + sourceType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of source for the permission. Valid values are: `user`, `role`, and `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + sourceId: + type: string + description: An identifier that belongs to the source type chosen above. For e.g. if the sourceType is set to "user", sourceId should be identifier of a user (same goes for `role` and `org` sourceType) + contentId: + type: string + description: Unique identifier for the content item. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + PathSegment: + required: + - id + - name + type: object + properties: + id: + type: string + description: The identifier of the path segment. + example: 0000000013D98A2A + name: + type: string + description: The name of the path segment. + example: Test Folder + description: + type: string + description: An optional description of the path segment. + example: This is a test folder + description: A segment of a path. + ImportErrorResultItem: + type: object + properties: + path: + type: string + description: Full folder path to the failed item. + example: /Marketing/Website Analytics/Daily Traffic Report + type: + type: string + description: The type of the content item (e.g., Folder, Search, Dashboard). + example: Dashboard + error: + type: string + description: Reason why the item failed to import. + example: Invalid JSON format in widget configuration. x-stackQL-resources: folders: id: sumologic.content.folders name: folders title: Folders methods: - createFolder: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1folders/post' response: mediaType: application/json openAPIDocKey: '200' - getFolder: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1content~1folders~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateFolder: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1folders~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders/methods/getFolder' + - $ref: '#/components/x-stackQL-resources/folders/methods/get' insert: - - $ref: '#/components/x-stackQL-resources/folders/methods/createFolder' - update: [] + - $ref: '#/components/x-stackQL-resources/folders/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/folders/methods/update' delete: [] - folders_personal: - id: sumologic.content.folders_personal - name: folders_personal - title: Folders_personal + replace: [] + personal_folder: + id: sumologic.content.personal_folder + name: personal_folder + title: Personal Folder methods: - getPersonalFolder: + get: operation: $ref: '#/paths/~1v2~1content~1folders~1personal/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_personal/methods/getPersonalFolder' + - $ref: '#/components/x-stackQL-resources/personal_folder/methods/get' insert: [] update: [] delete: [] - folders_global: - id: sumologic.content.folders_global - name: folders_global - title: Folders_global + replace: [] + global_folder_jobs: + id: sumologic.content.global_folder_jobs + name: global_folder_jobs + title: Global Folder Jobs methods: - getGlobalFolderAsync: + start: operation: $ref: '#/paths/~1v2~1content~1folders~1global/get' response: mediaType: application/json openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_global/methods/getGlobalFolderAsync' + - $ref: '#/components/x-stackQL-resources/global_folder_jobs/methods/get' insert: [] update: [] delete: [] - folders_global_status: - id: sumologic.content.folders_global_status - name: folders_global_status - title: Folders_global_status + replace: [] + global_folder_results: + id: sumologic.content.global_folder_results + name: global_folder_results + title: Global Folder Results methods: - getGlobalFolderAsyncStatus: + list: operation: - $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_global_status/methods/getGlobalFolderAsyncStatus' + - $ref: '#/components/x-stackQL-resources/global_folder_results/methods/list' insert: [] update: [] delete: [] - folders_global_result: - id: sumologic.content.folders_global_result - name: folders_global_result - title: Folders_global_result + replace: [] + admin_recommended_folder_jobs: + id: sumologic.content.admin_recommended_folder_jobs + name: admin_recommended_folder_jobs + title: Admin Recommended Folder Jobs methods: - getGlobalFolderAsyncResult: + start: operation: - $ref: '#/paths/~1v2~1content~1folders~1global~1{jobId}~1result/get' + $ref: '#/paths/~1v2~1content~1folders~1adminRecommended/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.data + get: + operation: + $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_global_result/methods/getGlobalFolderAsyncResult' + - $ref: '#/components/x-stackQL-resources/admin_recommended_folder_jobs/methods/get' insert: [] update: [] delete: [] - folders_admin_recommended: - id: sumologic.content.folders_admin_recommended - name: folders_admin_recommended - title: Folders_admin_recommended + replace: [] + admin_recommended_folder_results: + id: sumologic.content.admin_recommended_folder_results + name: admin_recommended_folder_results + title: Admin Recommended Folder Results methods: - getAdminRecommendedFolderAsync: + get: operation: - $ref: '#/paths/~1v2~1content~1folders~1adminRecommended/get' + $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_admin_recommended/methods/getAdminRecommendedFolderAsync' + - $ref: '#/components/x-stackQL-resources/admin_recommended_folder_results/methods/get' insert: [] update: [] delete: [] - folders_admin_recommended_status: - id: sumologic.content.folders_admin_recommended_status - name: folders_admin_recommended_status - title: Folders_admin_recommended_status + replace: [] + installed_apps_folder_jobs: + id: sumologic.content.installed_apps_folder_jobs + name: installed_apps_folder_jobs + title: Installed Apps Folder Jobs methods: - getAdminRecommendedFolderAsyncStatus: + start: operation: - $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1folders~1installedApps/get' response: mediaType: application/json openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v2~1content~1folders~1installedApps~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_admin_recommended_status/methods/getAdminRecommendedFolderAsyncStatus' + - $ref: '#/components/x-stackQL-resources/installed_apps_folder_jobs/methods/get' insert: [] update: [] delete: [] - folders_admin_recommended_result: - id: sumologic.content.folders_admin_recommended_result - name: folders_admin_recommended_result - title: Folders_admin_recommended_result + replace: [] + installed_apps_folder_results: + id: sumologic.content.installed_apps_folder_results + name: installed_apps_folder_results + title: Installed Apps Folder Results methods: - getAdminRecommendedFolderAsyncResult: + get: operation: - $ref: '#/paths/~1v2~1content~1folders~1adminRecommended~1{jobId}~1result/get' + $ref: '#/paths/~1v2~1content~1folders~1installedApps~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_admin_recommended_result/methods/getAdminRecommendedFolderAsyncResult' + - $ref: '#/components/x-stackQL-resources/installed_apps_folder_results/methods/get' insert: [] update: [] delete: [] + replace: [] permissions: id: sumologic.content.permissions name: permissions title: Permissions methods: - getContentPermissions: + get: operation: $ref: '#/paths/~1v2~1content~1{id}~1permissions/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/permissions/methods/getContentPermissions' - insert: [] - update: [] - delete: [] - permissions_add: - id: sumologic.content.permissions_add - name: permissions_add - title: Permissions_add - methods: - addContentPermissions: + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1{id}~1permissions~1add/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - permissions_remove: - id: sumologic.content.permissions_remove - name: permissions_remove - title: Permissions_remove - methods: - removeContentPermissions: + request: + mediaType: application/json + nativeCasing: camel + remove: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1{id}~1permissions~1remove/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/permissions/methods/get' insert: [] update: [] delete: [] - path: - id: sumologic.content.path - name: path - title: Path + replace: [] + items: + id: sumologic.content.items + name: items + title: Items methods: - getItemByPath: + get_by_path: operation: $ref: '#/paths/~1v2~1content~1path/get' response: mediaType: application/json openAPIDocKey: '200' - getPathById: + request: + nativeCasing: camel + move: operation: - $ref: '#/paths/~1v2~1content~1{contentId}~1path/get' + $ref: '#/paths/~1v2~1content~1{id}~1move/post' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/path/methods/getPathById' - - $ref: '#/components/x-stackQL-resources/path/methods/getItemByPath' + - $ref: '#/components/x-stackQL-resources/items/methods/get_by_path' insert: [] update: [] delete: [] - export: - id: sumologic.content.export - name: export - title: Export + replace: [] + paths: + id: sumologic.content.paths + name: paths + title: Paths methods: - beginAsyncExport: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1export/post' + $ref: '#/paths/~1v2~1content~1{contentId}~1path/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' insert: [] update: [] delete: [] - export_status: - id: sumologic.content.export_status - name: export_status - title: Export_status + replace: [] + export_jobs: + id: sumologic.content.export_jobs + name: export_jobs + title: Export Jobs methods: - getAsyncExportStatus: + start: + operation: + $ref: '#/paths/~1v2~1content~1{id}~1export/post' + response: + mediaType: application/json + openAPIDocKey: '200' + get: operation: $ref: '#/paths/~1v2~1content~1{contentId}~1export~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/export_status/methods/getAsyncExportStatus' + - $ref: '#/components/x-stackQL-resources/export_jobs/methods/get' insert: [] update: [] delete: [] - export_result: - id: sumologic.content.export_result - name: export_result - title: Export_result + replace: [] + export_results: + id: sumologic.content.export_results + name: export_results + title: Export Results methods: - getAsyncExportResult: + get: operation: $ref: '#/paths/~1v2~1content~1{contentId}~1export~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/export_result/methods/getAsyncExportResult' + - $ref: '#/components/x-stackQL-resources/export_results/methods/get' insert: [] update: [] delete: [] - folders_import: - id: sumologic.content.folders_import - name: folders_import - title: Folders_import + replace: [] + import_jobs: + id: sumologic.content.import_jobs + name: import_jobs + title: Import Jobs methods: - beginAsyncImport: + start: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1content~1folders~1{folderId}~1import/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - folders_import_status: - id: sumologic.content.folders_import_status - name: folders_import_status - title: Folders_import_status - methods: - getAsyncImportStatus: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1content~1folders~1{folderId}~1import~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/folders_import_status/methods/getAsyncImportStatus' + - $ref: '#/components/x-stackQL-resources/import_jobs/methods/get' insert: [] update: [] delete: [] - delete: - id: sumologic.content.delete - name: delete - title: Delete + replace: [] + import_results: + id: sumologic.content.import_results + name: import_results + title: Import Results methods: - beginAsyncDelete: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1delete/delete' + $ref: '#/paths/~1v2~1content~1folders~1{folderId}~1import~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/import_results/methods/get' insert: [] update: [] delete: [] - delete_status: - id: sumologic.content.delete_status - name: delete_status - title: Delete_status + replace: [] + delete_jobs: + id: sumologic.content.delete_jobs + name: delete_jobs + title: Delete Jobs methods: - getAsyncDeleteStatus: + start: operation: - $ref: '#/paths/~1v2~1content~1{id}~1delete~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1{id}~1delete/delete' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/delete_status/methods/getAsyncDeleteStatus' - insert: [] - update: [] - delete: [] - copy: - id: sumologic.content.copy - name: copy - title: Copy - methods: - beginAsyncCopy: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1copy/post' + $ref: '#/paths/~1v2~1content~1{id}~1delete~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/delete_jobs/methods/get' insert: [] update: [] delete: [] - copy_status: - id: sumologic.content.copy_status - name: copy_status - title: Copy_status + replace: [] + copy_jobs: + id: sumologic.content.copy_jobs + name: copy_jobs + title: Copy Jobs methods: - asyncCopyStatus: + start: operation: - $ref: '#/paths/~1v2~1content~1{id}~1copy~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1content~1{id}~1copy/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - move: - id: sumologic.content.move - name: move - title: Move - methods: - moveItem: + get: operation: - $ref: '#/paths/~1v2~1content~1{id}~1move/post' + $ref: '#/paths/~1v2~1content~1{id}~1copy~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/copy_jobs/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - content - description: content - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/content_sync.yaml b/providers/src/sumologic/v00.00.00000/services/content_sync.yaml new file mode 100644 index 00000000..fa1e71c5 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/content_sync.yaml @@ -0,0 +1,523 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Content Sync API + description: Multi-account content synchronisation jobs between child organizations. + version: 1.0.0 +paths: + /v1/multi-account-management/content/sync: + get: + tags: + - contentConfigManagement + summary: Get Content Sync Job Id. + description: Get Content Sync Job Id of last triggered job. + operationId: getContentSyncJobDetails + responses: + '200': + description: Last triggered Content Sync Job Details. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while getting Content Sync Job Id. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - contentConfigManagement + summary: Sync Content and Configuration across Organization. + description: Sync Content and Configuration across Organization. + operationId: contentSync + requestBody: + description: Content and Organisation Information for Syncing. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncRequest' + required: true + responses: + '200': + description: Content Sync Job created successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Failed to created Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/status: + get: + tags: + - contentConfigManagement + summary: Get Status of Content Sync Job. + description: Get Status of Content Sync Job. + operationId: contentSyncStatus + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '200': + description: Content Sync Job Status + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncStatusResponse' + default: + description: Error occurred while getting Content Sync Job Status. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/retry: + post: + tags: + - contentConfigManagement + summary: Retry Content Sync Job by ID + description: Retry Content Sync Job by ID to re-execute job. + operationId: contentSyncRetry + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: retryOptions + in: query + description: Controls which contents to retry + required: false + schema: + $ref: '#/components/schemas/RetryOptions' + responses: + '200': + description: Content Sync Job restarted successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResponse' + default: + description: Error occurred while restarting Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/cancel: + post: + tags: + - contentConfigManagement + summary: Cancel Content Sync Job by ID + description: Cancel In Progress Sync Job by ID.. + operationId: contentSyncCancel + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '202': + description: Content Sync Job Cancellation started successfully + content: {} + default: + description: Error occurred while cancelling Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/result: + get: + tags: + - contentConfigManagement + summary: Get Result of Content Sync Job by ID. + description: Get Result Of Content Sync Job by ID. + operationId: contentSyncResult + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + - name: status + in: query + description: Specific Status of Content Sync Job Result to be fetched. Possible values are "SUCCESS", "FAILED", "WARNING", "CANCELLED". + required: true + schema: + type: string + responses: + '200': + description: Result of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncResult' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/multi-account-management/content/sync/{jobId}/info: + get: + tags: + - contentConfigManagement + summary: Get Information of Content Sync Job by ID. + description: Information Of Content Sync Job by ID. + operationId: contentSyncJobInfo + parameters: + - name: jobId + in: path + description: Id of Content Sync Job + required: true + schema: + type: string + responses: + '200': + description: Information of Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentSyncJobInfo' + default: + description: Error occurred while getting Result for Content Sync Job. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ContentSyncResponse: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Content Sync Job Id. + example: 68B6D772B616DC06 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ContentSyncRequest: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ContentSyncStatusResponse: + required: + - progress + - status + type: object + properties: + status: + type: string + description: Content Sync Job status. + example: Success + progress: + type: integer + description: Content Sync Job progress percentage. + example: 100 + RetryOptions: + type: string + description: Determines retry scope -> "ALL_CONTENTS" (default) retries all, "NON_SUCCESS_CONTENTS" retries only failed ones. + enum: + - ALL_CONTENTS + - NON_SUCCESS_CONTENTS + default: ALL_CONTENTS + ContentSyncResult: + required: + - contentList + type: object + properties: + contentList: + type: array + description: List of content sync items with details. + items: + $ref: '#/components/schemas/ContentSyncItemResult' + ContentSyncJobInfo: + required: + - contentList + - destinationChildOrgInfo + - sourceChildOrgInfo + type: object + properties: + sourceChildOrgInfo: + $ref: '#/components/schemas/ChildOrgInfo' + destinationChildOrgInfo: + $ref: '#/components/schemas/DestinationChildOrgInfo' + contentList: + type: array + description: List of Content and Configuration Information. + items: + $ref: '#/components/schemas/Content_1' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ChildOrgInfo: + required: + - orgId + type: object + properties: + orgId: + type: string + description: Organization Identifier. + example: us2-0000000000000006 + orgName: + type: string + description: Organization Name. + example: Test Org Name + DestinationChildOrgInfo: + required: + - excluded + - included + type: object + properties: + included: + type: array + description: Organization Info which needs to be included in Destination Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + excluded: + type: array + description: Organization Info which needs to be excluded from Destination Organisation List. + items: + $ref: '#/components/schemas/ChildOrgInfo' + Content_1: + required: + - id + - options + - type + type: object + properties: + id: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + type: + type: string + description: Type Of Content. + example: CSE_RULE + enum: + - CSE_RULE + - CSE_TUNING_EXPRESSION + - LIBRARY_FOLDER + - DASHBOARD + - SEARCH + - SCHEDULED_SEARCH + - MONITOR + - MONITOR_FOLDER + - SOURCE_TEMPLATE + - LOOKUP_TABLE + name: + type: string + description: Name of Content or Configuration + example: Test CSE Rule + options: + maxProperties: 100 + type: object + additionalProperties: + type: string + description: Advance Settings required for syncing content or configuration. + example: + includeCSERule: true + default: {} + ContentSyncItemResult: + required: + - childOrganization + - contentId + - message + type: object + properties: + contentId: + type: string + description: Identifier of Content or Configuration + example: MATCH-S00574 + message: + type: string + description: Message Passed while processing content or configuration sync. + example: Sync Failed due to an Internal Error, Please check with support team for more details. + childOrganization: + $ref: '#/components/schemas/ChildOrgInfo' + x-stackQL-resources: + sync_jobs: + id: sumologic.content_sync.sync_jobs + name: sync_jobs + title: Sync Jobs + methods: + get_current: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + retry: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1retry/post' + response: + mediaType: application/json + openAPIDocKey: '200' + cancel: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1cancel/post' + response: + mediaType: application/json + openAPIDocKey: '202' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_jobs/methods/get' + - $ref: '#/components/x-stackQL-resources/sync_jobs/methods/get_current' + insert: + - $ref: '#/components/x-stackQL-resources/sync_jobs/methods/create' + update: [] + delete: [] + replace: [] + sync_job_results: + id: sumologic.content_sync.sync_job_results + name: sync_job_results + title: Sync Job Results + methods: + list: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1result/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.contentList + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_job_results/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + sync_job_info: + id: sumologic.content_sync.sync_job_info + name: sync_job_info + title: Sync Job Info + methods: + get: + operation: + $ref: '#/paths/~1v1~1multi-account-management~1content~1sync~1{jobId}~1info/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sync_job_info/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/dashboards.yaml b/providers/src/sumologic/v00.00.00000/services/dashboards.yaml index 9eaed57c..08ba437a 100644 --- a/providers/src/sumologic/v00.00.00000/services/dashboards.yaml +++ b/providers/src/sumologic/v00.00.00000/services/dashboards.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Dashboards API + description: Dashboards (New), dashboard report schedules, report generation jobs and legacy report migration. + version: 1.0.0 paths: /v2/dashboards: get: @@ -162,7 +167,7 @@ paths: - dashboardManagement summary: Start a report job description: | - Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the [getAsyncReportGenerationStatus](#operation/getAsyncExportStatus) endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job. + Schedule an asynchronous job to generate a report from a template. All items in the template will be included unless specified. See template section for more details on individual templates. Reports can be generated in Pdf or Png format and exported in various methods (ex. direct download). You will get back an asynchronous job identifier on success. Use the getAsyncReportGenerationStatus endpoint and the job identifier you got back in the response to track the status of an asynchronous report generation job. operationId: generateDashboardReport requestBody: description: Request for a report. @@ -189,7 +194,7 @@ paths: tags: - dashboardManagement summary: Get report generation job status - description: Get the status of an asynchronous report generation request for the given job identifier. On success, use the [getReportGenerationResult](#operation/getAsyncReportGenerationResult) endpoint to get the result of the report generation job. + description: Get the status of an asynchronous report generation request for the given job identifier. On success, use the getReportGenerationResult endpoint to get the result of the report generation job. operationId: getAsyncReportGenerationStatus parameters: - name: jobId @@ -243,6 +248,269 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate: + post: + tags: + - dashboardManagement + summary: Migrate Legacy Dashboards to Dashboards(New) + description: | + Schedule an asynchronous job to migrate a list of legacy Dashboards to Dashboard(New). Once migration is finished, the migrated dashboards will be in the same folder as the corresponding legacy Dashboard. + Note: This feature is in beta and may not support all existing features of legacy dashboards. + operationId: migrateReportToDashboard + requestBody: + description: List of legacy dashboard content identifiers. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + '200': + description: Async job identifier to get the status and result of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/BeginAsyncJobResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/preview: + post: + tags: + - dashboardManagement + summary: Preview of Migrating Legacy Dashboards to Dashboards(New) + description: Get a preview of migrating Legacy Dashboards to Dashboard(New) + operationId: previewMigrateReportToDashboard + requestBody: + description: List of content identifiers. Can be folders or classic dashboard. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationRequest' + required: true + responses: + '200': + description: Preview of the dashboard migration job. + content: + application/json: + schema: + $ref: '#/components/schemas/MigrationPreviewResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/status: + get: + tags: + - dashboardManagement + summary: Get dashboard migration status. + description: Get the status of an asynchronous Dashboard Migration job for the given job identifier. If job succeeds, use Dashboard Migration Result endpoint to see results of the migration. + operationId: getDashboardMigrationStatus + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + '200': + description: Dashboard migration job status. + content: + application/json: + schema: + $ref: '#/components/schemas/AsyncJobStatus' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/dashboards/migrate/{jobId}/result: + get: + tags: + - dashboardManagement + summary: Get dashboard migration result. + description: Get the result of an asynchronous Dashboard Migration request for the given job identifier. + operationId: getDashboardMigrationResult + parameters: + - name: jobId + in: path + description: The identifier of the asynchronous Dashboard Migration job. + required: true + schema: + type: string + responses: + '200': + description: Dashboard migration job result. + content: + application/json: + schema: + $ref: '#/components/schemas/DashboardMigrationResult' + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules: + get: + tags: + - dashboardManagement + summary: List all dashboard report schedules. + description: List all dashboard report schedules created by the user. + operationId: listReportSchedules + parameters: + - name: dashboardId + in: query + description: UUID of the dashboard that the report shedules are associated with. + required: false + schema: + type: string + - name: limit + in: query + description: Limit the number of dashboard report schedules returned in the response. The number of dashboard report schedules returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of dashboard report schedules created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedReportSchedules' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dashboardManagement + summary: Schedule dashboard report + description: 'Schedule dashboard report to send at a specific date and time. The report should be sent as attachment or downloadable URL in one of the following notification types: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''.' + operationId: createScheduleReport + requestBody: + description: Request for scheduling dashboard report. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + '200': + description: Dashboard report has been scheduled. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dashboards/reportSchedules/{scheduleId}: + get: + tags: + - dashboardManagement + summary: Get dashboard report schedule. + description: Get the schedule of a scheduled dashboard report by the given identifier. + operationId: getReportSchedule + parameters: + - name: scheduleId + in: path + description: Identifier of the dashboard report schedule to return. + required: true + schema: + type: string + responses: + '200': + description: Dashboard report schedule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dashboardManagement + summary: Update dashboard report schedule. + description: Update the schedule of a scheduled dashboard report by the given identifier. + operationId: updateReportSchedule + parameters: + - name: scheduleId + in: path + description: identifier of the dashboard report schedule to update. + required: true + schema: + type: string + requestBody: + description: Request to update on the dashboard report schedule. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportScheduleRequest' + required: true + responses: + '200': + description: The dashboard report schedule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/ReportSchedule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dashboardManagement + summary: Delete dashboard report schedule. + description: Delete the schedule of a scheduled dashboard report by the given identifier. The scheduled dashboard report will no longer be generated and sent. + operationId: deleteReportSchedule + parameters: + - name: scheduleId + in: path + description: UUID of the dashboard report schedule to delete. + required: true + schema: + type: string + responses: + '204': + description: Dashboard report schedule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: PaginatedDashboards: @@ -257,7 +525,7 @@ components: $ref: '#/components/schemas/Dashboard' next: type: string - description: Next continuation token. `token` is set to null when no more pages are left. + description: Next continuation token. `next` is set to null when no more pages are left. example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc ErrorResponse: required: @@ -279,50 +547,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - Dashboard: - allOf: - - $ref: '#/components/schemas/DashboardRequest' - - type: object - properties: - id: - type: string - description: | - Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. - example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 - contentId: - type: string - description: | - Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. - example: '1' - scheduleId: - type: string - description: | - Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. - example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 DashboardRequest: required: - timeRange @@ -363,7 +587,7 @@ components: refreshInterval: type: integer description: | - Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, 120`, `300`, `900`, `3600`, `86400`. + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. format: int32 example: 30 timeRange: @@ -387,33 +611,445 @@ components: example: light default: Light x-pattern-message: Must be `Light`, or `Dark` - TopologyLabelMap: - required: - - data - type: object - properties: - data: - type: object - additionalProperties: - $ref: '#/components/schemas/TopologyLabelValuesList' - description: Map from topology labels to `TopologyLabelValuesList`. - description: | - Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. - example: - data: - service: - - kube-scheduler - - kube-dns - ResolvableTimeRange: + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + Dashboard: required: - - type + - timeRange + - title type: object properties: - type: + title: + maxLength: 255 + minLength: 1 type: string - description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. - example: - type: BeginBoundedTimeRange + description: Title of the dashboard. + example: Kubernetes Dashboard + description: + type: string + description: Description of the dashboard. + example: A view of pods, namespaces and nodes of your cluster. + folderId: + type: string + description: | + The identifier of the folder to save the dashboard in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + topologyLabelMap: + $ref: '#/components/schemas/TopologyLabelMap' + domain: + type: string + description: If set denotes that the dashboard concerns a given domain (e.g. `aws`, `k8s`, `app`). + example: aws + default: '' + hierarchies: + maxItems: 20 + type: array + description: If set to non-empty array denotes that the dashboard concerns given hierarchies. + example: + - Kubernetes Node View + items: + type: string + default: [] + refreshInterval: + type: integer + description: | + Interval of time (in seconds) to automatically refresh the dashboard. A value of 0 means we never automatically refresh the dashboard. Allowed values are `0`, `30`, `60`, `120`, `300`, `900`, `1800`, `3600`, `7200`, `86400`. + format: int32 + example: 30 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + panels: + type: array + description: Panels in the dashboard. + items: + $ref: '#/components/schemas/Panel' + layout: + $ref: '#/components/schemas/Layout' + variables: + type: array + description: Variables to apply to the panels. + items: + $ref: '#/components/schemas/Variable' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the dashboard. Either `Light` or `Dark`. + example: light + default: Light + x-pattern-message: Must be `Light`, or `Dark` + isPublic: + type: boolean + description: Is the dashboard public + default: false + highlightViolations: + type: boolean + description: Whether to highlight threshold violations. + default: false + organizations: + $ref: '#/components/schemas/Organizations' + id: + type: string + description: | + Unique identifier for the dashboard. This id is used to get detailed information about the dashboard, such as panels, variables and the layout. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + contentId: + type: string + description: | + Content identifier for the dashboard. This id is used to connect to the Sumo Content Library and get general metadata about the dashboard. Use this id if you want to search for dashboards in Sumo folders. + example: '1' + scheduleId: + type: string + description: | + Scheduled report identifier for the dashboard. Only most recently modified report schedule is rerun per dashboard. This id is used to manage the schedule details through the scheduled report API. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + scheduleCount: + type: integer + description: Count of report schedules for the dashboard. + format: int32 + example: 10 + GenerateReportRequest: + required: + - action + - exportFormat + - template + - timezone + type: object + properties: + action: + $ref: '#/components/schemas/ReportAction' + exportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + timezone: + type: string + description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + template: + $ref: '#/components/schemas/Template' + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. If absent, the default theme of the dashboard is used. + example: Light + x-pattern-message: Must be `Light`, 'light, `Dark`, 'dark' + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + BeginAsyncJobResponse: + required: + - id + type: object + properties: + id: + type: string + description: Identifier to get the status of an asynchronous job. + example: C03E086C137F38B4 + AsyncJobStatus: + required: + - status + type: object + properties: + status: + type: string + description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). + statusMessage: + type: string + description: Additional status message generated if the status is not `Failed`. + error: + $ref: '#/components/schemas/ErrorDescription' + example: + status: Success + statusMessage: '' + DashboardMigrationRequest: + required: + - contentIds + type: object + properties: + contentIds: + maxItems: 50 + type: array + description: Content identifiers of the Legacy dashboards. + items: + type: string + description: Content identifier of the Legacy dashboard. + example: 00000000000001C8 + BeginAsyncJobResponseV2: + required: + - jobId + type: object + properties: + jobId: + type: string + description: Identifier of the asynchronous job. Use it to get status of the job. + example: C03E086C137F38B4 + MigrationPreviewResponse: + required: + - count + type: object + properties: + count: + type: integer + description: Count of dashboards to be migrated. + example: 5 + description: Preview of the dashboard migration. + DashboardMigrationResult: + required: + - data + - status + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) Content Ids. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + example: + '1': 64 + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MigratedDashboardInfo' + description: | + A mapping of Legacy Dashboard Content Ids to migrated Dashboard(New) info. Only successful migration are shown here, see errors field for failed migrations and the failure reason. + status: + $ref: '#/components/schemas/DashboardMigrationStatus' + errors: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers that failed validation to the failure reason(s). + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ErrorDescription' + description: A mapping of Legacy Dashboards Content Identifiers to warnings. + PaginatedReportSchedules: + required: + - reportSchedules + type: object + properties: + reportSchedules: + type: array + description: List of dashboard report schedules. + items: + $ref: '#/components/schemas/ReportSchedule' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ReportScheduleRequest: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. + example: Light + x-pattern-message: Must be `Light`, `light`, `dark` or `Dark` + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + ReportSchedule: + required: + - dashboardId + - emailNotification + - reportFormat + - scheduleType + - timeZone + type: object + properties: + dashboardId: + type: string + description: Identifier of dashboard the schedule will generate report for. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + variableValues: + $ref: '#/components/schemas/VariablesValuesData' + reportFormat: + pattern: ^(Pdf|Png)$ + type: string + description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. + example: Pdf + x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' + scheduleType: + type: string + description: |- + Run schedule of the scheduled report. Set to "Custom" to specify the schedule with a CRON expression. Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + example: 1Day + cronExpression: + type: string + description: Cron-like expression specifying the report's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + timeZone: + maxLength: 1024 + minLength: 1 + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. + example: America/Los_Angeles + emailNotification: + $ref: '#/components/schemas/Email' + isActive: + type: boolean + description: Is the dashboard report schedule active + default: true + theme: + pattern: ^(light|dark|Light|Dark)$ + type: string + description: Theme for the report rendering. Must be `Light` or `Dark`. If absent, the dashboard's own theme is used. + example: Light + x-pattern-message: Must be `Light`, `light`, `dark` or `Dark` + exportWidth: + maximum: 6000 + minimum: 1500 + type: integer + description: Pixel width of the exported PDF or PNG. If absent, the default width is used. + example: 1500 + scheduleId: + type: string + description: Identifier of the dashboard report schedule. + example: RdQHYPh2jxoS90DXtKfA7nAJV2rsQ9BncpfY7IkjNzQWi52ug85W7r6Rrmtd + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TopologyLabelMap: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/TopologyLabelValuesList' + description: Map from topology labels to `TopologyLabelValuesList`. + description: | + Map of the topology labels. Each label has a key and a list of values. If a value is `*`, it means the label will match content for all values of its key. + example: + data: + service: + - kube-scheduler + - kube-dns + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange from: type: RelativeTimeRangeBoundary relativeTime: '-15m' @@ -513,20 +1149,162 @@ components: example: false default: false valueType: - pattern: ^(String|Any)$ type: string - description: The type of value of the variable. Allowed values are `String` and Any`. `String` considers as a single phrase and will wrap in double-quotes, `Any` is all characters. + description: | + The type of value of the variable. Allowed values are `String`, Any` and `Numeric`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. example: Any default: Any - x-pattern-message: Only `String` and `Any` are allowed. + Organizations: + type: object + properties: + defaultOrgIds: + type: array + description: The default list of organization IDs to run the dashboard by + items: + $ref: '#/components/schemas/OrgId' + description: The organization details to run the dashboard by + ReportAction: + required: + - actionType + type: object + properties: + actionType: + pattern: ^DirectDownloadReportAction$ + type: string + description: Type of action. + example: DirectDownloadReportAction + x-pattern-message: should be 'DirectDownloadReportAction' + description: The base class of all report action types. `DirectDownloadReportAction` downloads dashboard from browser. New action types may be supported in the future. + discriminator: + propertyName: actionType + Template: + required: + - templateType + type: object + properties: + templateType: + pattern: ^(DashboardTemplate|DashboardReportModeTemplate)$ + type: string + description: The type of template. `DashboardTemplate` provides a snapshot view of the exported dashboard. `DashboardReportModeTemplate` provides a printer-friendly view of the exported dashboard. New templates may be supported in the future. + example: DashboardTemplate + x-pattern-message: Must be `DashboardTemplate`, or `DashboardReportModeTemplate` + discriminator: + propertyName: templateType + MigratedDashboardInfo: + required: + - id + - name + type: object + properties: + id: + type: string + description: The id of the Dashboard(New) + example: jgiJLiFP9dX6YdNG0u9t0yqUVOF0iIlNcX0usw2Uy6g8BYTgBj0vYVeiRjRj + name: + type: string + description: The name of the Dashboard(New) + example: New Dashboard + DashboardMigrationStatus: + required: + - failedCount + - successCount + - totalCount + type: object + properties: + successCount: + type: integer + description: A successful migration to Dashboard(New). + example: 3 + failedCount: + type: integer + description: A failed migration to Dashboard(New). + example: 1 + totalCount: + type: integer + description: The total number of Legacy Dashboards to migrate. + example: 10 + VariablesValuesData: + required: + - data + type: object + properties: + data: + maxProperties: 1000 + type: object + additionalProperties: + type: array + items: + type: string + description: Data for variable values. + default: {} + richData: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/VariableValuesData' + description: A rich form of data for the variable search, including variable values, status and variable type. This field is different from `data` in that it includes an object instead of list as the value in the map. The `data` field is kept for backwards compatibility, please use `richData` for all usages going forward. + Email: + required: + - connectionType + - recipients + - subject + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + recipients: + type: array + description: A list of email addresses to send to when the rule fires. + items: + type: string + example: john@doe.com + subject: + type: string + description: The subject line of the email. + example: Sample Email Subject + messageBody: + type: string + description: The message body of the email to send. + example: Sample Email Message Body + timeZone: + type: string + description: Time zone for the email content. All dates/times will be displayed in this timeZone in the email payload. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + includeQuery: + type: boolean + description: Whether to include the triggering query in the notification email. + includeResultSet: + type: boolean + description: Whether to include the result set in the notification email. This field is not applicable for SLO monitors. + description: The base class of all connection types. + discriminator: + propertyName: connectionType TopologyLabelValuesList: type: array description: List of values corresponding to a key of a label. - example: kube-scheduler + example: + - kube-scheduler items: type: string description: Value of the label. - default: [] LayoutStructure: required: - key @@ -552,514 +1330,349 @@ components: example: MetadataVariableSourceDefinition discriminator: propertyName: variableSourceType - GenerateReportRequest: + OrgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + VariableValuesData: required: - - action - - exportFormat - - template - - timezone + - variableValues type: object properties: - action: - $ref: '#/components/schemas/ReportAction' - exportFormat: - pattern: ^(Pdf|Png)$ - type: string - description: File format of the report. Can be `Pdf` or `Png`. `Pdf` is portable document format. `Png` is portable graphics image format. - example: Pdf - x-pattern-message: 'should be one of the following: ''Pdf'', ''Png''' - timezone: + variableValues: + type: array + description: Values for the variable. + example: + - myCluster + items: + type: string + status: + $ref: '#/components/schemas/DashboardSearchStatus' + variableType: + pattern: ^(LogQueryVariableSourceDefinition|MetadataVariableSourceDefinition|CsvVariableSourceDefinition|FilterSourceDefinition)$ type: string - description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - template: - $ref: '#/components/schemas/Template' - BeginAsyncJobResponse: - required: - - id - type: object - properties: - id: + description: The type of the variable. + example: LogQueryVariableSourceDefinition + x-pattern-message: Must be `LogQueryVariableSourceDefinition`, `MetadataVariableSourceDefinition` `CsvVariableSourceDefinition` or `FilterSourceDefinition`. + valueType: type: string - description: Identifier to get the status of an asynchronous job. - example: C03E086C137F38B4 - ReportAction: - required: - - actionType - type: object - properties: - actionType: - pattern: ^DirectDownloadReportAction$ + description: | + The type of value of the variable. Allowed values are `String`, Any`, `Numeric`, `Integer`, `Long`, `Double`, `Boolean`. - `String` considers as a single phrase and will wrap in double-quotes. - `Any` is all characters. - `Numeric` consists of a numeric value for variables, it will be displayed differently in the UI. - `Integer` is a variable with an `Int` value. - `Long` is a variable with a `Long` value. - `Double` is a variable with a `Double` value. - `Boolean` is a variable with a `Boolean` value. + example: Any + default: Any + allowMultiSelect: + type: boolean + description: Allow multiple selections in the values dropdown. + example: false + default: false + variableKey: type: string - description: Type of action. - example: DirectDownloadReportAction - x-pattern-message: should be 'DirectDownloadReportAction' - description: The base class of all report action types. `DirectDownloadReportAction` downloads dashboard from browser. New action types may be supported in the future. - discriminator: - propertyName: actionType - Template: + description: The key of the variable. + example: _source + errors: + type: array + description: Generic errors returned by backend from downstream assemblies. More specific errors will be thrown in the future. + items: + $ref: '#/components/schemas/ErrorDescription' + description: Variable values, status, type and errors for the variable values search. + Action: required: - - templateType + - connectionType type: object properties: - templateType: - pattern: ^(DashboardTemplate|DashboardReportModeTemplate)$ + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ type: string - description: The type of template. `DashboardTemplate` provides a snapshot view of the exported dashboard. `DashboardReportModeTemplate` provides a printer-friendly view of the exported dashboard. New templates may be supported in the future. - example: DashboardTemplate - x-pattern-message: Must be `DashboardTemplate`, or `DashboardReportModeTemplate` + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + description: The base class of all connection types. discriminator: - propertyName: templateType - AsyncJobStatus: + propertyName: connectionType + DashboardSearchStatus: required: - - status + - state type: object properties: - status: - type: string - description: Whether or not the request is in progress (`InProgress`), has completed successfully (`Success`), or has completed with an error (`Failed`). - statusMessage: + state: type: string - description: Additional status message generated if the status is not `Failed`. - error: - $ref: '#/components/schemas/ErrorDescription' - example: - status: Success - statusMessage: '' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + description: Current state of the search. + percentCompleted: + maximum: 100 + minimum: 0 + type: integer + description: Percentage of search completed. + format: int32 x-stackQL-resources: dashboards: id: sumologic.dashboards.dashboards name: dashboards title: Dashboards methods: - listDashboards: + list: operation: $ref: '#/paths/~1v2~1dashboards/get' response: mediaType: application/json openAPIDocKey: '200' - createDashboard: + objectKey: $.dashboards + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1dashboards/post' response: mediaType: application/json openAPIDocKey: '200' - getDashboard: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1dashboards~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateDashboard: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1dashboards~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDashboard: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v2~1dashboards~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/dashboards/methods/getDashboard' - - $ref: '#/components/x-stackQL-resources/dashboards/methods/listDashboards' + - $ref: '#/components/x-stackQL-resources/dashboards/methods/get' + - $ref: '#/components/x-stackQL-resources/dashboards/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/dashboards/methods/createDashboard' - update: [] + - $ref: '#/components/x-stackQL-resources/dashboards/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/dashboards/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/dashboards/methods/deleteDashboard' + - $ref: '#/components/x-stackQL-resources/dashboards/methods/delete' + replace: [] report_jobs: id: sumologic.dashboards.report_jobs name: report_jobs - title: Report_jobs + title: Report Jobs methods: - generateDashboardReport: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1dashboards~1reportJobs/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1dashboards~1reportJobs~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] - insert: [] + select: + - $ref: '#/components/x-stackQL-resources/report_jobs/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/report_jobs/methods/create' update: [] delete: [] - report_jobs_status: - id: sumologic.dashboards.report_jobs_status - name: report_jobs_status - title: Report_jobs_status + replace: [] + migrations: + id: sumologic.dashboards.migrations + name: migrations + title: Migrations methods: - getAsyncReportGenerationStatus: + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v2~1dashboards~1reportJobs~1{jobId}~1status/get' + $ref: '#/paths/~1v2~1dashboards~1migrate/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + preview: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1dashboards~1migrate~1preview/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1dashboards~1migrate~1{jobId}~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/report_jobs_status/methods/getAsyncReportGenerationStatus' - insert: [] + - $ref: '#/components/x-stackQL-resources/migrations/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/migrations/methods/create' update: [] delete: [] - report_jobs_result: - id: sumologic.dashboards.report_jobs_result - name: report_jobs_result - title: Report_jobs_result + replace: [] + migration_results: + id: sumologic.dashboards.migration_results + name: migration_results + title: Migration Results methods: - getAsyncReportGenerationResult: + get: operation: - $ref: '#/paths/~1v2~1dashboards~1reportJobs~1{jobId}~1result/get' + $ref: '#/paths/~1v2~1dashboards~1migrate~1{jobId}~1result/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/migration_results/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] + report_schedules: + id: sumologic.dashboards.report_schedules + name: report_schedules + title: Report Schedules + methods: + list: + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.reportSchedules + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules~1{scheduleId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules~1{scheduleId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1dashboards~1reportSchedules~1{scheduleId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/get' + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/report_schedules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - dashboards - description: dashboards - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/data_archiving.yaml b/providers/src/sumologic/v00.00.00000/services/data_archiving.yaml new file mode 100644 index 00000000..8aafd52f --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/data_archiving.yaml @@ -0,0 +1,458 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Archiving API + description: Data archiving destinations (AWS S3 buckets for archived logs). + version: 1.0.0 +paths: + /v1/dataarchiving/destinations: + get: + tags: + - dataArchivingManagement + summary: Get all data archiving destinations. + description: Get a list of all data archiving destinations configured for installed collectors. + operationId: getDataArchivingDestinations + parameters: + - name: limit + in: query + description: Limit the number of destinations returned in the response. The number of destinations returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 10 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: List of all data archiving destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/GetDataArchivingDestinationsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataArchivingManagement + summary: Create a data archiving destination. + description: Create a new data archiving destination. + operationId: createDataArchivingDestination + parameters: [] + requestBody: + description: Parameters to create a new data archiving destination. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDataArchivingDestinationRequest' + required: true + responses: + '200': + description: The data archiving destination has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataarchiving/destinations/{id}: + get: + tags: + - dataArchivingManagement + summary: Get a data archiving destination. + description: Get a data archiving destination by the given identifier. + operationId: getDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to return. + required: true + schema: + type: string + example: 1 + responses: + '200': + description: Data archiving destination object requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - dataArchivingManagement + summary: Update a data archiving destination. + description: Update a data archiving destination by the given identifier. + operationId: updateDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to update. + required: true + schema: + type: string + example: 1 + requestBody: + description: Object with the updated parameters. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateDataArchivingDestinationRequest' + required: true + responses: + '200': + description: The data archiving destination has been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/DataArchivingDestination' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - dataArchivingManagement + summary: Delete a data archiving destination. + description: Delete an existing data archiving destination with the given identifier. + operationId: deleteDataArchivingDestination + parameters: + - name: id + in: path + description: Identifier of the data archiving destination to delete. + required: true + schema: + type: string + example: 1 + responses: + '204': + description: The data archiving destination has been deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + GetDataArchivingDestinationsResponse: + type: object + properties: + nextToken: + type: string + description: Next continuation token. + example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA + data: + type: array + description: List of data archiving destinations. + items: + $ref: '#/components/schemas/DataArchivingDestination' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateDataArchivingDestinationRequest: + required: + - destinationName + - destinationConfig + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + DataArchivingDestination: + required: + - destinationName + - destinationConfig + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/DataArchivingDestinationConfig' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the data archiving destination. + example: '1' + UpdateDataArchivingDestinationRequest: + required: + - destinationConfig + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + destinationConfig: + $ref: '#/components/schemas/UpdateDataArchivingDestinationConfigRequest' + description: Request object to update a data archiving destination. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + BaseDataArchivingDestination: + required: + - destinationName + type: object + properties: + destinationName: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data archiving destination. + example: my-archive-destination + DataArchivingDestinationConfig: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI' + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/S3ArchivingDestinationConfig' + Syslog: '#/components/schemas/SyslogArchivingDestinationConfig' + Hitachi: '#/components/schemas/HitachiArchivingDestinationConfig' + RestAPI: '#/components/schemas/RestAPIArchivingDestinationConfig' + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + UpdateDataArchivingDestinationConfigRequest: + required: + - destinationType + type: object + properties: + destinationType: + pattern: ^(S3|Syslog|Hitachi|RestAPI)$ + type: string + description: Type of the data archiving destination. + example: S3 + x-pattern-message: should be 'S3', 'Syslog', 'Hitachi' or 'RestAPI' + discriminator: + propertyName: destinationType + mapping: + S3: '#/components/schemas/UpdateS3ArchivingDestinationConfigRequest' + Syslog: '#/components/schemas/UpdateSyslogArchivingDestinationConfigRequest' + Hitachi: '#/components/schemas/UpdateHitachiArchivingDestinationConfigRequest' + RestAPI: '#/components/schemas/UpdateRestAPIArchivingDestinationConfigRequest' + x-stackQL-resources: + destinations: + id: sumologic.data_archiving.destinations + name: destinations + title: Destinations + methods: + list: + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: nextToken + location: body + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1dataarchiving~1destinations~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/destinations/methods/get' + - $ref: '#/components/x-stackQL-resources/destinations/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/destinations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/destinations/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/destinations/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml b/providers/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml new file mode 100644 index 00000000..6d2758a1 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/data_deletion_rules.yaml @@ -0,0 +1,443 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Deletion Rules API + description: Data deletion rules that remove already-ingested log data. + version: 1.0.0 +paths: + /v1/dataDeletionRules: + get: + tags: + - dataDeletionRules + summary: Get a list of Data Deletion Rules + description: Get a list of data deletion rules in the organization. The response is paginated with a default limit of 50 rules. + operationId: listDeletionRules + parameters: + - name: limit + in: query + description: Limit the number of deletion Rules returned in the response + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of data deletion Rules + content: + application/json: + schema: + $ref: '#/components/schemas/ListDeletionRulesResponse' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataDeletionRules + summary: Create a new Data Deletion Rule + description: Create a new data deletion rule to delete logs. + operationId: createDataDeletionRule + parameters: [] + requestBody: + description: Information about the new deletion rule. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeletionRuleRequest' + required: true + responses: + '200': + description: The data deletion Rule that has been created + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}: + get: + tags: + - dataDeletionRules + summary: Get Data Deletion Rule information for the given Id. + description: Get Data Deletion Rule information for the given Id with updated fields. + operationId: getDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to fetch + required: true + schema: + type: string + responses: + '200': + description: The data deletion Rule Definition that was requested + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/cancel: + post: + tags: + - dataDeletionRules + summary: Cancel the data Deletion Rule with the given Id. + description: Cancel the data Deletion Rule with the given Id. Allowed only if the rule is waiting for approval. + operationId: cancelDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to cancel + required: true + schema: + type: string + responses: + '200': + description: The data deletion Rule has been cancelled successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DeletionRuleDefinition' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/dataDeletionRules/{id}/delete: + delete: + tags: + - dataDeletionRules + summary: Delete the data Deletion Rule with the given Id. + description: Delete the data Deletion Rule with the given Id. Allowed only if the rule is cancelled. + operationId: deleteDataDeletionRule + parameters: + - name: id + in: path + description: Identifier of the Deletion Rule to delete + required: true + schema: + type: string + responses: + '204': + description: The data deletion Rule has been deleted successfully. + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDeletionRulesResponse: + required: + - deletionRulesList + type: object + properties: + deletionRulesList: + type: array + description: List of data deletion rules. + items: + $ref: '#/components/schemas/DeletionRuleDefinition' + next: + type: string + description: Next Continuation token + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateDeletionRuleRequest: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: Timezone for the resolving timerange from startMillis,endMillis + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + DeletionRuleDefinition: + required: + - endMillis + - query + - ruleName + - ruleReason + - startMillis + type: object + properties: + ruleName: + maxLength: 127 + minLength: 1 + type: string + description: Name of the deletion rule. + ruleReason: + maxLength: 255 + minLength: 1 + type: string + description: Reason mentioning what data is being deleted and why. + query: + maxLength: 15000 + minLength: 0 + type: string + description: query to filter out the logs that need to be deleted. + startMillis: + type: integer + description: Start time of the search as a number of milliseconds. + format: int64 + example: 1704976268773 + endMillis: + type: integer + description: End time of the search as a number of milliseconds. + format: int64 + example: 1704977168773 + byReceiptTime: + type: boolean + description: Flag to order the search results in the order collector received it. This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + default: false + timezone: + type: string + description: Timezone for the resolving timerange from startMillis,endMillis + default: UTC + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + id: + type: string + description: Identifier for the deletion rule. + createdAt: + type: string + description: Creation timestamp in UTC. + format: date-time + modifiedAt: + type: string + description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + error: + type: string + description: Errors related to the deletion rule. + status: + type: string + description: Status of the deletion rule. + createdBy: + type: string + description: Identifier of the user who created the deletion rule. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + deletedRanges: + type: array + description: List of the different units of deleted ranges since the deletion rule has been created. + items: + $ref: '#/components/schemas/DeletedRange' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + DeletedRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: Start of the timestamp for each unit of filled ranges, expressed in timeZone specified in rule. + format: date-time + endTime: + type: string + description: End of the timestamp for each unit of filled ranges, expressed in timeZone specified in rule. + format: date-time + description: Range of timestamps from which logs obtained from the query have been deleted. + x-stackQL-resources: + data_deletion_rules: + id: sumologic.data_deletion_rules.data_deletion_rules + name: data_deletion_rules + title: Data Deletion Rules + methods: + list: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deletionRulesList + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataDeletionRules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + cancel: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules~1{id}~1cancel/post' + response: + mediaType: application/json + openAPIDocKey: '200' + delete: + operation: + $ref: '#/paths/~1v1~1dataDeletionRules~1{id}~1delete/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/data_deletion_rules/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/data_masking_rules.yaml b/providers/src/sumologic/v00.00.00000/services/data_masking_rules.yaml new file mode 100644 index 00000000..d0b5fa29 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/data_masking_rules.yaml @@ -0,0 +1,573 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Data Masking Rules API + description: Data masking rules applied at ingest. + version: 1.0.0 +paths: + /v1/dataMaskingRules: + get: + tags: + - dataMaskingManagement + summary: Get a list of data masking rules. + description: Get a list of all data masking rules for the current organization. The response is paginated with a default limit of 100 rules per page. + operationId: listDataMaskingRules + parameters: + - name: limit + in: query + description: Limit the number of data masking rules returned in the response. The number of rules returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. + required: false + schema: + type: string + responses: + '200': + description: A paginated list of data masking rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListDataMaskingRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - dataMaskingManagement + summary: Create a new data masking rule. + description: |- + Create a new data masking rule. The rule will be applied to search results at query time, replacing matches of the regex pattern with the specified mask string. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: createDataMaskingRule + parameters: [] + requestBody: + description: Information about the new data masking rule. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRuleDefinition' + required: true + responses: + '200': + description: The data masking rule has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createDataMaskingRule + /v1/dataMaskingRules/{id}: + get: + tags: + - dataMaskingManagement + summary: Get a data masking rule. + description: Get a data masking rule with the given identifier. + operationId: getDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to return. + required: true + schema: + type: string + responses: + '200': + description: Data masking rule object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getDataMaskingRule + put: + tags: + - dataMaskingManagement + summary: Update a data masking rule. + description: |- + Update an existing data masking rule. Only the fields provided in the request are updated; omitted fields retain their current values. The rule name is immutable and cannot be changed after creation. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: updateDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the data masking rule. The name field cannot be changed as it is immutable. Only fields provided will be updated; omitted fields retain their current values. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseDataMaskingRuleDefinition' + required: true + responses: + '200': + description: The data masking rule was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingRule' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateDataMaskingRule + delete: + tags: + - dataMaskingManagement + summary: Delete a data masking rule. + description: |- + Delete a data masking rule with the given identifier. + **Note:** Changes to data masking rules may take up to 30 seconds to take effect. + operationId: deleteDataMaskingRule + parameters: + - name: id + in: path + description: Identifier of the data masking rule to delete. + required: true + schema: + type: string + responses: + '204': + description: Data masking rule was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteDataMaskingRule + /v1/dataMaskingRules/evaluate: + post: + tags: + - dataMaskingManagement + summary: Test and preview a regex pattern by evaluating it against sample input text. Optionally provide a maskString to use as the replacement for text that matches the regex. + description: 'Evaluate a regex pattern against input text. This endpoint can be used to test regex patterns for data masking rules. You can provide your own mask string which will be used for masking, otherwise it will be masked with default value of ##redactedPII##. The response includes the masked text, match count, and positions of matches in the masked output text.' + operationId: evaluateDataMaskingPattern + parameters: [] + requestBody: + description: Input regex and sample message for data masking evaluation. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateDefinition' + required: true + responses: + '200': + description: Evaluation result for the provided sample message. + content: + application/json: + schema: + $ref: '#/components/schemas/DataMaskingEvaluateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListDataMaskingRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of data masking rules. + items: + $ref: '#/components/schemas/DataMaskingRule' + next: + type: string + description: Next continuation token. Null if this is the last page. + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DataMaskingRuleDefinition: + type: object + required: + - enabled + - name + - regexPattern + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. + example: Email Masking + DataMaskingRule: + type: object + x-tf-generated-properties: id,name,description,regexPattern,maskString,enabled + x-tf-resource-name: DataMaskingRule + required: + - enabled + - name + - regexPattern + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the data masking rule. Use a name that makes it easy to identify the rule. Must be unique within the organization. This field is immutable and cannot be changed after creation. + example: Email Masking + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the data masking rule. + example: 00000000FF42A0C3 + BaseDataMaskingRuleDefinition: + required: + - enabled + type: object + properties: + description: + maxLength: 512 + type: string + description: Optional description of the data masking rule. Provide context about what PII this rule masks and why it's needed. + example: Masks email addresses in application logs + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regular expression pattern to match PII data that should be masked. The pattern must be valid according to Java regex syntax. All matches in search results will be replaced with the mask string. Required when creating a rule. When updating, if omitted the existing pattern is retained. + example: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b + maskString: + maxLength: 64 + minLength: 1 + type: string + description: The string to replace matched PII with. Defaults to '##redactedPII##' if not specified. Use descriptive mask strings like 'EMAIL_REDACTED' or 'PHONE_REDACTED' for clarity. + example: EMAIL_REDACTED + default: '##redactedPII##' + enabled: + type: boolean + description: Whether the data masking rule is active. Only enabled rules are applied to search results. Set to false to temporarily disable a rule without deleting it. + default: true + DataMaskingEvaluateDefinition: + required: + - regexPattern + - text + type: object + properties: + regexPattern: + maxLength: 2048 + minLength: 1 + type: string + description: Regex pattern used to identify substrings to mask. + example: \\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b + maskString: + maxLength: 64 + minLength: 0 + type: string + description: Optional mask string. If null or empty, the service may apply a default mask string. + nullable: true + example: EMAIL_REDACTED + default: '##redactedPII##' + text: + maxLength: 2048 + minLength: 1 + type: string + description: Sample message used for masking evaluation. + example: 2026-04-21 INFO User 192.168.1.1 logged in at 10.0.0.1 + DataMaskingEvaluateResponse: + required: + - maskedText + - matchCount + - matchPositions + type: object + properties: + maskedText: + type: string + description: Message after applying masking. + example: '2026-04-21 INFO User ##redactedPII## logged in at ##redactedPII##' + matchCount: + minimum: 0 + type: integer + description: Number of replaced matches. + format: int32 + example: 2 + matchPositions: + type: array + description: Start/end offsets for each replaced segment in the output string. + items: + $ref: '#/components/schemas/DataMaskingMatchPosition' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + DataMaskingMatchPosition: + required: + - end + - start + type: object + properties: + start: + minimum: 0 + type: integer + description: Start index of masked segment in output string (inclusive). + format: int32 + example: 21 + end: + minimum: 0 + type: integer + description: End index of masked segment in output string (exclusive). + format: int32 + example: 36 + x-stackQL-resources: + data_masking_rules: + id: sumologic.data_masking_rules.data_masking_rules + name: data_masking_rules + title: Data Masking Rules + methods: + list: + operation: + $ref: '#/paths/~1v1~1dataMaskingRules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataMaskingRules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + evaluate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1dataMaskingRules~1evaluate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/data_masking_rules/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml b/providers/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml index cf910ab7..03ddc603 100644 --- a/providers/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml +++ b/providers/src/sumologic/v00.00.00000/services/dynamic_parsing_rules.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Dynamic Parsing Rules API + description: Dynamic parsing rules that extract fields automatically from JSON logs. + version: 1.0.0 paths: /v1/dynamicParsingRules: get: @@ -185,52 +190,42 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - DynamicRule: - allOf: - - $ref: '#/components/schemas/DynamicRuleDefinition' - - $ref: '#/components/schemas/Metadata' - - required: - - id - - isSystemRule - properties: - id: - type: string - description: Unique identifier for the dynamic parsing rule. - example: 0000000001C41EE4 - isSystemRule: - type: boolean - description: Whether the rule has been defined by the system, rather than by a user. - example: false - ErrorDescription: + DynamicRuleDefinition: required: - - code - - message + - enabled + - name + - scope type: object properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + name: + maxLength: 256 + minLength: 1 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Name of the dynamic parsing rule. Use a name that makes it easy to identify the rule. + example: DynamicParsingRule123 + scope: + maxLength: 2048 + minLength: 1 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - DynamicRuleDefinition: + description: Scope of the dynamic parsing rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + enabled: + type: boolean + description: Is the dynamic parsing rule enabled. + example: false + default: true + DynamicRule: + type: object required: - enabled - name - scope - type: object + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - isSystemRule properties: name: maxLength: 256 @@ -249,6 +244,52 @@ components: description: Is the dynamic parsing rule enabled. example: false default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: dateTime + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: dateTime + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + id: + type: string + description: Unique identifier for the dynamic parsing rule. + example: 0000000001C41EE4 + isSystemRule: + type: boolean + description: Whether the rule has been defined by the system, rather than by a user. + example: false + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 Metadata: required: - createdAt @@ -271,391 +312,97 @@ components: modifiedBy: type: string description: Identifier of the user who last modified the resource. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: dynamic_parsing_rules: id: sumologic.dynamic_parsing_rules.dynamic_parsing_rules name: dynamic_parsing_rules - title: Dynamic_parsing_rules + title: Dynamic Parsing Rules methods: - listDynamicParsingRules: + list: operation: $ref: '#/paths/~1v1~1dynamicParsingRules/get' response: mediaType: application/json openAPIDocKey: '200' - createDynamicParsingRule: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1dynamicParsingRules/post' response: mediaType: application/json openAPIDocKey: '200' - getDynamicParsingRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1dynamicParsingRules~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateDynamicParsingRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1dynamicParsingRules~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDynamicParsingRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1dynamicParsingRules~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/getDynamicParsingRule' - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/listDynamicParsingRules' + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/createDynamicParsingRule' - update: [] + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/deleteDynamicParsingRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/dynamic_parsing_rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - dynamic_parsing_rules - description: dynamicParsingRules - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml b/providers/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml new file mode 100644 index 00000000..94f050fd --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/event_extraction_rules.yaml @@ -0,0 +1,575 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Event Extraction Rules API + description: Event extraction rules (Event Analytics) and their quota. + version: 1.0.0 +paths: + /v1/eventExtractionRules: + get: + tags: + - eventAnalytics + summary: Get all event extraction rules. + description: Get all event extraction rules. + operationId: getEventExtractionRules + responses: + '200': + description: Event extraction rules. + content: + application/json: + schema: + $ref: '#/components/schemas/ListEventExtractionRulesResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - eventAnalytics + summary: Create event extraction rule. + description: Create event extraction rule. + operationId: createEventExtractionRule + requestBody: + description: Information to create a new event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + '200': + description: The event extraction rule was created. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/quota: + get: + tags: + - eventAnalytics + summary: Get event extraction rules quota. + description: Every customer can use a limited number of Event Extraction Rules. This endpoint allows learning about these limitations and remaining quota. + operationId: getEventExtractionRulesQuota + responses: + '200': + description: Current state of Event Extraction Rules quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRulesQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/eventExtractionRules/{id}: + get: + tags: + - eventAnalytics + summary: Get an event extraction rule. + description: Get an event extraction rule. + operationId: getEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + '200': + description: Requested event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - eventAnalytics + summary: Update an event extraction rule. + description: Update an event extraction rule. + operationId: updateEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + requestBody: + description: Information to update event extraction rule. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRule' + required: true + responses: + '200': + description: The event extraction rule was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - eventAnalytics + summary: Delete an event extraction rule. + description: Delete an event extraction rule. + operationId: deleteEventExtractionRule + parameters: + - name: id + in: path + description: The identifier of the event extraction rule. + required: true + schema: + type: string + example: 000000000000000A + responses: + '204': + description: The event extraction rule was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListEventExtractionRulesResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of event extraction rules. + items: + $ref: '#/components/schemas/EventExtractionRuleWithDetails' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + EventExtractionRule: + required: + - configuration + - name + - query + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match eventFieldName and queryFieldName. + example: ExactMatch + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + EventExtractionRuleWithDetails: + type: object + description: Event extraction rule object. + required: + - configuration + - name + - query + - id + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of event extraction rule. + example: foo + description: + maxLength: 1024 + type: string + description: Description of event extraction rule. + example: foo + query: + type: string + description: | + Query string for the Event Extraction Rule. Logs matching this query are periodically ingested into the `sumologic_userdata_events` index (**Events**). + + Guidelines for creating the query: + - Optimize the query to limit the number of returned log messages (intended for special logs only). + - The query runs in `Manual` mode, explicitly parse and extract only the necessary fields for event correlation and visualization. + - Use the `fields` operator to restrict the output to required fields. + example: _sourceCategory=eventSource + correlationExpression: + required: + - eventFieldName + - queryFieldName + - stringMatchingAlgorithm + type: object + properties: + queryFieldName: + type: string + description: Name of the query field returned by a log search query. + example: _sourcecategory + eventFieldName: + type: string + description: Name of the field from event query output. + example: foo + stringMatchingAlgorithm: + pattern: ^(ExactMatch)$ + type: string + description: Type of string matching algorithm which tells how to match eventFieldName and queryFieldName. + example: ExactMatch + description: | + Correlation Expression specifies how to determine related events for a log search query. + The value of `eventFieldName` from Events is compared with the values of `queryFieldName` from the log search query output using the defined stringMatchingAlgorithm. Events that match according to this algorithm are considered correlated. + configuration: + maxProperties: 1000 + required: + - eventName + - eventPriority + - eventSource + - eventType + type: object + additionalProperties: + $ref: '#/components/schemas/FieldMapping' + description: | + Configuration for the Event Extraction Rule. + + This object defines how event fields are mapped to their corresponding values. + Each field specifies a `valueSource`, which provides the actual value, and an optional `mappingType`, + indicating the value is hardcoded. + + The following fields are **required**: + - `eventType`: Type of the event. Accepted values are `Deployment`, `Feature Flag Change`, `Configuration Change` or `Infrastructure Change`. + - `eventPriority`: Indicates the priority of the event. Accepted values are `High`, `Medium`, or `Low`. + - `eventSource`: Source system or component where the event originated (e.g., "Jenkins"). + - `eventName`: Descriptive name of the event (e.g., "monitor-manager deployed."). + + The following fields are **optional**: + - `eventDescription`: Additional context or details about the event. + + Custom fields can also be added as needed to capture domain-specific event data. + example: + eventType: + valueSource: Deploy + mappingType: HardCoded + eventPriority: + valueSource: High + mappingType: HardCoded + eventSource: + valueSource: Jenkins + mappingType: HardCoded + eventName: + valueSource: monitor-manager deployed. + mappingType: HardCoded + eventDescription: + valueSource: 2 containers in monitor-manager were upgraded. + mappingType: HardCoded + id: + type: string + description: Id of the event extraction rule. + example: '0000000001213227' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + enabled: + type: boolean + description: Flag indicating whether the event extraction rule is enabled or disabled. + example: true + disableReason: + type: string + description: Reason for disabling the event extraction rule, if applicable. + example: Event Extraction Rule output exceeded maximum allowed rate of 1000 events per hour in last 24 hours. + EventExtractionRulesQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of EventExtractionRules allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of EventExtractionRules allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + FieldMapping: + required: + - valueSource + type: object + properties: + valueSource: + maxLength: 256 + type: string + description: The actual value or field reference for the mapping. + example: Knobs Changes + mappingType: + pattern: ^(HardCoded)$ + type: string + description: Specifies valueSource is hardcoded. + example: HardCoded + x-pattern-message: Must be `HardCoded` + x-stackQL-resources: + event_extraction_rules: + id: sumologic.event_extraction_rules.event_extraction_rules + name: event_extraction_rules + title: Event Extraction Rules + methods: + list: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1eventExtractionRules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/event_extraction_rules/methods/delete' + replace: [] + quota: + id: sumologic.event_extraction_rules.quota + name: quota + title: Quota + methods: + get: + operation: + $ref: '#/paths/~1v1~1eventExtractionRules~1quota/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/quota/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/extraction_rules.yaml b/providers/src/sumologic/v00.00.00000/services/extraction_rules.yaml index ebbd4f9a..b63e9e44 100644 --- a/providers/src/sumologic/v00.00.00000/services/extraction_rules.yaml +++ b/providers/src/sumologic/v00.00.00000/services/extraction_rules.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Extraction Rules API + description: Field extraction rules and their quota. + version: 1.0.0 paths: /v1/extractionRules: get: @@ -184,69 +189,74 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ExtractionRule: - allOf: - - $ref: '#/components/schemas/ExtractionRuleDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the field extraction rule. - fieldNames: - type: array - description: List of extracted fields from "parseExpression". - items: - type: string - x-tf-generated-properties: id,name,scope,parseExpression,enabled - x-tf-resource-name: ExtractionRule - ErrorDescription: + ExtractionRuleDefinition: required: - - code - - message + - name + - parseExpression + - scope type: object properties: - code: + name: + maxLength: 256 + minLength: 1 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - ExtractionRuleDefinition: - allOf: - - $ref: '#/components/schemas/BaseExtractionRuleDefinition' - - type: object - properties: - enabled: - type: boolean - description: Is the field extraction rule enabled. - default: true - MetadataModel: + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true + ExtractionRule: + type: object + x-tf-generated-properties: id,name,scope,parseExpression,enabled + x-tf-resource-name: ExtractionRule required: + - name + - parseExpression + - scope - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + default: true createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -255,11 +265,71 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the field extraction rule. + fieldNames: + type: array + description: List of extracted fields from "parseExpression". + items: + type: string + UpdateExtractionRuleDefinition: + required: + - name + - parseExpression + - scope + - enabled + type: object + properties: + name: + maxLength: 256 + minLength: 1 + type: string + description: Name of the field extraction rule. Use a name that makes it easy to identify the rule. + example: ExtractionRule123 + scope: + maxLength: 2048 + minLength: 0 + type: string + description: Scope of the field extraction rule. This could be a sourceCategory, sourceHost, or any other metadata that describes the data you want to extract from. Think of the Scope as the first portion of an ad hoc search, before the first pipe ( | ). You'll use the Scope to run a search against the rule. + example: _sourceHost=127.0.0.1 + parseExpression: + maxLength: 16384 + type: string + description: Describes the fields to be parsed. + example: csv _raw extract 1 as f1 + enabled: + type: boolean + description: Is the field extraction rule enabled. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 BaseExtractionRuleDefinition: required: - name @@ -284,401 +354,123 @@ components: type: string description: Describes the fields to be parsed. example: csv _raw extract 1 as f1 - UpdateExtractionRuleDefinition: - allOf: - - $ref: '#/components/schemas/BaseExtractionRuleDefinition' - - required: - - enabled - type: object - properties: - enabled: - type: boolean - description: Is the field extraction rule enabled. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 x-stackQL-resources: extraction_rules: id: sumologic.extraction_rules.extraction_rules name: extraction_rules - title: Extraction_rules + title: Extraction Rules methods: - listExtractionRules: + list: operation: $ref: '#/paths/~1v1~1extractionRules/get' response: mediaType: application/json openAPIDocKey: '200' - createExtractionRule: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1extractionRules/post' response: mediaType: application/json openAPIDocKey: '200' - getExtractionRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1extractionRules~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateExtractionRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1extractionRules~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteExtractionRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1extractionRules~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/getExtractionRule' - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/listExtractionRules' + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/createExtractionRule' - update: [] + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/deleteExtractionRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/extraction_rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - extraction_rules - description: extractionRules - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/feature_settings.yaml b/providers/src/sumologic/v00.00.00000/services/feature_settings.yaml new file mode 100644 index 00000000..d27e0055 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/feature_settings.yaml @@ -0,0 +1,259 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Feature Settings API + description: Organization feature settings. + version: 1.0.0 +paths: + /v1/featureSettings: + get: + tags: + - orgFeatureSettings + summary: Get a list of opt-in/out features. + description: Get a list of opt-in/out features for the organization. + operationId: listFeatureSettings + responses: + '200': + description: A list of opt-in/out features for the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - orgFeatureSettings + summary: Update one or more feature settings. + description: Update feature settings for the organization. + operationId: updateFeatureSettings + parameters: [] + requestBody: + description: List of feature Id and its settings. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateFeatureSettingsRequest' + required: true + responses: + '200': + description: One or more feature settings have been updated. + content: + application/json: + schema: + $ref: '#/components/schemas/FeatureSettingsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + FeatureSettingsResponse: + type: object + properties: + featureSettings: + type: array + description: List of opt-in/out features. + items: + $ref: '#/components/schemas/FeatureSettingsModel' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + UpdateFeatureSettingsRequest: + required: + - featureSettings + type: object + properties: + featureSettings: + minItems: 1 + type: array + description: List of feature Id and its settings. + items: + $ref: '#/components/schemas/FeatureSettingsBase' + FeatureSettingsModel: + required: + - id + - settings + - description + - lastModifiedAt + - lastModifiedBy + - name + - type + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + name: + maxLength: 64 + type: string + description: Name of the feature (user-friendly). + example: Mobot + description: + maxLength: 255 + type: string + description: Details of the feature. + type: + pattern: ^(GA|PublicPreview|PrivatePreview)$ + type: string + description: Type of the feature + example: GA + lastModifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + nullable: true + example: '2025-10-16T09:10:00.000Z' + lastModifiedBy: + type: string + description: Identifier of the user who last modified the resource. + nullable: true + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + FeatureSettingsBase: + required: + - id + - settings + type: object + properties: + id: + maxLength: 32 + type: string + description: Id of the feature. + example: Mobot + settings: + minItems: 1 + type: array + description: List of settings. + items: + $ref: '#/components/schemas/Setting' + Setting: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key for the setting. + example: enabled + value: + type: string + description: The value for the setting. + example: 'false' + x-stackQL-resources: + feature_settings: + id: sumologic.feature_settings.feature_settings + name: feature_settings + title: Feature Settings + methods: + list: + operation: + $ref: '#/paths/~1v1~1featureSettings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.featureSettings + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1featureSettings/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/feature_settings/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/feature_settings/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/fields.yaml b/providers/src/sumologic/v00.00.00000/services/fields.yaml index e394bea5..a4c10904 100644 --- a/providers/src/sumologic/v00.00.00000/services/fields.yaml +++ b/providers/src/sumologic/v00.00.00000/services/fields.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Fields API + description: Custom fields, built-in fields, dropped fields and the field quota. + version: 1.0.0 paths: /v1/fields: get: @@ -266,58 +271,23 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - CustomField: - allOf: - - $ref: '#/components/schemas/FieldName' - - required: - - dataType - - fieldId - - state - type: object - properties: - fieldId: - type: string - description: Identifier of the field. - example: 00000000031D02DA - dataType: - pattern: ^(String|Long|Int|Double|Boolean)$ - type: string - description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. - example: String - x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` - state: - pattern: ^(Enabled|Disabled)$ - type: string - description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. - example: Enabled - x-pattern-message: Must be `Enabled` or `Disabled` - ErrorDescription: + FieldName: required: - - code - - message + - fieldName type: object properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + fieldName: + maxLength: 255 + minLength: 1 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - FieldName: + description: Field name. + example: hostIP + CustomField: required: - fieldName + - dataType + - fieldId + - state type: object properties: fieldName: @@ -326,6 +296,22 @@ components: type: string description: Field name. example: hostIP + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. + example: String + x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` ListDroppedFieldsResponse: required: - data @@ -336,9 +322,6 @@ components: description: List of dropped fields. items: $ref: '#/components/schemas/DroppedField' - DroppedField: - allOf: - - $ref: '#/components/schemas/FieldName' ListBuiltinFieldsResponse: required: - data @@ -350,30 +333,35 @@ components: items: $ref: '#/components/schemas/BuiltinField' BuiltinField: - allOf: - - $ref: '#/components/schemas/FieldName' - - required: - - dataType - - fieldId - - state - type: object - properties: - fieldId: - type: string - description: Identifier of the field. - example: 00000000031D02DA - dataType: - pattern: ^(String|Long|Int|Double|Boolean)$ - type: string - description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. - example: String - x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` - state: - pattern: ^(Enabled|Disabled)$ - type: string - description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. - example: Enabled - x-pattern-message: Must be `Enabled` or `Disabled` + required: + - fieldName + - dataType + - fieldId + - state + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP + fieldId: + type: string + description: Identifier of the field. + example: 00000000031D02DA + dataType: + pattern: ^(String|Long|Int|Double|Boolean)$ + type: string + description: Field type. Possible values are `String`, `Long`, `Int`, `Double`, and `Boolean`. + example: String + x-pattern-message: Must be `String`, `Long`, `Int`, `Double` or `Boolean` + state: + pattern: ^(Enabled|Disabled)$ + type: string + description: Indicates whether the field is enabled and its values are being accepted. Possible values are `Enabled` and `Disabled`. + example: Enabled + x-pattern-message: Must be `Enabled` or `Disabled` FieldQuotaUsage: required: - quota @@ -390,476 +378,202 @@ components: description: Current number of fields available. format: int32 example: 121 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + DroppedField: + required: + - fieldName + type: object + properties: + fieldName: + maxLength: 255 + minLength: 1 + type: string + description: Field name. + example: hostIP x-stackQL-resources: fields: id: sumologic.fields.fields name: fields title: Fields methods: - listCustomFields: + list: operation: $ref: '#/paths/~1v1~1fields/get' response: mediaType: application/json openAPIDocKey: '200' - createField: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1fields/post' response: mediaType: application/json openAPIDocKey: '200' - getCustomField: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1fields~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - deleteField: + request: + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1fields~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/fields/methods/getCustomField' - - $ref: '#/components/x-stackQL-resources/fields/methods/listCustomFields' - insert: - - $ref: '#/components/x-stackQL-resources/fields/methods/createField' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/fields/methods/deleteField' - enable: - id: sumologic.fields.enable - name: enable - title: Enable - methods: - enableField: + openAPIDocKey: '204' + request: + nativeCasing: camel + enable: operation: $ref: '#/paths/~1v1~1fields~1{id}~1enable/put' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - disable: - id: sumologic.fields.disable - name: disable - title: Disable - methods: - disableField: + openAPIDocKey: '204' + disable: operation: $ref: '#/paths/~1v1~1fields~1{id}~1disable/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] + select: + - $ref: '#/components/x-stackQL-resources/fields/methods/get' + - $ref: '#/components/x-stackQL-resources/fields/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/fields/methods/create' update: [] - delete: [] - dropped: - id: sumologic.fields.dropped - name: dropped - title: Dropped + delete: + - $ref: '#/components/x-stackQL-resources/fields/methods/delete' + replace: [] + dropped_fields: + id: sumologic.fields.dropped_fields + name: dropped_fields + title: Dropped Fields methods: - listDroppedFields: + list: operation: $ref: '#/paths/~1v1~1fields~1dropped/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/dropped/methods/listDroppedFields' + - $ref: '#/components/x-stackQL-resources/dropped_fields/methods/list' insert: [] update: [] delete: [] - builtin: - id: sumologic.fields.builtin - name: builtin - title: Builtin + replace: [] + builtin_fields: + id: sumologic.fields.builtin_fields + name: builtin_fields + title: Builtin Fields methods: - listBuiltInFields: + list: operation: $ref: '#/paths/~1v1~1fields~1builtin/get' response: mediaType: application/json openAPIDocKey: '200' - getBuiltInField: + objectKey: $.data + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1fields~1builtin~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/builtin/methods/getBuiltInField' - - $ref: '#/components/x-stackQL-resources/builtin/methods/listBuiltInFields' + - $ref: '#/components/x-stackQL-resources/builtin_fields/methods/get' + - $ref: '#/components/x-stackQL-resources/builtin_fields/methods/list' insert: [] update: [] delete: [] + replace: [] quota: id: sumologic.fields.quota name: quota title: Quota methods: - getFieldQuota: + get: operation: $ref: '#/paths/~1v1~1fields~1quota/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/quota/methods/getFieldQuota' + - $ref: '#/components/x-stackQL-resources/quota/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - fields - description: fields - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/health_events.yaml b/providers/src/sumologic/v00.00.00000/services/health_events.yaml index 71c105b6..e796e2f6 100644 --- a/providers/src/sumologic/v00.00.00000/services/health_events.yaml +++ b/providers/src/sumologic/v00.00.00000/services/health_events.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Health Events API + description: Health events for collectors, sources, ingest budgets and other resources. + version: 1.0.0 paths: /v1/healthEvents: get: @@ -115,6 +120,16 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + ResourceIdentities: + required: + - data + type: object + properties: + data: + type: array + description: A list of the resources. + items: + $ref: '#/components/schemas/ResourceIdentity' HealthEvent: required: - details @@ -142,7 +157,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' subsystem: type: string description: The product area of the event. @@ -168,31 +183,11 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 - TrackerIdentity: - required: - - description - - error - - trackerId - type: object - properties: - trackerId: - type: string - description: Name that uniquely identifies the health event. It focuses on what happened rather than why. - error: - type: string - description: Description of the underlying reason for the event change. - example: Access denied to Amazon S3 bucket - description: - type: string - description: A more elaborate description of why the event occurred. - example: S3 collection is not working as expected because of access issues. - discriminator: - propertyName: description ResourceIdentity: required: - id @@ -220,391 +215,86 @@ components: IngestBudget: '#/components/schemas/IngestBudgetResourceIdentity' Organisation: '#/components/schemas/OrgIdentity' LogsToMetricsRule: '#/components/schemas/LogsToMetricsRuleIdentity' - ResourceIdentities: + ScheduledView: '#/components/schemas/ScheduledViewResourceIdentity' + TrackerIdentity: required: - - data + - description + - error + - trackerId type: object properties: - data: - type: array - description: A list of the resources. - items: - $ref: '#/components/schemas/ResourceIdentity' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + trackerId: + type: string + description: Name that uniquely identifies the health event. It focuses on what happened rather than why. + error: + type: string + description: Description of the underlying reason for the event change. + example: Access denied to Amazon S3 bucket + description: + type: string + description: A more elaborate description of why the event occurred. + example: S3 collection is not working as expected because of access issues. + discriminator: + propertyName: description x-stackQL-resources: health_events: id: sumologic.health_events.health_events name: health_events - title: Health_events + title: Health Events methods: - listAllHealthEvents: + list: operation: $ref: '#/paths/~1v1~1healthEvents/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/health_events/methods/listAllHealthEvents' - insert: [] - update: [] - delete: [] - resources: - id: sumologic.health_events.resources - name: resources - title: Resources - methods: - listAllHealthEventsForResources: + request: + nativeCasing: camel + list_for_resources: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1healthEvents~1resources/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/health_events/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - health_events - description: healthEvents - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/ingest_budgets.yaml b/providers/src/sumologic/v00.00.00000/services/ingest_budgets.yaml index 52ceca69..d7eac4de 100644 --- a/providers/src/sumologic/v00.00.00000/services/ingest_budgets.yaml +++ b/providers/src/sumologic/v00.00.00000/services/ingest_budgets.yaml @@ -1,281 +1,9 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Ingest Budgets API + description: Ingest budgets (v2) and their usage reset. + version: 1.0.0 paths: - /v1/ingestBudgets: - get: - tags: - - ingestBudgetManagementV1 - summary: Get a list of ingest budgets. - description: Get a list of all ingest budgets. The response is paginated with a default limit of 100 budgets per page. - operationId: listIngestBudgets - parameters: - - name: limit - in: query - description: Limit the number of budgets returned in the response. The number of budgets returned may be less than the `limit`. - required: false - schema: - maximum: 1000 - minimum: 1 - type: integer - format: int32 - default: 100 - - name: token - in: query - description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. - required: false - schema: - type: string - responses: - '200': - description: A paginated list of budgets. - content: - application/json: - schema: - $ref: '#/components/schemas/ListIngestBudgetsResponse' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - post: - tags: - - ingestBudgetManagementV1 - summary: Create a new ingest budget. - description: Create a new ingest budget. - operationId: createIngestBudget - parameters: [] - requestBody: - description: Information about the new ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudgetDefinition' - required: true - responses: - '200': - description: The ingest budget has been created. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}: - get: - tags: - - ingestBudgetManagementV1 - summary: Get an ingest budget. - description: Get an ingest budget by the given identifier. - operationId: getIngestBudget - parameters: - - name: id - in: path - description: Identifier of ingest budget to return. - required: true - schema: - type: string - responses: - '200': - description: Ingest budget object that was requested. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - put: - tags: - - ingestBudgetManagementV1 - summary: Update an ingest budget. - description: Update an existing ingest budget. All properties specified in the request are required. - operationId: updateIngestBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to update. - required: true - schema: - type: string - requestBody: - description: Information to update about the ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudgetDefinition' - required: true - responses: - '200': - description: The ingest budget was successfully modified. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - delete: - tags: - - ingestBudgetManagementV1 - summary: Delete an ingest budget. - description: Delete an ingest budget with the given identifier. - operationId: deleteIngestBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to delete. - required: true - schema: - type: string - responses: - '204': - description: The ingest budget was deleted successfully. - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}/usage/reset: - post: - tags: - - ingestBudgetManagementV1 - summary: Reset usage. - description: Reset ingest budget's current usage to 0 before the scheduled reset time. - operationId: resetUsage - parameters: - - name: id - in: path - description: Identifier of the ingest budget to reset usage. - required: true - schema: - type: string - responses: - '200': - description: Ingest budget's usage was reset successfully. - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}/collectors: - get: - tags: - - ingestBudgetManagementV1 - summary: Get a list of Collectors. - description: Get a list of Collectors assigned to an ingest budget. The response is paginated with a default limit of 100 Collectors per page. - operationId: getAssignedCollectors - parameters: - - name: id - in: path - description: Identifier of ingest budget to which Collectors are assigned. - required: true - schema: - type: string - - name: limit - in: query - description: Limit the number of Collectors returned in the response. The number of Collectors returned may be less than the `limit`. - required: false - schema: - maximum: 1000 - minimum: 1 - type: integer - format: int32 - default: 100 - - name: token - in: query - description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. - required: false - schema: - type: string - responses: - '200': - description: A paginated list of Collectors. - content: - application/json: - schema: - $ref: '#/components/schemas/ListCollectorIdentitiesResponse' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - /v1/ingestBudgets/{id}/collectors/{collectorId}: - put: - tags: - - ingestBudgetManagementV1 - summary: Assign a Collector to a budget. - description: Assign a Collector to a budget. - operationId: assignCollectorToBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to assign to the Collector. - required: true - schema: - type: string - - name: collectorId - in: path - description: Identifier of the Collector to assign. - required: true - schema: - type: string - responses: - '200': - description: Collector was successfully assigned to the ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - delete: - tags: - - ingestBudgetManagementV1 - summary: Remove Collector from a budget. - description: Remove Collector from a budget. - operationId: removeCollectorFromBudget - parameters: - - name: id - in: path - description: Identifier of the ingest budget to unassign from the Collector. - required: true - schema: - type: string - - name: collectorId - in: path - description: Identifier of the Collector to unassign. - required: true - schema: - type: string - responses: - '200': - description: Collector was successfully unassigned from the ingest budget. - content: - application/json: - schema: - $ref: '#/components/schemas/IngestBudget' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' /v2/ingestBudgets: get: tags: @@ -427,7 +155,7 @@ paths: tags: - ingestBudgetManagementV2 summary: Reset usage. - description: Reset ingest budget's current usage to 0 before the scheduled reset time. + description: Reset ingest budget's current usage to 0 before the scheduled reset time. This is only applicable to `dailyVolume` budgetType. operationId: resetUsageV2 parameters: - name: id @@ -447,7 +175,7 @@ paths: $ref: '#/components/schemas/ErrorResponse' components: schemas: - ListIngestBudgetsResponse: + ListIngestBudgetsResponseV2: required: - data type: object @@ -456,7 +184,7 @@ components: type: array description: List of ingest budgets. items: - $ref: '#/components/schemas/IngestBudget' + $ref: '#/components/schemas/IngestBudgetV2' next: type: string description: Next continuation token. @@ -480,62 +208,12 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - IngestBudget: - allOf: - - $ref: '#/components/schemas/IngestBudgetDefinition' - - $ref: '#/components/schemas/MetadataWithUserInfo' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the ingest budget. - usageBytes: - type: integer - description: Current usage since the last reset, in bytes. - format: int64 - example: 900 - usageStatus: - type: string - description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). - example: Approaching - numberOfCollectors: - type: integer - description: Number of collectors assigned to the ingest budget. - format: int64 - example: 10 - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - IngestBudgetDefinition: + IngestBudgetDefinitionV2: required: - action - capacityBytes - - fieldValue - name - - resetTime - - timezone + - scope type: object properties: name: @@ -544,28 +222,30 @@ components: type: string description: Display name of the ingest budget. example: Developer Budget - fieldValue: + scope: maxLength: 1024 minLength: 1 type: string - description: Custom field value that is used to assign Collectors to the ingest budget. - example: dev_30_gb + description: A scope is a constraint that will be used to identify the messages on which budget needs to be applied. A scope is consists of key and value separated by =. The field must be enabled in the fields table. Value supports wildcard. e.g. _sourceCategory=*prod*payment*, cluster=kafka. If the scope is defined _sourceCategory=*nginx* in this budget will be applied on messages having fields _sourceCategory=prod/nginx, _sourceCategory=dev/nginx, or _sourceCategory=dev/nginx/error + example: _sourceCategory=*prod*nginx* capacityBytes: - minimum: 0 + minimum: 1 type: integer - description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. + description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. format: int64 example: 1000 timezone: type: string description: Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). example: America/Los_Angeles + default: Etc/UTC resetTime: maxLength: 5 minLength: 5 type: string description: Reset time of the ingest budget in HH:MM format. example: '23:30' + default: '00:00' description: maxLength: 1024 minLength: 0 @@ -587,148 +267,19 @@ components: description: The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. format: int32 example: 85 - MetadataWithUserInfo: - required: - - createdAt - - createdByUser - - modifiedAt - - modifiedByUser - type: object - properties: - createdAt: - type: string - description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - nullable: true - createdByUser: - $ref: '#/components/schemas/UserInfo' - modifiedAt: - type: string - description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - nullable: true - modifiedByUser: - $ref: '#/components/schemas/UserInfo' - UserInfo: - required: - - email - - firstName - - id - - lastName - type: object - properties: - id: - type: string - description: User's identifier. - example: 0000000006743FDD - email: - type: string - description: User's email. - example: johndoe@acme.com - firstName: - type: string - description: User's first name. - example: John - lastName: - type: string - description: User's last name. - example: Doe - ListCollectorIdentitiesResponse: - required: - - data - type: object - properties: - data: - type: array - description: List of Collector identities. - items: - $ref: '#/components/schemas/CollectorIdentity' - next: - type: string - description: Next continuation token. - CollectorIdentity: - required: - - id - - name - type: object - properties: - id: - type: string - description: Unique identifier for the Collector. - name: - type: string - description: The name of the Collector. - ListIngestBudgetsResponseV2: - required: - - data - type: object - properties: - data: - type: array - description: List of ingest budgets. - items: - $ref: '#/components/schemas/IngestBudgetV2' - next: - type: string - description: Next continuation token. IngestBudgetV2: - allOf: - - $ref: '#/components/schemas/IngestBudgetDefinitionV2' - - required: - - createdAt - - createdBy - - id - - modifiedAt - - modifiedBy - - version - properties: - id: - type: string - description: Unique identifier for the ingest budget. - example: 0000000003343FDD - usageBytes: - type: integer - description: Current usage since the last reset, in bytes. - format: int64 - example: 900 - usageStatus: - pattern: ^(Normal|Approaching|Exceeded|Unknown)$ - type: string - description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). - example: Approaching - x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown` - createdAt: - type: string - description: The creation timestamp in UTC of the Ingest Budget. - format: date-time - example: '2018-10-16T09:10:00Z' - createdBy: - type: string - description: The identifier of the user who created the Ingest Budget. - example: 0000000006743FDD - modifiedAt: - type: string - description: The modified timestamp in UTC of the Ingest Budget. - format: date-time - example: '2018-10-16T09:10:00Z' - modifiedBy: - type: string - description: The identifier of the user who modified the Ingest Budget. - example: 0000000001243FDD - budgetVersion: - type: integer - description: The version of the Ingest Budget - format: int32 - example: 2 - IngestBudgetDefinitionV2: + type: object required: - action - capacityBytes - name - - resetTime - scope - - timezone - type: object + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - version properties: name: maxLength: 128 @@ -745,19 +296,21 @@ components: capacityBytes: minimum: 1 type: integer - description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. + description: Capacity of the ingest budget, in bytes. It takes a few minutes for Collectors to stop collecting when capacity is reached. We recommend setting a soft limit that is lower than your needed hard limit. The capacity bytes unit varies based on the budgetType field. For `dailyVolume` budgetType the capacity specified is in bytes/day whereas for `minuteVolume` budgetType its bytes/min. format: int64 example: 1000 timezone: type: string description: Time zone of the reset time for the ingest budget. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). example: America/Los_Angeles + default: Etc/UTC resetTime: maxLength: 5 minLength: 5 type: string description: Reset time of the ingest budget in HH:MM format. example: '23:30' + default: '00:00' description: maxLength: 1024 minLength: 0 @@ -779,488 +332,165 @@ components: description: The threshold as a percentage of when an ingest budget's capacity usage is logged in the Audit Index. format: int32 example: 85 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + id: + type: string + description: Unique identifier for the ingest budget. + example: 0000000003343FDD + usageBytes: + type: integer + description: Current usage since the last reset, in bytes. + format: int64 + example: 900 + usageStatus: + pattern: ^(Normal|Approaching|Exceeded|Unknown)$ + type: string + description: Status of the current usage. Can be `Normal`, `Approaching`, `Exceeded`, or `Unknown` (unable to retrieve usage). + example: Approaching + x-pattern-message: must be either `Normal`, `Approaching`, `Exceeded`, or `Unknown` + createdAt: + type: string + description: The creation timestamp in UTC of the Ingest Budget. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the Ingest Budget. + example: 0000000006743FDD + modifiedAt: + type: string + description: The modified timestamp in UTC of the Ingest Budget. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: The identifier of the user who modified the Ingest Budget. + example: 0000000001243FDD + budgetVersion: + type: integer + description: The version of the Ingest Budget + format: int32 + example: 2 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 x-stackQL-resources: - ingest_budgets_v1: - id: sumologic.ingest_budgets.ingest_budgets_v1 - name: ingest_budgets_v1 - title: Ingest_budgets v1 - methods: - listIngestBudgets: - operation: - $ref: '#/paths/~1v1~1ingestBudgets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - createIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets/post' - response: - mediaType: application/json - openAPIDocKey: '200' - getIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - updateIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - deleteIngestBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/getIngestBudget' - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/listIngestBudgets' - insert: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/createIngestBudget' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v1/methods/deleteIngestBudget' - ingest_budgets_v2: - id: sumologic.ingest_budgets.ingest_budgets_v2 - name: ingest_budgets_v2 - title: Ingest_budgets v2 + ingest_budgets: + id: sumologic.ingest_budgets.ingest_budgets + name: ingest_budgets + title: Ingest Budgets methods: - listIngestBudgetsV2: + list: operation: $ref: '#/paths/~1v2~1ingestBudgets/get' response: mediaType: application/json openAPIDocKey: '200' - createIngestBudgetV2: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1ingestBudgets/post' response: mediaType: application/json openAPIDocKey: '200' - getIngestBudgetV2: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v2~1ingestBudgets~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateIngestBudgetV2: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v2~1ingestBudgets~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteIngestBudgetV2: - operation: - $ref: '#/paths/~1v2~1ingestBudgets~1{id}/delete' - response: + request: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/getIngestBudgetV2' - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/listIngestBudgetsV2' - insert: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/createIngestBudgetV2' - update: [] + nativeCasing: camel delete: - - $ref: '#/components/x-stackQL-resources/ingest_budgets_v2/methods/deleteIngestBudgetV2' - usage_reset: - id: sumologic.ingest_budgets.usage_reset - name: usage_reset - title: Usage_reset - methods: - resetUsage: operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1usage~1reset/post' + $ref: '#/paths/~1v2~1ingestBudgets~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - resetUsageV2: + openAPIDocKey: '204' + request: + nativeCasing: camel + reset_usage: operation: $ref: '#/paths/~1v2~1ingestBudgets~1{id}~1usage~1reset/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - collectors: - id: sumologic.ingest_budgets.collectors - name: collectors - title: Collectors - methods: - getAssignedCollectors: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1collectors/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.data - assignCollectorToBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1collectors~1{collectorId}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - removeCollectorFromBudget: - operation: - $ref: '#/paths/~1v1~1ingestBudgets~1{id}~1collectors~1{collectorId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/collectors/methods/getAssignedCollectors' - insert: [] - update: [] + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/get' + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/collectors/methods/removeCollectorFromBudget' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/ingest_budgets/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - ingest_budgets - description: ingestBudgets - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/log_searches.yaml b/providers/src/sumologic/v00.00.00000/services/log_searches.yaml index cedbaf5e..c7bfaafb 100644 --- a/providers/src/sumologic/v00.00.00000/services/log_searches.yaml +++ b/providers/src/sumologic/v00.00.00000/services/log_searches.yaml @@ -1,4 +1,161 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Log Searches API + description: Saved and scheduled log searches, and estimated usage of a log search across data tiers. + version: 1.0.0 paths: + /v1/logSearches: + get: + tags: + - logSearchesManagement + summary: List all saved log searches. + description: List all saved log searches viewable by the user. + operationId: listLogSearches + parameters: + - name: limit + in: query + description: Limit the number of log searches returned in the response. The number of log searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of log searches under the Personal folder created by the user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedLogSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - logSearchesManagement + summary: Save a log search. + description: Save the log search in the content library. + operationId: createLogSearch + parameters: [] + requestBody: + description: The definition of the saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/SaveLogSearchRequest' + required: true + responses: + '200': + description: Newly saved log search. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createLogSearch + /v1/logSearches/{id}: + get: + tags: + - logSearchesManagement + summary: Get the saved log search. + description: Get a saved log search from the content library by identifier. + operationId: getLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + '200': + description: Saved log search that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getLogSearch + put: + tags: + - logSearchesManagement + summary: Update the saved log Search. + description: Update the saved log search with the specified identifier. Partial update is not supported, you must provide values for all fields. + operationId: updateLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + requestBody: + description: An updated saved log search definition. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchDefinition' + required: true + responses: + '200': + description: The saved log search that was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearch' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateLogSearch + delete: + tags: + - logSearchesManagement + summary: Delete the saved log search. + description: Delete the saved log search from the content library. + operationId: deleteLogSearch + parameters: + - name: id + in: path + description: Identifier of the saved log search. + required: true + schema: + type: string + responses: + '204': + description: The saved log search was successfully deleted. + default: + description: The operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteLogSearch /v1/logSearches/estimatedUsage: post: tags: @@ -57,29 +214,86 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByMeteringType: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per metering type. + description: | + Gets the estimated volume of data, per metering type, that would be scanned for running a given log search for a given timerange. + operationId: getLogSearchEstimatedUsageByMeteringType + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + '200': + description: Log search information along with its metering type wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByMeteringTypeDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/logSearches/estimatedUsageByView: + post: + tags: + - logSearchesEstimatedUsage + summary: Gets estimated usage details per view. + description: | + Gets the estimated volume of data, per view, that would be scanned for running a given log search for a given timerange. + operationId: logSearchesEstimatedUsageByView + parameters: [] + requestBody: + description: The definition of the log search estimated usage. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV3' + required: true + responses: + '200': + description: Log search information along with its view wise estimated usage details. + content: + application/json: + schema: + $ref: '#/components/schemas/LogSearchEstimatedUsageByViewDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: - LogSearchEstimatedUsageRequest: - allOf: - - $ref: '#/components/schemas/LogSearchQueryTimeRangeBase' - - required: - - timezone - type: object - properties: - timezone: - type: string - description: | - Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - LogSearchEstimatedUsageDefinition: - allOf: - - $ref: '#/components/schemas/LogSearchEstimatedUsageRequest' - - required: - - estimatedUsageDetails - type: object - properties: - estimatedUsageDetails: - $ref: '#/components/schemas/EstimatedUsageDetails' + PaginatedLogSearches: + required: + - logSearches + type: object + properties: + logSearches: + type: array + description: List of log searches. + items: + $ref: '#/components/schemas/LogSearch' + warnings: + type: array + description: List of warning messages for invalid log search definitions. + items: + type: string + example: 'Invalid saved search: . Please validate your saved search.' + token: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc ErrorResponse: required: - errors @@ -100,63 +314,95 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - LogSearchQueryTimeRangeBase: - description: Definition of a log search with query and timerange. - allOf: - - $ref: '#/components/schemas/LogSearchQueryTimeRangeBaseExceptParsingMode' - - type: object - properties: - parsingMode: - type: string - description: |- - Define the parsing mode to scan the JSON format log messages. Possible values are: - 1. `AutoParse` - 2. `Manual` - In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). - example: AutoParse - default: Manual - EstimatedUsageDetails: + SaveLogSearchRequest: type: object - properties: - dataScannedInBytes: - type: integer - description: Amount of data scanned in bytes, to run the query. - format: int64 - example: 114086541 - ErrorDescription: + description: The definition of the log search to save in the content library. required: - - code - - message - type: object + - queryString + - timeRange + - name + - parentId properties: - code: + queryString: + maxLength: 15000 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - LogSearchQueryTimeRangeBaseExceptParsingMode: + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + parentId: + type: string + description: Identifier of a folder where to save the log search. + example: 000000000000001A + LogSearch: + x-tf-generated-properties: id,parentId,name,description,schedule,queryString,timeRange,runByReceiptTime,queryParameters,parsingMode,intervalTimeType + x-tf-resource-name: LogSearch + type: object + description: Definition of the saved log search with query and timerange. required: - queryString - timeRange - type: object + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id properties: queryString: + maxLength: 15000 type: string description: Query to perform. - example: error | count by _sourceCategory + example: error {{sourceCategory}}| count by _sourceCategory timeRange: $ref: '#/components/schemas/ResolvableTimeRange' runByReceiptTime: @@ -165,459 +411,1086 @@ components: example: false default: false queryParameters: + maxLength: 50 type: array - description: Definition of the query parameters. + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' items: $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' - description: Definition of a log search with query and timerange. - ResolvableTimeRange: - required: - - type - type: object - properties: - type: + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ type: string - description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. - example: - type: BeginBoundedTimeRange - from: - type: RelativeTimeRangeBoundary - relativeTime: '-15m' - discriminator: - propertyName: type - LogSearchQueryParameterSyncDefinitionBase: + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ + type: string + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the saved log search. + example: 000000000000001A + parentId: + type: string + description: Identifier of the parent element in the content library, such as folder. + example: 0000000000007D2B + LogSearchDefinition: + type: object + description: Definition of the saved log search with query and timerange. required: - - dataType + - queryString + - timeRange - name - - value - type: object properties: - name: + queryString: + maxLength: 15000 type: string - description: The name of the parameter. - description: + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ type: string - description: A description of the parameter. - dataType: - pattern: ^(NUMBER|STRING|QUERY_FRAGMENT|SEARCH_KEYWORD)$ + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ type: string description: |- - The data type of the parameter. Supported values are: - 1. `NUMBER` - 2. `STRING` - 3. `QUERY_FRAGMENT` - 4. `SEARCH_KEYWORD` - value: + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + name: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()\\]+$ type: string - description: A value for the parameter. Should be compatible with the type set in dataType field. - LogSearchEstimatedUsageRequestV2: - allOf: - - $ref: '#/components/schemas/LogSearchQueryTimeRangeBaseExceptParsingMode' - - required: - - timezone - type: object - properties: - timezone: - type: string - description: | - Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - LogSearchEstimatedUsageByTierDefinition: - allOf: - - $ref: '#/components/schemas/LogSearchEstimatedUsageRequestV2' - - required: - - estimatedUsageDetails - type: object - properties: - estimatedUsageDetails: - type: array - items: - $ref: '#/components/schemas/EstimatedUsageDetailsWithTier' - EstimatedUsageDetailsWithTier: + description: Name of the item in the content library. + example: Short title + description: + maxLength: 255 + type: string + description: Item description in the content library. + example: Long and detailed description + schedule: + $ref: '#/components/schemas/LogSearchScheduleSyncDefinition' + properties: + maxLength: 65536 + type: string + description: | + Aggregate Results Settings and View configurations, Legends settings, and different visualisation settings overrides. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ "key": "value" }' + LogSearchEstimatedUsageRequest: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - timezone type: object properties: - tier: + queryString: + maxLength: 15000 type: string - description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent - example: Continuous - dataScannedInBytes: - type: integer - description: Amount of data scanned in bytes, to run the query. - format: int64 - example: 114086541 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} - x-stackQL-resources: + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + LogSearchEstimatedUsageDefinition: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + estimatedUsageDetails: + $ref: '#/components/schemas/EstimatedUsageDetails' + LogSearchEstimatedUsageRequestV2: + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + description: Definition of the saved log search with query and timerange. + LogSearchEstimatedUsageByTierDefinition: + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithTier' + description: Definition of the saved log search with query and timerange. + LogSearchEstimatedUsageRequestV3: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + LogSearchEstimatedUsageByMeteringTypeDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchEstimatedUsageByViewDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + - timezone + - estimatedUsageDetails + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + timezone: + type: string + description: | + Time zone to get the estimated usage details. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + emulateSearchContext: + $ref: '#/components/schemas/EmulateSearchContext' + estimatedUsageDetails: + type: array + items: + $ref: '#/components/schemas/EstimatedUsageDetailsPerView' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + LogSearchQueryTimeRangeBase: + description: Definition of the saved log search with query and timerange. + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + LogSearchScheduleSyncDefinition: + required: + - parseableTimeRange + - scheduleType + - timeZone + type: object + properties: + cronExpression: + type: string + description: Cron-like expression specifying the search's schedule. Field scheduleType must be set to "Custom", otherwise, scheduleType takes precedence over cronExpression. + example: 0 0/15 * * * ? * + displayableTimeRange: + type: string + description: A human-friendly text describing the query time range. For e.g. "-2h", "last three days", "team default time". This value can not be set via API. + example: '-2h' + parseableTimeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: Time zone identifier for time specification. Either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used. The GMT time zone is chosen if the given time zone cannot be identified. + threshold: + $ref: '#/components/schemas/LogSearchNotificationThresholdSyncDefinition' + notification: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + scheduleType: + pattern: ^(RealTime|15Minutes|1Hour|2Hours|4Hours|6Hours|8Hours|12Hours|1Day|1Week|Custom)$ + type: string + description: |- + Run schedule of the scheduled search. Set to "Custom" to specify the schedule with a CRON expression.Please note that with Custom, 1Day and 1Week schedule types you need to provide the corresponding cron expression to determine when to actually run the search. e.g. Sample Valid Cron for 1Day is "0 0 16 ? * 2-6 *". Possible schedule types are: + - `RealTime` + - `15Minutes` + - `1Hour` + - `2Hours` + - `4Hours` + - `6Hours` + - `8Hours` + - `12Hours` + - `1Day` + - `1Week` + - `Custom` + muteErrorEmails: + type: boolean + description: If enabled, emails are not sent out in case of errors with the search. + parameters: + maxLength: 50 + type: array + description: 'A list of scheduled search template parameters to be used while executing the query. This is different from the queryParameters field in parent object as this field will be used for execution as per the schedule. The parent object field is for search itself, not part of execution. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/ScheduleSearchParameterSyncDefinition' + notifications: + type: array + description: List of notification actions for this schedule. Mutually exclusive with 'notification' — exactly one of these fields must be provided. Sending both or neither returns a 400 error. Supports multiple notification channels (e.g., email and webhook) for a single scheduled search execution. + items: + $ref: '#/components/schemas/ScheduleNotificationSyncDefinition' + description: Schedule definition for a log search. Exactly one of 'notification' (single notification) or 'notifications' (multiple notification actions) must be provided. Sending both or neither will result in a 400 error. + EstimatedUsageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + LogSearchQueryTimeRangeBaseExceptParsingMode: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Query to perform. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Definition of the saved log search with query and timerange. + EstimatedUsageDetailsWithTier: + type: object + properties: + tier: + type: string + description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent + example: Continuous + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + LogSearchQueryEstimationQueryDefinition: + description: Definition of the log search with query and timerange. + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + runByReceiptTime: + type: boolean + description: This has the value `true` if the search is to be run by receipt time and `false` if it is to be run by message time. + example: false + default: false + EmulateSearchContext: + type: object + properties: + roleIds: + type: array + description: List of role IDs to emulate the search context for. + example: + - 000000000000000C + items: + type: string + userId: + type: string + description: User ID to emulate the search context for. + example: 000000000000019F + description: | + Contains keys like "roleIds" with a list of role IDs or "userId" as a string. + EstimatedUsageDetailsWithMeteringType: + type: object + properties: + meteringType: + type: string + description: | + Name of the metering type. Metering type indicates how the data scanned within a particular data tier is actually metered and billed. Supported Values are Continuous, Frequent, Infrequent, ContinuousSecurity and FlexSecurity. + example: Continuous + dataScannedInBytes: + type: integer + description: Amount of data scanned in bytes, to run the query. + format: int64 + example: 114086541 + tier: + type: string + description: Name of the data tier. Supported Values are Continuous, Frequent, Infrequent and Flex. + example: Continuous + scanCreditAccounted: + type: boolean + description: | + Whether particular metering type is accounted against a customer's credit on a per scan basis. e.g Data belonging to "Flex" and "Infrequent" metering type is accounted for credits on per scan basis. For other metering types, eg. "Continuous" it's charged upfront during ingestion. + example: false + description: Estimated Usage details for the given log search query with the above timerange. + EstimatedUsageDetailsPerView: + required: + - usageDetails + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view for which usage is estimated. + usageDetails: + type: array + description: The scanning and data retrieval usages to run the query per view. + items: + $ref: '#/components/schemas/EstimatedUsageDetailsWithMeteringType' + LogSearchQueryParsingMode: + type: object + properties: + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + description: Definition of log search parsing mode + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + LogSearchNotificationThresholdSyncDefinition: + required: + - count + - operator + type: object + properties: + thresholdType: + pattern: ^(message|group)$ + type: string + description: |- + This property is deprecated. The system will automatically infer the value of this field from the query going forward, so the user-specified value will no longer be honored. + Threshold type. Possible values are: + 1. `message` + 2. `group` + + Use `group` as threshold type if the search query is of aggregate type. For non-aggregate queries, set it to `message`. + operator: + pattern: ^(eq|gt|ge|lt|le)$ + type: string + description: |- + Criterion to be applied when comparing actual result count with expected count. Possible values are: + 1. `eq` + 2. `gt` + 3. `ge` + 4. `lt` + 5. `le` + count: + type: integer + description: Expected result count. + ScheduleNotificationSyncDefinition: + required: + - taskType + type: object + properties: + taskType: + type: string + description: Delivery channel for notifications. + discriminator: + propertyName: taskType + ScheduleSearchParameterSyncDefinition: + required: + - name + - value + type: object + properties: + name: + maxLength: 60 + type: string + description: Name of scheduled search parameter. + value: + maxLength: 300 + type: string + description: Value of scheduled search parameter. + LogSearchQueryParameterSyncDefinitionBase: + required: + - dataType + - name + - value + type: object + properties: + autoComplete: + $ref: '#/components/schemas/AutoCompleteDefinition' + name: + maxLength: 50 + pattern: ^[a-zA-Z0-9_]+$ + type: string + description: The name of the parameter. + example: sourceCategory + x-pattern-message: Name must be between 1 and 50 Characters. Can only consist alphanumeric and underscore characters. + description: + maxLength: 256 + pattern: ^[a-zA-Z0-9@ \-_\.]+$ + type: string + description: A description of the parameter. + example: source category for the string + x-pattern-message: Description must be between 1 and 256 Characters. Can only consist alphanumeric, @, underscore and dash characters. + dataType: + pattern: ^(NUMBER|STRING|ANY|KEYWORD)$ + type: string + description: |- + The data type of the parameter. Supported values are: + 1. `NUMBER` + 2. `STRING` + 3. `ANY` + 4. `KEYWORD` + example: STRING + value: + maxLength: 256 + type: string + description: A value for the parameter. Should be compatible with the type set in dataType field. + example: apache + LogSearchQueryEstimationBaseDefinition: + required: + - queryString + - timeRange + type: object + properties: + queryString: + maxLength: 15000 + type: string + description: Log search Query to compute the estimated volume of data scanned. + example: error {{sourceCategory}}| count by _sourceCategory + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + queryParameters: + maxLength: 50 + type: array + description: 'Values for search template used in the search query. Learn more about the search templates here : https://help.sumologic.com/docs/search/get-started-with-search/build-search/search-templates/' + items: + $ref: '#/components/schemas/LogSearchQueryParameterSyncDefinitionBase' + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime, or searchableTime. By default, the search will run by messageTime. If both runByReceiptTime and intervalTimeType parameters are present then the preference will be given to the intervalTimeType. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + description: Base definition of the log search with query and timerange (without runByReceiptTime). + AutoCompleteDefinition: + required: + - type + type: object + properties: + type: + type: string + description: The autocomplete parameter type. + example: SKIP_AUTOCOMPLETE + autoCompleteKey: + type: string + description: The autocomplete key to be used to fetch autocomplete values. + example: Ephemeral-3644138589235809747-1583470806220-parameter + autoCompleteValues: + type: array + description: The array of label-value pairs for autocomplete. + items: + $ref: '#/components/schemas/AutoCompleteValueSyncDefinition' + lookupMetaData: + $ref: '#/components/schemas/AutoCompleteLookupMetaData' + AutoCompleteValueSyncDefinition: + required: + - label + - value + type: object + properties: + label: + type: string + description: The label of the autocomplete value. + value: + type: string + description: The value of the autocomplete value. + AutoCompleteLookupMetaData: + type: object + properties: + fileName: + type: string + description: The lookup file name to use as a source for autocomplete values. + example: users.csv + valueColumn: + type: string + description: The column from the lookup file to use as the value. + example: user_id + labelColumn: + type: string + description: The column from the lookup file to use as the label. + example: user_name + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + x-stackQL-resources: + log_searches: + id: sumologic.log_searches.log_searches + name: log_searches + title: Log Searches + methods: + list: + operation: + $ref: '#/paths/~1v1~1logSearches/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.logSearches + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: token + location: body + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1logSearches~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1logSearches~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/get' + - $ref: '#/components/x-stackQL-resources/log_searches/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/log_searches/methods/delete' + replace: [] estimated_usage: id: sumologic.log_searches.estimated_usage name: estimated_usage - title: Estimated_usage + title: Estimated Usage methods: - getLogSearchEstimatedUsage: + estimate: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logSearches~1estimatedUsage/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - estimated_usage_by_tier: - id: sumologic.log_searches.estimated_usage_by_tier - name: estimated_usage_by_tier - title: Estimated_usage_by_tier - methods: - getLogSearchEstimatedUsageByTier: + request: + mediaType: application/json + nativeCasing: camel + estimate_by_tier: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logSearches~1estimatedUsageByTier/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + estimate_by_metering_type: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches~1estimatedUsageByMeteringType/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + estimate_by_view: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1logSearches~1estimatedUsageByView/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: [] insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - log_searches - description: logSearches - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml b/providers/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml index fbb83dce..82993a55 100644 --- a/providers/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml +++ b/providers/src/sumologic/v00.00.00000/services/logs_data_forwarding.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Logs Data Forwarding API + description: Log data forwarding destinations (AWS S3) and forwarding rules per partition. + version: 1.0.0 paths: /v1/logsDataForwarding/destinations: get: @@ -63,7 +68,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-create: createDataForwardingDestination /v1/logsDataForwarding/destinations/{id}: get: tags: @@ -92,7 +96,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-read: getDataForwardingDestination put: tags: - logsDataForwardingManagement @@ -127,7 +130,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-update: updateDataForwardingDestination delete: tags: - logsDataForwardingManagement @@ -151,7 +153,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-delete: deleteDataForwardingDestination /v1/logsDataForwarding/rules: get: tags: @@ -216,7 +217,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-create: createDataForwardingRuleTF /v1/logsDataForwarding/rules/{indexId}: get: tags: @@ -245,7 +245,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-read: getDataForwardingRuleTF put: tags: - logsDataForwardingManagement @@ -280,7 +279,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-update: updateDataForwardingRuleTF delete: tags: - logsDataForwardingManagement @@ -304,7 +302,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' - x-tf-delete: deleteDataForwardingRuleTF components: schemas: GetDataForwardingDestinations: @@ -339,65 +336,110 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - BucketDefinition: - allOf: - - $ref: '#/components/schemas/CreateBucketDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - bucketName - - destinationName - - id - properties: - id: - type: string - description: The unique identifier of the data forwarding destination. - example: '1' - invalidatedBySystem: - type: boolean - description: True if invalidated by the system. - x-tf-generated-properties: id,bucketName,destinationName,description,authenticationMode,accessKeyId,secretAccessKey,roleArn,region,encrypted,enabled - x-tf-resource-name: DataForwardingDestination - ErrorDescription: - required: - - code - - message + CreateBucketDefinition: type: object + required: + - authenticationMode + - bucketName + - destinationName properties: - code: + destinationName: type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: Name of the S3 data forwarding destination. + example: df-destination + description: type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Description of the S3 data forwarding destination. + authenticationMode: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreateBucketDefinition: - allOf: - - $ref: '#/components/schemas/UpdateBucketDefinition' - - $ref: '#/components/schemas/CreateBucketDefinitionItems' - MetadataModel: + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + BucketDefinition: + type: object required: + - authenticationMode + - bucketName + - destinationName - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + destinationName: + type: string + description: Name of the S3 data forwarding destination. + example: df-destination + description: + type: string + description: Description of the S3 data forwarding destination. + authenticationMode: + type: string + description: 'AWS IAM authentication method used for access. Possible values are: 1. `AccessKey` 2. `RoleBased`' + example: RoleBased + accessKeyId: + type: string + description: The AWS Access ID to access the S3 bucket. + example: accessKeyId + secretAccessKey: + type: string + description: The AWS Secret Key to access the S3 bucket. + example: secretAccessKey + roleArn: + type: string + description: The AWS Role ARN to access the S3 bucket. + example: roleArn + region: + type: string + description: The region where the S3 bucket is located. + example: us-east-1 + encrypted: + type: boolean + description: Enable S3 server-side encryption. + enabled: + type: boolean + description: True if the destination is Active. + example: true + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -406,11 +448,18 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding destination. + example: '1' + invalidatedBySystem: + type: boolean + description: True if invalidated by the system. UpdateBucketDefinition: required: - authenticationMode @@ -450,19 +499,6 @@ components: type: boolean description: True if the destination is Active. example: true - CreateBucketDefinitionItems: - required: - - authenticationMode - - bucketName - - destinationName - type: object - properties: - bucketName: - pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$ - type: string - description: The name of the Amazon S3 bucket. - example: df-bucket - x-pattern-message: Must be a valid AWS S3 Bucket name. GetRulesAndBucketsResult: type: object properties: @@ -475,31 +511,108 @@ components: type: string description: Next continuation token. example: VEZuRU4veXF2UWFCUURYSDNQUzJxWlpRRUsvTlBieXA - RuleAndBucketDetail: - allOf: - - $ref: '#/components/schemas/DataForwardingRule' - - type: object - properties: - bucket: - $ref: '#/components/schemas/logs-data-forwarding-rule-management' + CreateDataForwardingRule: + required: + - destinationId + - indexId + type: object + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' DataForwardingRule: - allOf: - - $ref: '#/components/schemas/CreateDataForwardingRule' - - $ref: '#/components/schemas/MetadataModel' - - type: object - properties: - id: - type: string - description: The unique identifier of the data forwarding rule. - example: '1' - x-tf-generated-properties: id - x-tf-resource-name: DataForwardingRule - logs-data-forwarding-rule-management: + required: + - destinationId + - indexId + - createdAt + - createdBy + - modifiedAt + - modifiedBy type: object - CreateDataForwardingRule: + properties: + indexId: + type: string + description: The `id` of the Partition or Scheduled View the rule applies to. + example: '1' + destinationId: + type: string + description: The data forwarding destination id. + example: '1' + enabled: + type: boolean + description: True when the data forwarding rule is enabled. + example: true + fileFormat: + type: string + description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. + example: '{index}_{day}_{hour}_{minute}_{second}' + payloadSchema: + pattern: ^(builtInFields|allFields|raw)$ + type: string + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' + format: + pattern: ^(csv|json|text)$ + type: string + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. + example: csv + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding rule. + example: '1' + RuleAndBucketDetail: required: - destinationId - indexId + - createdAt + - createdBy + - modifiedAt + - modifiedBy type: object properties: indexId: @@ -519,19 +632,41 @@ components: description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. example: '{index}_{day}_{hour}_{minute}_{second}' payloadSchema: - pattern: ^(default|builtInFields|allFields)$ + pattern: ^(builtInFields|allFields|raw)$ type: string - description: Schema for the payload. - example: default - default: default - x-pattern-message: 'should be one of the following: ''default'', ''builtInFields'', or ''allFields''' + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' format: - pattern: ^(csv|raw|json)$ + pattern: ^(csv|json|text)$ type: string - description: Format of the payload. + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. example: csv - default: csv - x-pattern-message: 'should be one of the following: ''csv'', ''raw'', or ''json''' + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: The unique identifier of the data forwarding rule. + example: '1' + bucket: + $ref: '#/components/schemas/logs-data-forwarding-rule-management' UpdateDataForwardingRule: type: object properties: @@ -548,448 +683,255 @@ components: description: Specify the path prefix to a directory in the S3 bucket and how to format the file name. example: '{index}_{day}_{hour}_{minute}_{second}' payloadSchema: - pattern: ^(default|builtInFields|allFields)$ + pattern: ^(builtInFields|allFields|raw)$ type: string - description: Schema for the payload. - example: default - default: default - x-pattern-message: 'should be one of the following: ''default'', ''builtInFields'', or ''allFields''' + description: Schema for the payload. Default value of the payload schema is "allFields" for scheduled view, and "builtInFields" for partition. "raw" payloadSchema should be used in conjunction with "text" format and vice-versa. + example: builtInFields + x-pattern-message: 'should be one of the following: ''builtInFields'', ''allFields'' or ''raw''' format: - pattern: ^(csv|raw|json)$ + pattern: ^(csv|json|text)$ type: string - description: Format of the payload. + description: Format of the payload. Default format will be "csv". "text" format should be used in conjunction with "raw" payloadSchema and vice-versa. example: csv - default: csv - x-pattern-message: 'should be one of the following: ''csv'', ''raw'', or ''json''' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + x-pattern-message: 'should be one of the following: ''csv'', ''json'' or ''text''' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + CreateBucketDefinitionItems: + required: + - authenticationMode + - bucketName + - destinationName + type: object + properties: + bucketName: + pattern: (?!(^xn--|-s3alias$))^[a-z0-9][a-z0-9-.]{1,61}[a-z0-9]$ + type: string + description: The name of the Amazon S3 bucket. + example: df-bucket + x-pattern-message: Must be a valid AWS S3 Bucket name. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + logs-data-forwarding-rule-management: + type: string + description: (opaque JSON object) x-stackQL-resources: destinations: id: sumologic.logs_data_forwarding.destinations name: destinations title: Destinations methods: - getDataForwardingBuckets: + list: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations/get' response: mediaType: application/json openAPIDocKey: '200' - createDataForwardingBucket: + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: nextToken + location: body + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations/post' response: mediaType: application/json openAPIDocKey: '200' - getDataForwardingDestination: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - UpdateDataForwardingBucket: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDataForwardingBucket: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1destinations~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/destinations/methods/getDataForwardingDestination' - - $ref: '#/components/x-stackQL-resources/destinations/methods/getDataForwardingBuckets' + - $ref: '#/components/x-stackQL-resources/destinations/methods/get' + - $ref: '#/components/x-stackQL-resources/destinations/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/destinations/methods/createDataForwardingBucket' - update: [] + - $ref: '#/components/x-stackQL-resources/destinations/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/destinations/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/destinations/methods/deleteDataForwardingBucket' + - $ref: '#/components/x-stackQL-resources/destinations/methods/delete' + replace: [] rules: id: sumologic.logs_data_forwarding.rules name: rules title: Rules methods: - getRulesAndBuckets: + list: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules/get' response: mediaType: application/json openAPIDocKey: '200' - createDataForwardingRule: + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: nextToken + location: body + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules/post' response: mediaType: application/json openAPIDocKey: '200' - getDataForwardingRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules~1{indexId}/get' response: mediaType: application/json openAPIDocKey: '200' - updateDataForwardingRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules~1{indexId}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteDataForwardingRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1logsDataForwarding~1rules~1{indexId}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/rules/methods/getDataForwardingRule' - - $ref: '#/components/x-stackQL-resources/rules/methods/getRulesAndBuckets' + - $ref: '#/components/x-stackQL-resources/rules/methods/get' + - $ref: '#/components/x-stackQL-resources/rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/rules/methods/createDataForwardingRule' - update: [] + - $ref: '#/components/x-stackQL-resources/rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/rules/methods/deleteDataForwardingRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - logs_data_forwarding - description: logsDataForwarding - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/lookup_tables.yaml b/providers/src/sumologic/v00.00.00000/services/lookup_tables.yaml index 1eefb2dc..d2eea606 100644 --- a/providers/src/sumologic/v00.00.00000/services/lookup_tables.yaml +++ b/providers/src/sumologic/v00.00.00000/services/lookup_tables.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Lookup Tables API + description: Lookup tables, their rows, file uploads and the asynchronous lookup jobs. + version: 1.0.0 paths: /v1/lookupTables: post: @@ -6,8 +11,8 @@ paths: summary: Create a lookup table. description: |- Create a new lookup table by providing a schema and specifying its configuration. Providing parentFolderId - is mandatory. Use the [getItemByPath](#operation/getItemByPath) endpoint to get content id of a path. - Please check [Content management API](#tag/contentManagement) and [Folder management API](#tag/folderManagement) for all available options. + is mandatory. Use the getItemByPath endpoint to get content id of a path. + Please check Content management API and Folder management API for all available options. operationId: createTable parameters: [] requestBody: @@ -132,7 +137,7 @@ paths: example: 0000000001C41EE4 - name: merge in: query - description: This indicates whether the file contents will be merged with existing data in the lookup table or not. If this is true then data with the same primary keys will be updated while the rest of the rows will be appended. By default, merge is false. The response includes a request identifier that you need to use in the [Request Status API](#operation/requestStatus) to track the status of the upload request. + description: This indicates whether the file contents will be merged with existing data in the lookup table or not. If this is true then data with the same primary keys will be updated while the rest of the rows will be appended. By default, merge is false. The response includes a request identifier that you need to use in the Request Status API to track the status of the upload request. schema: type: boolean example: true @@ -299,66 +304,11 @@ components: required: - name - parentFolderId - description: Definition of the lookup table. - allOf: - - $ref: '#/components/schemas/ExportableLookupTableInfo' - - properties: - name: - maxLength: 255 - type: string - description: The name of the lookup table. - example: SampleLookupTable - parentFolderId: - type: string - description: The parent-folder-path identifier of the lookup table in the Library. - example: 0000000001C41EE4 - LookupTable: - required: - - id - description: Lookup table definition and metadata. - allOf: - - $ref: '#/components/schemas/MetadataModel' - - $ref: '#/components/schemas/LookupTableDefinition' - - properties: - id: - type: string - description: Identifier of the lookup table as a content item. - example: 0000000001C41EE4 - contentPath: - type: string - description: 'Address/path of the parent folder of this lookup table in content library. For example, a lookup table existing in the personal/lookupTable folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable' - example: /Library/Users/johndoe@acme.com/lookupTable - size: - type: integer - description: The current size of the lookup table in bytes - format: int64 - example: 100 - ErrorResponse: - required: - - errors - - id - type: object - properties: - id: - type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. - example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - ExportableLookupTableInfo: - required: - description - fields - primaryKeys type: object + description: Definition of the lookup table. properties: description: maxLength: 1000 @@ -395,20 +345,35 @@ components: example: DeleteOldData default: StopIncomingMessages x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` - description: The lookup table definition independent of its location in the Library and name. - MetadataModel: + name: + maxLength: 255 + type: string + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in the Library. + example: 0000000001C41EE4 + LookupTable: required: + - id - createdAt - createdBy - modifiedAt - modifiedBy + - name + - parentFolderId + - description + - fields + - primaryKeys type: object + description: Lookup table definition and metadata. properties: createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -417,58 +382,88 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 - ErrorDescription: - required: - - code - - message - type: object - properties: - code: + description: + maxLength: 1000 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + name: + maxLength: 255 type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - LookupTableField: + description: The name of the lookup table. + example: SampleLookupTable + parentFolderId: + type: string + description: The parent-folder-path identifier of the lookup table in the Library. + example: 0000000001C41EE4 + id: + type: string + description: Identifier of the lookup table as a content item. + example: 0000000001C41EE4 + contentPath: + type: string + description: 'Address/path of the parent folder of this lookup table in content library. For example, a lookup table existing in the personal/lookupTable folder for user johndoe would be: /Library/Users/johndoe@acme.com/lookupTable' + example: /Library/Users/johndoe@acme.com/lookupTable + size: + type: integer + description: The current size of the lookup table in bytes + format: int64 + example: 100 + ErrorResponse: required: - - fieldName - - fieldType + - errors + - id type: object properties: - fieldName: - type: string - description: The name of the field. - example: FieldName1 - fieldType: - pattern: ^(boolean|int|long|double|string)$ + id: type: string - description: |- - The data type of the field. Supported types: - - `boolean` - - `int` - - `long` - - `double` - - `string` - example: boolean - x-pattern-message: 'must be one of the following: `boolean`, `int`, `long`, `double`, `string`' - description: The definition of the field. + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' LookupUpdateDefinition: required: - description @@ -567,13 +562,130 @@ components: type: string description: Creation time of this job in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedAt: type: string description: Timestamp in UTC when status was last updated. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' description: Lookup table async job status. + RowUpdateDefinition: + required: + - row + type: object + properties: + row: + maxItems: 1000 + type: array + description: A list of all the field identifiers and their corresponding values. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table data to be uploaded. + RowDeleteDefinition: + required: + - primaryKey + type: object + properties: + primaryKey: + maxItems: 1000 + type: array + description: A list of all the primary key field identifiers and their corresponding values which defines the row to delete. + items: + $ref: '#/components/schemas/TableRow' + description: Lookup table primary key of the row to be deleted. + ExportableLookupTableInfo: + required: + - description + - fields + - primaryKeys + type: object + properties: + description: + maxLength: 1000 + type: string + description: The description of the lookup table. + example: This is a sample lookup table description. + fields: + minItems: 1 + type: array + description: The list of fields in the lookup table. + items: + $ref: '#/components/schemas/LookupTableField' + primaryKeys: + minItems: 1 + uniqueItems: true + type: array + description: The names of the fields that make up the primary key for the lookup table. These will be a subset of the fields that the table will contain. + example: + - FieldName1 + items: + type: string + ttl: + maximum: 525600 + minimum: 0 + type: integer + description: A time to live for each entry in the lookup table (in minutes). 365 days is the maximum time to live for each entry that you can specify. Setting it to 0 means that the records will not expire automatically. + format: int32 + example: 100 + default: 0 + sizeLimitAction: + pattern: ^(StopIncomingMessages|DeleteOldData)$ + type: string + description: The action that needs to be taken when the size limit is reached for the table. The possible values can be `StopIncomingMessages` or `DeleteOldData`. DeleteOldData will start deleting old data once size limit is reached whereas StopIncomingMessages will discard all the updates made to the lookup table once size limit is reached. + example: DeleteOldData + default: StopIncomingMessages + x-pattern-message: must be either `StopIncomingMessages` or `DeleteOldData` + description: The lookup table definition independent of its location in the Library and name. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 warningDescription: required: - message @@ -588,18 +700,6 @@ components: description: An optional cause of this warning. example: Primary key values were duplicate. description: Warning description - RowUpdateDefinition: - required: - - row - type: object - properties: - row: - maxItems: 1000 - type: array - description: A list of all the field identifiers and their corresponding values. - items: - $ref: '#/components/schemas/TableRow' - description: Lookup table data to be uploaded. TableRow: required: - columnName @@ -615,475 +715,160 @@ components: description: Value of the specified column. example: user1 description: Lookup table row column and column value. - RowDeleteDefinition: + LookupTableField: required: - - primaryKey + - fieldName + - fieldType type: object properties: - primaryKey: - maxItems: 1000 - type: array - description: A list of all the primary key field identifiers and their corresponding values which defines the row to delete. - items: - $ref: '#/components/schemas/TableRow' - description: Lookup table primary key of the row to be deleted. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + fieldName: + type: string + description: The name of the field. + example: FieldName1 + fieldType: + pattern: ^(boolean|int|long|double|string)$ + type: string + description: |- + The data type of the field. Supported types: + - `boolean` + - `int` + - `long` + - `double` + - `string` + example: boolean + x-pattern-message: 'must be one of the following: `boolean`, `int`, `long`, `double`, `string`' + description: The definition of the field. x-stackQL-resources: lookup_tables: id: sumologic.lookup_tables.lookup_tables name: lookup_tables - title: Lookup_tables + title: Lookup Tables methods: - createTable: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1lookupTables/post' response: mediaType: application/json openAPIDocKey: '200' - lookupTableById: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1lookupTables~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateTable: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1lookupTables~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteTable: - operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}/delete' - response: + request: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/createTable' - update: [] + nativeCasing: camel delete: - - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/deleteTable' - upload: - id: sumologic.lookup_tables.upload - name: upload - title: Upload - methods: - uploadFile: operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1upload/post' + $ref: '#/paths/~1v1~1lookupTables~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - jobs_status: - id: sumologic.lookup_tables.jobs_status - name: jobs_status - title: Jobs_status - methods: - requestJobStatus: + openAPIDocKey: '204' + request: + nativeCasing: camel + truncate: operation: - $ref: '#/paths/~1v1~1lookupTables~1jobs~1{jobId}~1status/get' + $ref: '#/paths/~1v1~1lookupTables~1{id}~1truncate/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - truncate: - id: sumologic.lookup_tables.truncate - name: truncate - title: Truncate - methods: - truncateTable: + upsert_row: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1truncate/post' + $ref: '#/paths/~1v1~1lookupTables~1{id}~1row/put' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - row: - id: sumologic.lookup_tables.row - name: row - title: Row - methods: - updateTableRow: + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + delete_row: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1row/put' + $ref: '#/paths/~1v1~1lookupTables~1{id}~1deleteTableRow/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - delete_table_row: - id: sumologic.lookup_tables.delete_table_row - name: delete_table_row - title: Delete_table_row + select: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/lookup_tables/methods/delete' + replace: [] + jobs: + id: sumologic.lookup_tables.jobs + name: jobs + title: Jobs methods: - deleteTableRow: + get: operation: - $ref: '#/paths/~1v1~1lookupTables~1{id}~1deleteTableRow/put' + $ref: '#/paths/~1v1~1lookupTables~1jobs~1{jobId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/jobs/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - lookup_tables - description: lookupTables - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/macros.yaml b/providers/src/sumologic/v00.00.00000/services/macros.yaml new file mode 100644 index 00000000..11dafa32 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/macros.yaml @@ -0,0 +1,466 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Macros API + description: Search macros. + version: 1.0.0 +paths: + /v2/macros: + get: + tags: + - macroManagement + summary: List all macros. + description: List all viewable macros for the customer. + operationId: listMacros + parameters: + - name: limit + in: query + description: Limit the number of macro returned in the response. The number of macros returned may be less than the `limit`. Default 50. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + responses: + '200': + description: Paginated list of viewable macros for the customer. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMacros' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - macroManagement + summary: Create a new macro. + description: Creates a new macro. + operationId: createMacro + requestBody: + description: Information to create the new macro. + content: + application/json: + schema: + $ref: '#/components/schemas/MacroRequest' + required: true + responses: + '200': + description: The macro has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/macros/{id}: + get: + tags: + - macroManagement + summary: Get a macro. + description: Get a macro by the given identifier. + operationId: getMacro + parameters: + - name: id + in: path + description: UUID of the macro. + required: true + schema: + type: string + responses: + '200': + description: Macro object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - macroManagement + summary: Edit a macro. + description: Edits an existing macro by id. Macro name is immutable. + operationId: editMacro + parameters: + - name: id + in: path + description: UUID of the macro to edit. + required: true + schema: + type: string + requestBody: + description: Macro fields to update. Macro name is immutable. + content: + application/json: + schema: + $ref: '#/components/schemas/BaseMacroRequest' + required: true + responses: + '200': + description: The edited macro. + content: + application/json: + schema: + $ref: '#/components/schemas/Macro' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - macroManagement + summary: Delete a macro. + description: Delete a macro by id. + operationId: deleteMacro + parameters: + - name: id + in: path + description: Id of macro to delete. + required: true + schema: + type: string + responses: + '204': + description: Macro was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedMacros: + required: + - macros + type: object + properties: + data: + type: array + description: List of macros. + items: + $ref: '#/components/schemas/Macro' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MacroRequest: + required: + - definition + - name + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. + example: ABC12 + Macro: + required: + - definition + - name + - createdAt + - createdBy + - id + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the macro. + example: MacroGeoLookup + macroCreationSuggestionId: + type: string + description: Identifier if the suggestion comes from an macro creation suggestion. This id is used to track macro creation suggestions, and to delete the suggestion once the macro is created. + example: ABC12 + id: + type: string + description: | + Unique identifier for the macro. This id is used to get detailed information about the macro, such as name, definition, arguments and argument validations. + example: C03E086C137F38B4 + createdAt: + type: string + description: Creation timestamp of the macro in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2024-10-01T09:10:00.000Z' + createdBy: + type: string + description: The identifier of the user who created the macro. + example: 0000000006743FDD + BaseMacroRequest: + required: + - definition + type: object + properties: + description: + maxLength: 4000 + type: string + description: Description of the macro. + example: Macro for geo lookup. + definition: + minLength: 1 + type: string + description: The definition of the macro. Use a valid Sumo Log Search expression. + example: | + lookup latitude, longitude from geo://location on ip = {{ip_field}} | count by latitude, longitude | sort _count" + enabled: + type: boolean + description: If the macro is enabled or not (default True) + default: true + arguments: + type: array + description: Arguments used in the macro. + items: + $ref: '#/components/schemas/Argument' + argumentValidations: + type: array + description: Validation expressions for the arguments. + items: + $ref: '#/components/schemas/ArgumentValidation' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + Argument: + required: + - name + type: object + properties: + name: + type: string + description: Argument name for the macro. + example: ip_field + type: + pattern: ^(String|Any|Number|Keyword)$ + type: string + description: The type of the macro. + example: String + default: String + x-pattern-message: Must be `String`, `Any`, `Number or `Keyword`. + ArgumentValidation: + required: + - errorMessage + - evalExpression + type: object + properties: + evalExpression: + type: string + description: The expression to validate a macro argument. + example: isValidIp(ip_field) + errorMessage: + type: string + description: Error message to be shown if the macro argument validation fails. + example: You need to enter a field name which is a valid ip. + x-stackQL-resources: + macros: + id: sumologic.macros.macros + name: macros + title: Macros + methods: + list: + operation: + $ref: '#/paths/~1v2~1macros/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1macros/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1macros~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1macros~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1macros~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/macros/methods/get' + - $ref: '#/components/x-stackQL-resources/macros/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/macros/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/macros/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/macros/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/metrics_queries.yaml b/providers/src/sumologic/v00.00.00000/services/metrics_queries.yaml index 6ba49a7f..397d6bb3 100644 --- a/providers/src/sumologic/v00.00.00000/services/metrics_queries.yaml +++ b/providers/src/sumologic/v00.00.00000/services/metrics_queries.yaml @@ -1,12 +1,15 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Metrics Queries API + description: Ad hoc metrics queries. + version: 1.0.0 paths: /v1/metricsQueries: post: tags: - metricsQuery summary: Run metrics queries - description: |- - Execute up to six metrics queries. If you specify multiple queries, each is returned as a separate set of time series. A metric query returns a maximum of 300 data points per metric. A metric query will process a maximum of 15K unique time series to calculate the query results. Query results are limited to 1000 unique time series. - For more information see [Metrics Queries](https://help.sumologic.com/?cid=10144). + description: Execute multiple metrics queries. Limits of this API are described in [Metrics Query Error Messages](https://help.sumologic.com/docs/metrics/metrics-queries/metric-query-error-messages/). For general information about Metrics Queries see [Metrics Queries](https://help.sumologic.com/docs/metrics/metrics-queries/). operationId: runMetricsQueries parameters: [] requestBody: @@ -65,8 +68,24 @@ components: errors: - code: metrics:incomplete_results message: Incomplete results - allOf: - - $ref: '#/components/schemas/ErrorResponse' + required: + - errors + - id + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' ErrorResponse: required: - errors @@ -179,8 +198,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -237,6 +256,7 @@ components: description: Name of the metric returning the timeseries. example: CPU_Total dimensions: + maxProperties: 1000 type: object additionalProperties: type: string @@ -275,371 +295,63 @@ components: type: string description: Start time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' end: type: string description: End time in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format format: date-time - example: '2018-10-16T09:20:00Z' + example: '2018-10-16T09:20:00.000Z' description: | A simple time range class, where the start and end points are specified in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: metrics_queries: id: sumologic.metrics_queries.metrics_queries name: metrics_queries - title: Metrics_queries + title: Metrics Queries methods: - runMetricsQueries: + run: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1metricsQueries/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: [] insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - metrics_queries - description: metricsQueries - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/metrics_searches.yaml b/providers/src/sumologic/v00.00.00000/services/metrics_searches.yaml index d7dcf586..53f30db4 100644 --- a/providers/src/sumologic/v00.00.00000/services/metrics_searches.yaml +++ b/providers/src/sumologic/v00.00.00000/services/metrics_searches.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Metrics Searches API + description: Saved metrics searches (v1 and v2). + version: 1.0.0 paths: /v1/metricsSearches: post: @@ -109,36 +114,293 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches: + get: + tags: + - metricsSearchesManagementV2 + summary: List all metrics search pages. + description: List all metrics search pages under the Personal folder created by the user or under folders viewable by user. + operationId: ListMetricsSearches + parameters: + - name: limit + in: query + description: Limit the number of metric searches returned in the response. The number of metric searches returned may be less than the `limit`. + required: false + schema: + maximum: 100 + minimum: 1 + type: integer + format: int32 + default: 50 + example: 50 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + - name: mode + in: query + description: whether to list all viewable metric searches under the folders + required: false + schema: + pattern: ^(createdByUser|allViewableByUser)$ + type: string + example: createdByUser + x-pattern-message: Must be `createdByUser` or `allViewableByUser` + example: createdByUser + responses: + '200': + description: Paginated list of metrics search pages under the Personal folder created by the user or viewable by user. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedMetricsSearches' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - metricsSearchesManagementV2 + summary: Create a new metrics search page. + description: Creates a new metrics search page. + operationId: createMetricsSearches + requestBody: + description: Information to create the new metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + '200': + description: The metrics search page has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/metricsSearches/{id}: + get: + tags: + - metricsSearchesManagementV2 + summary: Get a metrics search page. + description: Get a metrics search page by the given identifier. + operationId: getMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + responses: + '200': + description: Metrics search page that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - metricsSearchesManagementV2 + summary: Update a metrics search page. + description: Update a metrics search page by the given identifier. + operationId: updateMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to return. + required: true + schema: + type: string + requestBody: + description: Information to update the metrics search page. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchRequest' + required: true + responses: + '200': + description: The metrics search page was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/MetricsSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - metricsSearchesManagementV2 + summary: Delete a metrics search page. + description: Delete metrics search page by the given identifier. + operationId: deleteMetricsSearches + parameters: + - name: id + in: path + description: Unique identifier of the metrics search page to delete. + required: true + schema: + type: string + responses: + '204': + description: Metrics search page was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: SaveMetricsSearchRequest: + type: object description: The definition of the metrics search to save in the content library. - allOf: - - $ref: '#/components/schemas/MetricsSearchV1' - - required: - - parentId - type: object - properties: - parentId: - type: string - description: Identifier of a folder to which the metrics search should be added. - example: 000000000000001A + required: + - description + - metricsQueries + - timeRange + - title + - parentId + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + parentId: + type: string + description: Identifier of a folder to which the metrics search should be added. + example: 000000000000001A MetricsSearchInstance: - allOf: - - $ref: '#/components/schemas/MetricsSearchV1' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - type: object - properties: - id: - type: string - description: Identifier of the metrics search. - example: 000000000000001A - parentId: - type: string - description: Identifier of the parent element in the content library, such as folder. - example: 0000000000007D2B + required: + - description + - metricsQueries + - timeRange + - title + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^[a-zA-Z0-9 +%-@.,_()]+$ + type: string + description: Item title in the content library. + example: Short title + description: + maxLength: 8192 + type: string + description: Item description in the content library. + example: Long and detailed description + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + logQuery: + maxLength: 10240 + type: string + description: Log query used to add an overlay to the chart. + example: my_metric | timeslice 1m | count by _timeslice + metricsQueries: + type: array + description: Metrics queries, up to the maximum of six. + items: + $ref: '#/components/schemas/MetricsSearchQuery' + desiredQuantizationInSecs: + minimum: 0 + type: integer + description: Desired quantization in seconds. + format: int32 + example: 60 + default: 0 + properties: + type: string + description: | + Chart properties, like line width, color palette, and the fill missing data method. Leave this field empty to use the defaults. + This property contains JSON object encoded as a string. + example: '{ \"key\": \"value\" }' + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Identifier of the metrics search. + example: 000000000000001A + parentId: + type: string + description: Identifier of the parent element in the content library, such as folder. + example: 0000000000007D2B + description: Definition of a metrics search. ErrorResponse: required: - errors @@ -205,6 +467,88 @@ components: This property contains JSON object encoded as a string. example: '{ \"key\": \"value\" }' description: Definition of a metrics search. + PaginatedMetricsSearches: + required: + - metricsSearches + type: object + properties: + metricsSearches: + type: array + description: List of metrics search pages. + items: + $ref: '#/components/schemas/MetricsSearchResponse' + next: + type: string + description: Next continuation token. `token` is set to null when no more pages are left. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + MetricsSearchRequest: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + MetricsSearchResponse: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + folderId: + type: string + description: | + The identifier of the folder to save the metrics search in. By default it is saved in your personal folder. + example: 000000000C1C17C6 + id: + type: string + description: Unique identifier for the metrics search page. + example: B23OjNs5ZCyn5VdMwOBoLo3PjgRnJSAlNTKEDAcpuDG2CIgRe9KFXMofm2H2 MetadataModel: required: - createdAt @@ -217,7 +561,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -226,7 +570,7 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. @@ -250,8 +594,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -285,384 +629,490 @@ components: description: Metrics query. example: my_metric | avg description: Definition of a metrics query. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + MetricsSearch: + required: + - queries + - timeRange + - title + type: object + properties: + title: + maxLength: 255 + minLength: 1 + pattern: ^\s*\S.*$ + type: string + description: Title of the metrics search page. + x-pattern-message: must contain at least 1 non-whitespace character + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + description: + type: string + description: Description of the metrics search page. + queries: + type: array + description: Queries of the metrics search page. + items: + $ref: '#/components/schemas/Query' + visualSettings: + type: string + description: Visual settings of the metrics search page. + Query: + required: + - queryKey + - queryString + - queryType + type: object + properties: + queryString: + type: string + description: The metrics, traces or logs query. + example: _sourceCategory=cqsplitter metric=CPU_user | count by _sourceHost + queryType: + pattern: ^(Logs|Metrics|Traces|Spans)$ + type: string + description: The type of the query, either `Metrics`, `Traces`, `Spans` or `Logs`. + example: Logs + x-pattern-message: Must be `Logs`, `Traces`, `Spans` or `Metrics` + queryKey: + type: string + description: | + The key for metric, traces or log queries. Used as an identifier for queries. It is displayed on the panel builder and used for display overrides and query toggling. + example: A + metricsQueryMode: + pattern: ^(Basic|Advanced|basic|advanced)$ + type: string + description: | + The mode of the metrics query that the user was editing. Can be `Basic` or `Advanced`. Will ONLY be specified for metrics queries. + example: Basic + x-pattern-message: Must be `Basic`, or `Advanced` + metricsQueryData: + $ref: '#/components/schemas/MetricsQueryData' + tracesQueryData: + $ref: '#/components/schemas/TracesQueryData' + spansQueryData: + $ref: '#/components/schemas/SpansQueryData' + parseMode: + pattern: ^(Auto|Manual|Intelliparse)$ + type: string + description: |- + This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `Auto` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: Auto + default: Auto + x-pattern-message: Must be either `Auto`,`Manual` or `Intelliparse` + timeSource: + pattern: ^(Message|Receipt|Searchable)$ + type: string + description: This field only applies for queryType of `Logs` but other query types may be supported in the future. Define the time source of this query. Possible values are `Message`, `Receipt`. `Message` will use the timeStamp on the message, while `Receipt` will use the timestamp it was received by Sumo. + example: Message + default: Message + x-pattern-message: Must be `Message`, or `Receipt` + transient: + type: boolean + description: This field only applies for queryType of `Metrics` but other query types may be supported in the future. Determines if the row should be returned in the response. Can be used in conjunction with a join, if only the result of the join is needed, and not the intermediate rows. Setting `transient` to `true` wherever the intermediate results aren't required speeds up the computation and reduces the amount of data transferred over the network. + default: false + outputCardinalityLimit: + maximum: 3000 + minimum: 1 + type: integer + description: This field only applies for queryType of `Metrics` but other query types may be supported in the future. Specifies the output cardinality limitations for the query, which is the maximum number of timeseries returned in the result. + format: int32 + example: 1000 + default: 1000 + MetricsQueryData: + required: + - filters + - metric + type: object + properties: + metric: + type: string + description: The metric of the query. + example: CPU_user + aggregationType: + pattern: ^(Count|Minimum|Maximum|Sum|Average|None)$|^$ + type: string + description: The type of aggregation. Can be `Count`, `Minimum`, `Maximum`, `Sum`, `Average` or `None`. + example: Count + x-pattern-message: Must be `Count`, `Minimum`, `Maximum`, `Sum`, `Average` or `None` + groupBy: + type: string + description: The field to group the results by. + example: _sourceHost + filters: + type: array + description: A list of filters for the metrics query. + items: + $ref: '#/components/schemas/MetricsFilter' + operators: + type: array + description: A list of operator data for the metrics query. + items: + $ref: '#/components/schemas/OperatorData' + description: The data format describing a basic metrics query. + example: + metric: CPU_user + aggregationType: count + groupBy: _sourceHost + filters: + - key: _sourceCategory + value: kubernetes + - key: _sourceHost + value: dep-kubernetes-1 + operators: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: '' + - key: value + value: 50 + TracesQueryData: + required: + - filters + type: object + properties: + filters: + type: array + description: A list of filters for the traces query. + items: + $ref: '#/components/schemas/TracesFilter' + description: The data format describing a basic traces query. + SpansQueryData: + required: + - filters + - groupBy + - limit + - visualizations + type: object + properties: + filters: + type: array + description: A list of filters for the spans query. + items: + $ref: '#/components/schemas/SpansFilter' + visualizations: + type: array + description: A list of used visualization methods for the spans query. + items: + $ref: '#/components/schemas/SpansVisualization' + groupBy: + type: array + description: A list of group-by clauses for the spans query. + items: + $ref: '#/components/schemas/SpansGroupBy' + limit: + type: array + description: A list of limits that will be applied to the spans query. + items: + $ref: '#/components/schemas/SpansLimitItem' + description: The data format describing a basic spans query. + MetricsFilter: + required: + - value + type: object + properties: + key: + type: string + description: The key of the metrics filter. + example: _sourceCategory + value: + type: string + description: The value of the metrics filter. + example: kubernetes + negation: + type: boolean + description: Whether or not the metrics filter is negated. + example: false + description: The filter for metrics query. + example: + key: _sourceCategory + value: cqmerger + negation: false + OperatorData: + required: + - operatorName + - parameters + type: object + properties: + operatorName: + type: string + description: The name of the metrics operator. + example: avg + parameters: + type: array + description: A list of operator parameters for the operator data. + items: + $ref: '#/components/schemas/OperatorParameter' + description: The operator data for metrics query. + example: + operatorName: avg + parameters: + - key: aggregator + value: max + - key: operation + value: '' + - key: value + value: 50 + TracesFilter: + required: + - type + type: object + properties: + type: + pattern: ^(FieldDescriptor|DurationMetricDescriptor|NumericMetricDescriptor|CPCOfFilterDescriptor|MaxCPCOfFilterDescriptor|MaxCPCFilterDescriptor)$|^$ + type: string + description: The type of the filter. + example: FieldDescriptor + x-pattern-message: Must be `FieldDescriptor`, `DurationMetricDescriptor`, `NumericMetricDescriptor`, `CPCOfFilterDescriptor`, `MaxCPCOfFilterDescriptor` or `MaxCPCFilterDescriptor` + description: The filter for traces query. + discriminator: + propertyName: type + SpansFilter: + required: + - fieldName + - type + type: object + properties: + type: + pattern: ^(StandaloneKey|KeyValuePair)$ + type: string + description: The spans filter type. + example: StandaloneKey + x-pattern-message: Must be `StandaloneKey` or `KeyValuePair`. + fieldName: + type: string + description: The name of the filtering field. + example: service + discriminator: + propertyName: type + mapping: + StandaloneKey: '#/components/schemas/SpansFilterStandaloneKey' + KeyValuePair: '#/components/schemas/SpansFilterKeyValuePair' + SpansVisualization: + required: + - name + - type + type: object + properties: + type: + pattern: ^(count|calculation)$ + type: string + description: The visualization type. + example: count + x-pattern-message: Must be `count` or `calculation` + name: + type: string + description: A unique name of the visualization. + example: duration_pct_95 + discriminator: + propertyName: type + mapping: + count: '#/components/schemas/SpansCountVisualization' + calculation: '#/components/schemas/SpansCalculationVisualization' + SpansGroupBy: + required: + - type + type: object + properties: + type: + pattern: ^(time|field)$ + type: string + description: The type of the group-by clause. + example: time + x-pattern-message: Must be `time` or `field` + discriminator: + propertyName: type + mapping: + time: '#/components/schemas/SpansTimeGroupBy' + field: '#/components/schemas/SpansFieldGroupBy' + SpansLimitItem: + required: + - direction + - limitValue + type: object + properties: + direction: + pattern: ^(asc|desc)$ + type: string + description: Describes whether the results should be sorted in an ascending or a descending order. + example: asc + x-pattern-message: Must be `asc` or `desc` + limitValue: + type: integer + description: | + The number of aggregated results returned, e.g. if 10 is requested, then only the first 10 aggregated results are returned. + format: int32 + example: 10 + description: | + A representation of the limit operator which reduces the number of aggregate results returned: either the top k results or bottom k results. + OperatorParameter: + required: + - key + - value + type: object + properties: + key: + type: string + description: The key of the operator parameter. + example: operation + value: + type: string + description: The value of the operator parameter. + example: '>' + description: The operator parameter for operator data. + example: + key: aggregator + value: max x-stackQL-resources: metrics_searches: id: sumologic.metrics_searches.metrics_searches name: metrics_searches - title: Metrics_searches + title: Metrics Searches methods: - createMetricsSearch: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1metricsSearches/post' response: mediaType: application/json openAPIDocKey: '200' - getMetricsSearch: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1metricsSearches~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateMetricsSearch: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1metricsSearches~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteMetricsSearch: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1metricsSearches~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/delete' + replace: [] + metrics_searches_v2: + id: sumologic.metrics_searches.metrics_searches_v2 + name: metrics_searches_v2 + title: Metrics Searches V2 + methods: + list: + operation: + $ref: '#/paths/~1v2~1metricsSearches/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.metricsSearches + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1metricsSearches/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1metricsSearches~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1metricsSearches~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1metricsSearches~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/getMetricsSearch' + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/createMetricsSearch' - update: [] + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/metrics_searches/methods/deleteMetricsSearch' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/metrics_searches_v2/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - metrics_searches - description: metricsSearches - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/monitors.yaml b/providers/src/sumologic/v00.00.00000/services/monitors.yaml index e2bf1236..9877c31a 100644 --- a/providers/src/sumologic/v00.00.00000/services/monitors.yaml +++ b/providers/src/sumologic/v00.00.00000/services/monitors.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Monitors API + description: Monitors and monitor folders in the monitors library - search, path, copy, move, import, export, permissions, playbooks and usage. + version: 1.0.0 paths: /v1/monitors/usageInfo: get: @@ -12,7 +17,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MonitorUsageInfo' + $ref: '#/components/schemas/GetMonitorUsageInfoResponse' default: description: Operation failed with an error. content: @@ -51,6 +56,66 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/playbooks: + get: + tags: + - monitorsLibraryManagement + summary: List all playbooks. + description: List all playbooks available to run. + operationId: getMonitorPlaybooks + parameters: + - name: playbookType + in: query + description: A string value for playbook type. + required: false + schema: + type: string + example: CSE + responses: + '200': + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetMonitorPlaybooksResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/monitors/playbooksDetails: + get: + tags: + - monitorsLibraryManagement + summary: Get playbook details. + description: Get the details of the playbooks with the specified identifiers. + operationId: getPlaybooksDetails + parameters: + - name: ids + in: query + description: A comma-separated list of playbook identifiers. + required: true + style: form + explode: false + schema: + type: array + items: + type: string + example: 649074b5b3d402d6e80b0d1d,649074b7b3d402d6e80b0da1,649074b6b3d402d6e80b0d75 + responses: + '200': + description: MonitorPlaybooks have been retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/GetPlaybooksDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' /v1/monitors: get: tags: @@ -68,6 +133,12 @@ paths: items: type: string example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: A map between an identifier and its definition (monitor or folder). @@ -224,9 +295,10 @@ paths: description: Maximum number of items you want in the response. required: false schema: + maximum: 5000 type: integer format: int32 - default: 100 + default: 1000 example: 10 - name: offset in: query @@ -237,13 +309,19 @@ paths: format: int32 default: 0 example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: List of folders and monitors matching the search query. content: application/json: schema: - $ref: '#/components/schemas/ListMonitorsLibraryItemWithPath' + $ref: '#/components/schemas/MonitorsSearchResponse' default: description: Operation failed with an error. content: @@ -282,7 +360,7 @@ paths: - monitorsLibraryManagement summary: | Update a monitor or folder. - description: Update a monitor or folder in the monitors library. + description: Update a monitor or folder in the monitors library. When making updates to existing monitors via API, all configurations are over-written. Make sure to include all configurations of the monitor (existing with new updates), not just the new configurations you want to apply. operationId: monitorsUpdateById parameters: - name: id @@ -629,56 +707,11 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - MonitorUsage: - properties: - monitorType: - type: string - description: The type of monitor usage info (Logs or Metrics). - example: Logs - enum: - - Logs - - Metrics - usage: - type: integer - description: Current number of active Logs/Metrics monitors. - example: 100 - limit: - type: integer - description: The limit of active Logs/Metrics monitors. - example: 100 - total: - type: integer - description: The total number of monitors created. (Including both active and disabled Logs/Metrics monitors) - example: 100 - description: The usage info of monitors. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 DisableMonitorResponse: type: object properties: monitors: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/MonitorsLibraryMonitorResponse' @@ -689,126 +722,37 @@ components: items: $ref: '#/components/schemas/DisableMonitorWarning' description: Response for disabling monitors. - MonitorsLibraryMonitorResponse: - allOf: - - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - - required: - - monitorType - - queries - - triggers - type: object - properties: - monitorType: - pattern: ^(Logs|Metrics|Slo)$ - type: string - description: |- - The type of monitor. Valid values: - 1. `Logs`: A logs query monitor. - 2. `Metrics`: A metrics query monitor. - 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). - example: Logs - x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' - evaluationDelay: - type: string - description: The delay duration for evaluating the monitor (relative to current time). The timerange of monitor will be shifted in the past by this delay time. - example: 5m - default: 0m - alertName: - type: string - description: The name of the alert(s) triggered from this monitor. Monitor name will be used if not specified. - queries: - uniqueItems: true - type: array - description: All queries from the monitor. - items: - $ref: '#/components/schemas/MonitorQuery' - triggers: - type: array - description: Defines the conditions of when to send notifications. - example: - - detectionMethod: StaticCondition - timeRange: 15m - triggerType: Critical - threshold: 50 - thresholdType: GreaterThanOrEqual - occurrenceType: ResultCount - triggerSource: AllResults - - detectionMethod: StaticCondition - timeRange: 15m - triggerType: ResolvedCritical - threshold: 50 - thresholdType: LessThan - occurrenceType: ResultCount - triggerSource: AllResults - items: - $ref: '#/components/schemas/TriggerCondition' - notifications: - type: array - description: The notifications the monitor will send when the respective trigger condition is met. - example: - - notification: - connectionType: Slack - connectionId: '0000000000000005' - runForTriggerTypes: - - Critical - - notification: - connectionType: Email - messageBody: Alert Triggered! - recipients: - - john@doe.com - subject: 'Monitor Alert: {{TriggerType}} on {{SearchName}}' - timeZone: America/Los_Angeles - runForTriggerTypes: - - Critical - items: - $ref: '#/components/schemas/MonitorNotification' - default: [] - isDisabled: - type: boolean - description: Whether or not the monitor is disabled. Disabled monitors will not run, and will not generate or send notifications. - example: false - default: false - status: - uniqueItems: true - type: array - description: |- - The current status of the monitor. Each monitor can have one or more status values. Valid values: - 1. `Normal`: The monitor is running normally and does not have any currently triggered conditions. - 2. `Critical`: The Critical trigger condition has been met. - 3. `Warning`: The Warning trigger condition has been met. - 4. `MissingData`: The MissingData trigger condition has been met. - 5. `Disabled`: The monitor has been disabled and is not currently running. - example: '[Normal]' - items: - type: string - groupNotifications: - type: boolean - description: Whether or not to group notifications for individual items that meet the trigger condition. - example: true - default: true - warnings: - type: object - additionalProperties: - type: string - description: Monitor manager warnings - playbook: - maxLength: 4096 - type: string - description: Notes such as links and instruction to help you resolve alerts triggered by this monitor. {{Markdown}} supported. It will be enabled only if available for your organization. Please contact your Sumo Logic account team to learn more. - example: This issue typically happens when database calls are timing out. Look at ServiceA's dashboard to investigate further - default: '' - DisableMonitorWarning: + MonitorPlaybooksList: + type: array + description: The list of monitor playbooks. + items: + $ref: '#/components/schemas/MonitorPlaybook' + IdToMonitorsLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + MonitorsLibraryBase: + required: + - name + - type type: object properties: - code: + name: type: string - description: A code for the warning message. - example: content:not_found - message: + description: Name of the monitor or folder. + description: type: string - description: A short message with details about the warning. - example: Monitor id=0000000000000001 not found. - description: Warning object from the operation providing details such as when a given monitor to disable does not exist. + description: Description of the monitor or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MonitorsLibraryMonitor + 2) MonitorsLibraryFolder + discriminator: + propertyName: type MonitorsLibraryBaseResponse: required: - contentType @@ -881,168 +825,90 @@ components: type: string discriminator: propertyName: type - MonitorQuery: + MonitorsLibraryFolderResponse: required: - - query - - rowId + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions type: object properties: - rowId: + id: type: string - description: The unique identifier of the row. Defaults to sequential capital letters, `A`, `B`, `C`, etc. - example: A - query: + description: Identifier of the monitor or folder. + name: type: string - description: The logs or metrics query that defines the stream of data the monitor runs on. - example: _sourceCategory=search error - description: A search query. - TriggerCondition: - required: - - triggerType - type: object - properties: - detectionMethod: - pattern: ^(StaticCondition|LogsStaticCondition|MetricsStaticCondition|LogsOutlierCondition|MetricsOutlierCondition|LogsMissingDataCondition|MetricsMissingDataCondition|SloSliCondition|SloBurnRateCondition)$ + description: Identifier of the monitor or folder. + description: type: string - description: |- - Detection method of the trigger condition. Valid values: - 1. `StaticCondition`: A condition that triggers based off of a static threshold. This `detectionMethod` is deprecated, it is recommended to use other ones instead. - 2. `LogsStaticCondition`: A logs condition that triggers based off of a static threshold. - 3. `MetricsStaticCondition`: A metrics condition that triggers based off of a static threshold. - 4. `LogsOutlierCondition`: A logs condition that triggers based off of a dynamic outlier threshold. - 5. `MetricsOutlierCondition`: A metrics condition that triggers based off of a dynamic outlier threshold. - 6. `LogsMissingDataCondition`: A logs missing data condition that triggers based off of no data available. - 7. `MetricsMissingDataCondition`: A metrics missing data condition that triggers based off of no data available. - 8. `SloSliCondition`: An SLO condition that triggers based off of current SLI value. - 9. `SloBurnRateCondition`: An SLO condition that triggers based off of error budget burn rate. - example: StaticCondition - default: StaticCondition - x-pattern-message: 'should be one of the following: ''StaticCondition'', ''LogsStaticCondition'', ''MetricsStaticCondition'', ''LogsOutlierCondition'', ''MetricsOutlierCondition'', ''LogsMissingDataCondition'', ''MetricsMissingDataCondition'', ''SloSliCondition'', ''SloBurnRateCondition''' - triggerType: - pattern: ^(Critical|Warning|MissingData|ResolvedCritical|ResolvedWarning|ResolvedMissingData)$ + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: type: string description: |- - The type of trigger condition. Valid values: - 1. `Critical`: A critical condition to trigger on. - 2. `Warning`: A warning condition to trigger on. - 3. `MissingData`: A condition that indicates data is missing. - 4. `ResolvedCritical`: A condition to resolve a Critical trigger on. - 5. `ResolvedWarning`: A condition to resolve a Warning trigger on. - 6. `ResolvedMissingData`: A condition to resolve a MissingData trigger. - example: Critical - x-pattern-message: 'should be one of the following: ''Critical'', ''Warning'', ''MissingData'', ''ResolvedCritical'', ''ResolvedWarning'', or ''ResolvedMissingData''' - resolutionWindow: + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: type: string - description: 'The resolution window that the recovery condition must be met in each evaluation that happens within this entire duration before the alert is recovered (resolved). If not specified, the time range of your trigger will be used. Valid values are: `0m`, `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`, or `-24h`' - nullable: true - example: '-5m' - discriminator: - propertyName: detectionMethod - MonitorNotification: - required: - - notification - - runForTriggerTypes - type: object - properties: - notification: - $ref: '#/components/schemas/Action' - runForTriggerTypes: - uniqueItems: true + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: type: array - description: The trigger types assigned to send this notification. + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete items: type: string - Action: - required: - - connectionType - type: object - properties: - connectionType: - pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ - type: string - description: |- - Connection type of the connection. Valid values: - 1. `Email` - 2. `AWSLambda` - 3. `AzureFunctions` - 4. `Datadog` - 5. `HipChat` - 6. `Jira` - 7. `NewRelic` - 8. `Opsgenie` - 9. `PagerDuty` - 10. `Slack` - 11. `MicrosoftTeams` - 12. `ServiceNow` - 13. `SumoCloudSOAR` - 14. `Webhook` - x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' - description: The base class of all connection types. - discriminator: - propertyName: connectionType - IdToMonitorsLibraryBaseResponseMap: - type: object - additionalProperties: - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - MonitorsLibraryBase: - required: - - name - - type - type: object - properties: - name: - type: string - description: Name of the monitor or folder. - description: - type: string - description: Description of the monitor or folder. - default: '' - type: - type: string - description: |- - Type of the object model. Valid values: - 1) MonitorsLibraryMonitor - 2) MonitorsLibraryFolder + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' discriminator: propertyName: type - MonitorsLibraryFolderResponse: - allOf: - - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - - required: - - children - - permissions - type: object - properties: - permissions: - type: array - description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. - example: - - Read - - Delete - items: - type: string - children: - type: array - description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' - items: - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' ListMonitorsLibraryItemWithPath: type: array description: Multi-type list of types monitor or folder. items: $ref: '#/components/schemas/MonitorsLibraryItemWithPath' - MonitorsLibraryItemWithPath: - required: - - item - - path - type: object - properties: - item: - $ref: '#/components/schemas/MonitorsLibraryBaseResponse' - path: - type: string - description: Path of the monitor or folder. - example: /Monitors/SampleFolder/TestMonitor MonitorsLibraryBaseUpdate: required: - name @@ -1080,18 +946,6 @@ components: path: type: string description: String representation of the path. - PathItem: - required: - - id - - name - type: object - properties: - id: - type: string - description: Identifier of the path element. - name: - type: string - description: Name of the path element. ContentCopyParams: required: - parentId @@ -1122,44 +976,601 @@ components: type: string description: Type of the object model. discriminator: - propertyName: type - ListPermissionsResponse: + propertyName: type + ListPermissionsResponse: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionStatementDefinitions: + required: + - permissionStatementDefinitions + type: object + properties: + permissionStatementDefinitions: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission statement definitions. + items: + $ref: '#/components/schemas/PermissionStatementDefinition' + PermissionStatements: + required: + - permissionStatements + type: object + properties: + permissionStatements: + type: array + description: A list of permission statements. + items: + $ref: '#/components/schemas/PermissionStatement' + PermissionIdentifiers: + required: + - permissionIdentifiers + type: object + properties: + permissionIdentifiers: + maxItems: 1000 + minItems: 1 + type: array + description: List of permission identifiers. + items: + $ref: '#/components/schemas/PermissionIdentifier' + PermissionSummariesBySubjects: + required: + - permissionSummariesBySubjects + type: object + properties: + permissionSummariesBySubjects: + type: array + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. + items: + $ref: '#/components/schemas/PermissionSummaryBySubjects' + MonitorUsage: + properties: + monitorType: + type: string + description: The type of monitor usage info (Logs or Metrics). + example: Logs + enum: + - Logs + - Metrics + usage: + type: integer + description: Current number of active Logs/Metrics monitors. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics monitors. + example: 100 + total: + type: integer + description: The total number of monitors created. (Including both active and disabled Logs/Metrics monitors) + example: 100 + description: The usage info of monitors. + type: object + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MonitorsLibraryMonitorResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - monitorType + - queries + - triggers + type: object + properties: + id: + type: string + description: Identifier of the monitor or folder. + name: + type: string + description: Identifier of the monitor or folder. + description: + type: string + description: Description of the monitor or folder. + version: + type: integer + description: Version of the monitor or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Monitor + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + monitorType: + pattern: ^(Logs|Metrics|Slo)$ + type: string + description: |- + The type of monitor. Valid values: + 1. `Logs`: A logs query monitor. + 2. `Metrics`: A metrics query monitor. + 3. `Slo`: A SLO based monitor. Currently SLO based monitor is available in closed beta (Notify your Sumo Logic representative in order to get the early access). + example: Logs + x-pattern-message: should be 'Logs' or 'Metrics' or 'Slo' + evaluationDelay: + type: string + description: The delay duration for evaluating the monitor (relative to current time). The timerange of monitor will be shifted in the past by this delay time. + example: 5m + default: 0m + alertName: + type: string + description: The name of the alert(s) triggered from this monitor. Monitor name will be used if not specified. All template variables can be used here except {{AlertName}}, {{AlertResponseURL}}, {{ResultsJson}}, and {{Playbook}}. + runAs: + type: object + required: + - runAsId + properties: + runAsId: + type: string + description: The runAsId indicates the context in which monitors will run. If not provided, then it will run in the context of the monitor author. + example: 00000000000001DF + notificationGroupFields: + type: array + description: The set of fields to be used to group alert notifications for a monitor. The value of this field will be considered only when 'groupNotifications' is true. The fields with very high cardinality such as `_blockid`, `_raw`, `_messagetime`, `_receipttime`, and `_messageid` are not allowed for Alert Grouping. + example: + - service + - env + items: + type: string + queries: + uniqueItems: true + type: array + description: All queries from the monitor. + items: + $ref: '#/components/schemas/MonitorQuery' + triggers: + type: array + description: Defines the conditions of when to send notifications. + example: + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: Critical + threshold: 50 + thresholdType: GreaterThanOrEqual + - detectionMethod: LogsStaticCondition + timeRange: 15m + triggerType: ResolvedCritical + threshold: 50 + thresholdType: LessThan + items: + $ref: '#/components/schemas/TriggerCondition' + timeZone: + type: string + description: Time zone identifier for monitor notifications. Follow the format in [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + notifications: + type: array + description: The notifications the monitor will send when the respective trigger condition is met. + example: + - notification: + connectionType: Slack + connectionId: '0000000000000005' + runForTriggerTypes: + - Critical + - notification: + connectionType: Email + messageBody: Alert Triggered! + recipients: + - john@doe.com + subject: 'Monitor Alert: {{TriggerType}} on {{SearchName}}' + timeZone: America/Los_Angeles + runForTriggerTypes: + - Critical + items: + $ref: '#/components/schemas/MonitorNotification' + default: [] + isDisabled: + type: boolean + description: Whether or not the monitor is disabled. Disabled monitors will not run, and will not generate or send notifications. + example: false + default: false + status: + uniqueItems: true + type: array + description: |- + The current status of the monitor. Each monitor can have one or more status values. Valid values: + 1. `Normal`: The monitor is running normally and does not have any currently triggered conditions. + 2. `Critical`: The Critical trigger condition has been met. + 3. `Warning`: The Warning trigger condition has been met. + 4. `MissingData`: The MissingData trigger condition has been met. + 5. `Disabled`: The monitor has been disabled and is not currently running. + example: '[Normal]' + items: + type: string + groupNotifications: + type: boolean + description: Whether or not to group notifications for individual items that meet the trigger condition. + example: true + default: true + warnings: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Monitor manager warnings + playbook: + type: string + description: Notes such as links and instruction to help you resolve alerts triggered by this monitor. {{Markdown}} supported. It will be enabled only if available for your organization. Please contact your Sumo Logic account team to learn more. + example: This issue typically happens when database calls are timing out. Look at ServiceA's dashboard to investigate further + default: '' + sloId: + type: string + description: Identifier of the SLO definition for the monitor. This is only applicable for SLO type monitors. + automatedPlaybookIds: + uniqueItems: true + type: array + description: The set of automated playbook ids for a monitor. + example: + - 649dcb922b70c74b5d2110f8 + - 649dcb912b70c74b5d2110a0 + items: + type: string + default: [] + discriminator: + propertyName: type + DisableMonitorWarning: + type: object + properties: + code: + type: string + description: A code for the warning message. + example: content:not_found + message: + type: string + description: A short message with details about the warning. + example: Monitor id=0000000000000001 not found. + description: Warning object from the operation providing details such as when a given monitor to disable does not exist. + MonitorPlaybook: + required: + - description + - name + - playbookId + - type + - versionId + type: object + properties: + description: + type: string + description: The description of the monitor playbook. + example:

30 Seconds API Will Take To Respond

+ playbookId: + type: string + description: The id of the playbook. + example: '1' + name: + type: string + description: The name of the playbook. + example: Test + versionId: + type: string + description: The version id of the playbook. + example: '1' + type: + type: string + description: The type of the playbook. + example: Analytics + description: The single monitor playbook. + MonitorsLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MonitorsLibraryBaseResponse' + path: + type: string + description: Path of the monitor or folder. + example: /Monitors/SampleFolder/TestMonitor + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + PermissionStatement: + type: object + required: + - permissions + - subjectId + - subjectType + - targetId + - createdAt + - createdBy + - modifiedAt + - modifiedBy + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + subjectType: + pattern: ^(role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `role` or `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + PermissionStatementDefinition: + required: + - permissions + - subjectId + - subjectType + - targetId + type: object + properties: + permissions: + type: array + description: List of permissions. + example: + - Read + - Delete + items: + type: string + subjectType: + pattern: ^(role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `role` or `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + PermissionIdentifier: + required: + - subjectId + - subjectType + - targetId + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + targetId: + type: string + description: The identifier that belongs to the resource this permission assignment applies to. + example: 0000000006743FE2 + description: Identifier for the entity (subject) that is granted the permission on resource(s). + PermissionSummaryBySubjects: + description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. + required: + - subjectId + - subjectType + - permissionSummaries + type: object + properties: + subjectType: + pattern: ^(user|role|org)$ + type: string + description: 'Type of subject for the permission. Valid values are: `user` or `role` or `org`.' + example: role + x-pattern-message: 'must be one of the following: `user`, `role`, `org`' + subjectId: + type: string + description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). + example: 0000000006743FDA + permissionSummaries: + type: array + items: + $ref: '#/components/schemas/PermissionSummaryMeta' + RunAs: + required: + - runAsId + type: object + properties: + runAsId: + type: string + description: The runAsId indicates the context in which monitors will run. If not provided, then it will run in the context of the monitor author. + example: 00000000000001DF + MonitorQuery: + required: + - query + - rowId + type: object + properties: + rowId: + type: string + description: The unique identifier of the row. Defaults to sequential capital letters, `A`, `B`, `C`, etc. + example: A + query: + type: string + description: The logs or metrics query that defines the stream of data the monitor runs on. + example: _sourceCategory=search error + description: A search query. + TriggerCondition: + required: + - triggerType + type: object + properties: + detectionMethod: + pattern: ^(StaticCondition|LogsStaticCondition|MetricsStaticCondition|LogsOutlierCondition|MetricsOutlierCondition|LogsMissingDataCondition|MetricsMissingDataCondition|SloSliCondition|SloBurnRateCondition|LogsAnomalyCondition|MetricsAnomalyCondition)$ + type: string + description: |- + Detection method of the trigger condition. Valid values: + 1. `StaticCondition`: A condition that triggers based off of a static threshold. This `detectionMethod` is deprecated, it is recommended to use other ones instead. + 2. `LogsStaticCondition`: A logs condition that triggers based off of a static threshold. + 3. `MetricsStaticCondition`: A metrics condition that triggers based off of a static threshold. + 4. `LogsOutlierCondition`: A logs condition that triggers based off of a dynamic outlier threshold. + 5. `MetricsOutlierCondition`: A metrics condition that triggers based off of a dynamic outlier threshold. + 6. `LogsMissingDataCondition`: A logs missing data condition that triggers based off of no data available. + 7. `MetricsMissingDataCondition`: A metrics missing data condition that triggers based off of no data available. + 8. `SloSliCondition`: An SLO condition that triggers based off of current SLI value. + 9. `SloBurnRateCondition`: An SLO condition that triggers based off of error budget burn rate. + 10. `LogsAnomalyCondition`: A log anomaly condition that triggers based off anomalies in the data. + 11. `MetricsAnomalyCondition`: A metric anomaly condition that triggers based off anomalies in the data. + example: StaticCondition + default: StaticCondition + x-pattern-message: 'should be one of the following: ''StaticCondition'', ''LogsStaticCondition'', ''MetricsStaticCondition'', ''LogsOutlierCondition'', ''MetricsOutlierCondition'', ''LogsMissingDataCondition'', ''MetricsMissingDataCondition'', ''SloSliCondition'', ''SloBurnRateCondition'', ''LogsAnomalyCondition'', ''MetricsAnomalyCondition'' ' + triggerType: + pattern: ^(Critical|Warning|MissingData|ResolvedCritical|ResolvedWarning|ResolvedMissingData)$ + type: string + description: |- + The type of trigger condition. Valid values: + 1. `Critical`: A critical condition to trigger on. + 2. `Warning`: A warning condition to trigger on. + 3. `MissingData`: A condition that indicates data is missing. + 4. `ResolvedCritical`: A condition to resolve a Critical trigger on. + 5. `ResolvedWarning`: A condition to resolve a Warning trigger on. + 6. `ResolvedMissingData`: A condition to resolve a MissingData trigger. + example: Critical + x-pattern-message: 'should be one of the following: ''Critical'', ''Warning'', ''MissingData'', ''ResolvedCritical'', ''ResolvedWarning'', or ''ResolvedMissingData''' + resolutionWindow: + type: string + description: 'The resolution window that the recovery condition must be met in each evaluation that happens within this entire duration before the alert is recovered (resolved). If not specified, the time range of your trigger will be used. Valid values are: `0m`, `-5m`, `-10m`, `-15m`, `-30m`, `-1h`, `-3h`, `-6h`, `-12h`, or `-24h`' + nullable: true + example: '-5m' + discriminator: + propertyName: detectionMethod + mapping: + StaticCondition: '#/components/schemas/StaticCondition' + LogsStaticCondition: '#/components/schemas/LogsStaticCondition' + MetricsStaticCondition: '#/components/schemas/MetricsStaticCondition' + LogsOutlierCondition: '#/components/schemas/LogsOutlierCondition' + MetricsOutlierCondition: '#/components/schemas/MetricsOutlierCondition' + LogsMissingDataCondition: '#/components/schemas/LogsMissingDataCondition' + MetricsMissingDataCondition: '#/components/schemas/MetricsMissingDataCondition' + SloSliCondition: '#/components/schemas/SloSliCondition' + SloBurnRateCondition: '#/components/schemas/SloBurnRateCondition' + LogsAnomalyCondition: '#/components/schemas/LogsAnomalyCondition' + MetricsAnomalyCondition: '#/components/schemas/MetricsAnomalyCondition' + MonitorNotification: required: - - permissionStatements + - notification + - runForTriggerTypes type: object properties: - permissionStatements: + notification: + $ref: '#/components/schemas/Action' + runForTriggerTypes: + uniqueItems: true type: array - description: A list of permission statements. + description: The trigger types assigned to send this notification. items: - $ref: '#/components/schemas/PermissionStatement' - PermissionStatement: - allOf: - - $ref: '#/components/schemas/PermissionStatementDefinition' - - $ref: '#/components/schemas/MetadataModel' - PermissionStatementDefinition: - allOf: - - $ref: '#/components/schemas/Permissions' - - required: - - subjectId - - subjectType - - targetId - type: object - properties: - subjectType: - pattern: ^(role|org)$ - type: string - description: 'Type of subject for the permission. Valid values are: `role` or `org`.' - example: role - x-pattern-message: 'must be one of the following: `role` or `org`' - subjectId: - type: string - description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `role`, subjectId should be the identifier of a role. Similarly, if the subjectType is `org`, the subjectId should be the identifier of the same org, which owns the resource target. - example: 0000000006743FDA - targetId: - type: string - description: The identifier that belongs to the resource this permission assignment applies to. - example: 0000000006743FE2 + type: string MetadataModel: required: - createdAt @@ -1172,7 +1583,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -1181,7 +1592,7 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. @@ -1199,51 +1610,6 @@ components: - Delete items: type: string - PermissionStatementDefinitions: - required: - - permissionStatementDefinitions - type: object - properties: - permissionStatementDefinitions: - maxItems: 1000 - minItems: 1 - type: array - description: List of permission statement definitions. - items: - $ref: '#/components/schemas/PermissionStatementDefinition' - PermissionStatements: - required: - - permissionStatements - type: object - properties: - permissionStatements: - type: array - description: A list of permission statements. - items: - $ref: '#/components/schemas/PermissionStatement' - PermissionIdentifiers: - required: - - permissionIdentifiers - type: object - properties: - permissionIdentifiers: - maxItems: 1000 - minItems: 1 - type: array - description: List of permission identifiers. - items: - $ref: '#/components/schemas/PermissionIdentifier' - PermissionIdentifier: - allOf: - - $ref: '#/components/schemas/PermissionSubject' - - required: - - targetId - type: object - properties: - targetId: - type: string - description: The identifier that belongs to the resource this permission assignment applies to. - example: 0000000006743FE2 PermissionSubject: required: - subjectId @@ -1261,28 +1627,6 @@ components: description: The identifier that belongs to the subject type chosen above. For e.g. if the subjectType is set to `user`, subjectId should be the identifier of a user (same goes for `role` or `org` subjectType). example: 0000000006743FDA description: Identifier for the entity (subject) that is granted the permission on resource(s). - PermissionSummariesBySubjects: - required: - - permissionSummariesBySubjects - type: object - properties: - permissionSummariesBySubjects: - type: array - description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. - items: - $ref: '#/components/schemas/PermissionSummaryBySubjects' - PermissionSummaryBySubjects: - description: A list of PermissionSubjects and PermissionSummaryMeta(s) associated with each subject. - allOf: - - $ref: '#/components/schemas/PermissionSubject' - - required: - - permissionSummaries - type: object - properties: - permissionSummaries: - type: array - items: - $ref: '#/components/schemas/PermissionSummaryMeta' PermissionSummaryMeta: required: - isExplicit @@ -1318,610 +1662,428 @@ components: description: A true value implies that the permission is defined by the system on the resource and can not be modified by the user. A false value implies that the permission is defined by the user on the resource and can be modified by the user. example: true description: Permission Summary with additional information like inheritance, revocation, etc about the permission. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + Action: + required: + - connectionType + type: object + properties: + connectionType: + pattern: ^(Email|AWSLambda|AzureFunctions|Datadog|HipChat|Jira|NewRelic|Opsgenie|PagerDuty|Slack|MicrosoftTeams|ServiceNow|SumoCloudSOAR|Webhook)$ + type: string + description: |- + Connection type of the connection. Valid values: + 1. `Email` + 2. `AWSLambda` + 3. `AzureFunctions` + 4. `Datadog` + 5. `HipChat` + 6. `Jira` + 7. `NewRelic` + 8. `Opsgenie` + 9. `PagerDuty` + 10. `Slack` + 11. `MicrosoftTeams` + 12. `ServiceNow` + 13. `SumoCloudSOAR` + 14. `Webhook` + x-pattern-message: 'should be one of the following: ''Email'', ''AWSLambda'', ''AzureFunctions'', ''Datadog'', ''HipChat'', ''Jira'', ''NewRelic'', ''Opsgenie'', ''PagerDuty'', ''Slack'', ''MicrosoftTeams'', ''ServiceNow'', ''SumoCloudSOAR'' and ''Webhook''' + description: The base class of all connection types. + discriminator: + propertyName: connectionType + GetMonitorUsageInfoResponse: + type: object + properties: + monitor_usage_info: + type: array + items: + $ref: '#/components/schemas/MonitorUsage' + GetMonitorPlaybooksResponse: + type: object + properties: + monitor_playbooks: + type: array + items: + $ref: '#/components/schemas/MonitorPlaybook' + GetPlaybooksDetailsResponse: + type: object + properties: + playbooks_details: + type: array + items: + $ref: '#/components/schemas/MonitorPlaybook' + MonitorsSearchResponse: + type: object + properties: + monitors_search: + type: array + items: + $ref: '#/components/schemas/MonitorsLibraryItemWithPath' x-stackQL-resources: usage_info: id: sumologic.monitors.usage_info name: usage_info - title: Usage_info + title: Usage Info methods: - getMonitorUsageInfo: + list: operation: $ref: '#/paths/~1v1~1monitors~1usageInfo/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.monitor_usage_info + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetMonitorUsageInfoResponse' + transform: + body: |- + {{- $wrapped := printf "{\"monitor_usage_info\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/usage_info/methods/getMonitorUsageInfo' + - $ref: '#/components/x-stackQL-resources/usage_info/methods/list' insert: [] update: [] delete: [] - disable: - id: sumologic.monitors.disable - name: disable - title: Disable + replace: [] + monitors: + id: sumologic.monitors.monitors + name: monitors + title: Monitors methods: - disableMonitorByIds: + disable_by_ids: operation: $ref: '#/paths/~1v1~1monitors~1disable/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - monitors: - id: sumologic.monitors.monitors - name: monitors - title: Monitors - methods: - monitorsReadByIds: + read_by_ids: operation: $ref: '#/paths/~1v1~1monitors/get' response: mediaType: application/json openAPIDocKey: '200' - monitorsCreate: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors/post' response: mediaType: application/json openAPIDocKey: '200' - monitorsDeleteByIds: + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: operation: $ref: '#/paths/~1v1~1monitors/delete' response: mediaType: application/json openAPIDocKey: '200' - monitorsReadById: + get_by_path: + operation: + $ref: '#/paths/~1v1~1monitors~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1monitors~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - monitorsUpdateById: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - monitorsDeleteById: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1monitors~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + move: + operation: + $ref: '#/paths/~1v1~1monitors~1{id}~1move/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - root: - id: sumologic.monitors.root - name: root - title: Root - methods: - getMonitorsLibraryRoot: + copy: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1monitors~1root/get' + $ref: '#/paths/~1v1~1monitors~1{id}~1copy/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/root/methods/getMonitorsLibraryRoot' - insert: [] - update: [] - delete: [] - path: - id: sumologic.monitors.path - name: path - title: Path - methods: - monitorsGetByPath: + request: + mediaType: application/json + nativeCasing: camel + export: operation: - $ref: '#/paths/~1v1~1monitors~1path/get' + $ref: '#/paths/~1v1~1monitors~1{id}~1export/get' response: mediaType: application/json openAPIDocKey: '200' - getMonitorsFullPath: + import: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1path/get' + $ref: '#/paths/~1v1~1monitors~1{parentId}~1import/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/path/methods/getMonitorsFullPath' - insert: [] - update: [] - delete: [] - search: - id: sumologic.monitors.search - name: search - title: Search + - $ref: '#/components/x-stackQL-resources/monitors/methods/get' + - $ref: '#/components/x-stackQL-resources/monitors/methods/get_by_path' + insert: + - $ref: '#/components/x-stackQL-resources/monitors/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/monitors/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/monitors/methods/delete' + replace: [] + playbooks: + id: sumologic.monitors.playbooks + name: playbooks + title: Playbooks methods: - monitorsSearch: + list: operation: - $ref: '#/paths/~1v1~1monitors~1search/get' + $ref: '#/paths/~1v1~1monitors~1playbooks/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.monitor_playbooks + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetMonitorPlaybooksResponse' + transform: + body: |- + {{- $wrapped := printf "{\"monitor_playbooks\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/playbooks/methods/list' insert: [] update: [] delete: [] - move: - id: sumologic.monitors.move - name: move - title: Move + replace: [] + playbook_details: + id: sumologic.monitors.playbook_details + name: playbook_details + title: Playbook Details methods: - monitorsMove: + list: operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1move/post' + $ref: '#/paths/~1v1~1monitors~1playbooksDetails/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.playbooks_details + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetPlaybooksDetailsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"playbooks_details\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/playbook_details/methods/list' insert: [] update: [] delete: [] - copy: - id: sumologic.monitors.copy - name: copy - title: Copy + replace: [] + root: + id: sumologic.monitors.root + name: root + title: Root methods: - monitorsCopy: + get: operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1copy/post' + $ref: '#/paths/~1v1~1monitors~1root/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' insert: [] update: [] delete: [] - export: - id: sumologic.monitors.export - name: export - title: Export + replace: [] + search: + id: sumologic.monitors.search + name: search + title: Search methods: - monitorsExportItem: + list: operation: - $ref: '#/paths/~1v1~1monitors~1{id}~1export/get' + $ref: '#/paths/~1v1~1monitors~1search/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.monitors_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/MonitorsSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"monitors_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' insert: [] update: [] delete: [] - import: - id: sumologic.monitors.import - name: import - title: Import + replace: [] + paths: + id: sumologic.monitors.paths + name: paths + title: Paths methods: - monitorsImportItem: + get: operation: - $ref: '#/paths/~1v1~1monitors~1{parentId}~1import/post' + $ref: '#/paths/~1v1~1monitors~1{id}~1path/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' insert: [] update: [] delete: [] + replace: [] permissions: id: sumologic.monitors.permissions name: permissions title: Permissions methods: - monitorsReadPermissionsById: + list: operation: $ref: '#/paths/~1v1~1monitors~1{id}~1permissions/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - permissions_set: - id: sumologic.monitors.permissions_set - name: permissions_set - title: Permissions_set - methods: - monitorsSetPermissions: + objectKey: $.permissionStatements + request: + nativeCasing: camel + set: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors~1permissions~1set/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - permissions_revoke: - id: sumologic.monitors.permissions_revoke - name: permissions_revoke - title: Permissions_revoke - methods: - monitorsRevokePermissions: + request: + mediaType: application/json + nativeCasing: camel + revoke: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1monitors~1permissions~1revoke/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/permissions/methods/list' insert: [] update: [] delete: [] - permission_summaries_by_subjects: - id: sumologic.monitors.permission_summaries_by_subjects - name: permission_summaries_by_subjects - title: Permission_summaries_by_subjects + replace: [] + permission_summaries: + id: sumologic.monitors.permission_summaries + name: permission_summaries + title: Permission Summaries methods: - monitorsReadPermissionSummariesByIdGroupBySubjects: + list: operation: $ref: '#/paths/~1v1~1monitors~1{id}~1permissionSummariesBySubjects/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.permissionSummariesBySubjects + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/permission_summaries/methods/list' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - monitors - description: monitors - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/muting_schedules.yaml b/providers/src/sumologic/v00.00.00000/services/muting_schedules.yaml new file mode 100644 index 00000000..51f641f6 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/muting_schedules.yaml @@ -0,0 +1,926 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Muting Schedules API + description: Muting schedules in the muting schedules library. + version: 1.0.0 +paths: + /v1/mutingSchedules: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Bulk read a mutingschedule or folder. + description: Bulk read a mutingschedule or folder by the given identifiers from the mutingSchedules library. + operationId: mutingSchedulesReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: A map between an identifier and its definition (mutingschedule or folder). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - mutingSchedulesLibraryManagement + summary: | + Create a mutingschedule or folder. + description: Create a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the mutingschedule or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to create. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBase' + required: true + responses: + '200': + description: The mutingschedule or folder was created. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Bulk delete a mutingschedule or folder. + description: Bulk delete a mutingschedule or folder by the given identifiers in the mutingSchedules library. + operationId: mutingSchedulesDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + items: + type: string + example: 0000000000000001,0000000000000002,0000000000000003 + responses: + '200': + description: A map between the deleted identifier and its metadata. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToMutingSchedulesLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/root: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the root mutingSchedules folder. + description: Get the root folder in the mutingSchedules library. + operationId: getMutingSchedulesLibraryRoot + responses: + '200': + description: Root folder of the mutingSchedules library. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/search: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Search for a mutingschedule or folder. + description: Search for a mutingschedule or folder in the mutingSchedules library structure. + operationId: mutingSchedulesSearch + parameters: + - name: query + in: query + description: |- + The search query to find mutingschedule or folder. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + maximum: 5000 + type: integer + format: int32 + default: 1000 + example: 10 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + default: 0 + example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean + responses: + '200': + description: List of folders and mutingSchedules matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get a mutingschedule or folder. + description: Get a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesReadById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to read. + required: true + schema: + type: string + responses: + '200': + description: Requested mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - mutingSchedulesLibraryManagement + summary: | + Update a mutingschedule or folder. + description: Update a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesUpdateById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to update. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to update. The content version must match its latest version number in the mutingSchedules library. If the version does not match it will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseUpdate' + required: true + responses: + '200': + description: The mutingschedule or folder was updated. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - mutingSchedulesLibraryManagement + summary: | + Delete a mutingschedule or folder. + description: Delete a mutingschedule or folder from the mutingSchedules library. + operationId: mutingSchedulesDeleteById + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to delete. + required: true + schema: + type: string + responses: + '204': + description: The mutingschedule or folder was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/path: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Get the path of a mutingschedule or folder. + description: Get the full path of the mutingschedule or folder in the mutingSchedules library. + operationId: getMutingSchedulesFullPath + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder. + required: true + schema: + type: string + responses: + '200': + description: Full path of the mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/copy: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Copy a mutingschedule or folder. + description: Copy a mutingschedule or folder in the mutingSchedules library. + operationId: mutingSchedulesCopy + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to copy. + required: true + schema: + type: string + requestBody: + description: |- + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserve the locked status. Requires `LockMutingSchedules` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: The mutingschedule or folder was copied. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{id}/export: + get: + tags: + - mutingSchedulesLibraryManagement + summary: Export a mutingschedule or folder. + description: Export a mutingschedule or folder. If the given identifier is a folder, everything under the folder is exported recursively with folder as the root. + operationId: mutingSchedulesExportItem + parameters: + - name: id + in: path + description: Identifier of the mutingschedule or folder to export. + required: true + schema: + type: string + responses: + '200': + description: Exported mutingschedule or folder. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/mutingSchedules/{parentId}/import: + post: + tags: + - mutingSchedulesLibraryManagement + summary: Import a mutingschedule or folder. + description: Import a mutingschedule or folder. + operationId: mutingSchedulesImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the mutingschedule or folder. + required: true + schema: + type: string + requestBody: + description: The mutingschedule or folder to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseExport' + required: true + responses: + '200': + description: 'Newly imported mutingschedule or folder. NOTE: Permissions field will not be filled (empty list).' + content: + application/json: + schema: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + IdToMutingSchedulesLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + MutingSchedulesLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) MutingSchedulesLibraryMutingschedule + 2) MutingSchedulesLibraryFolder + discriminator: + propertyName: type + MutingSchedulesLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + discriminator: + propertyName: type + MutingSchedulesLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + - permissions + type: object + properties: + id: + type: string + description: Identifier of the mutingschedule or folder. + name: + type: string + description: Identifier of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + version: + type: integer + description: Version of the mutingschedule or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: |- + Type of the content. Valid values: + 1) Mutingschedule + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + discriminator: + propertyName: type + ListMutingSchedulesLibraryItemWithPath: + type: array + description: Multi-type list of types mutingschedule or folder. + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' + MutingSchedulesLibraryBaseUpdate: + required: + - name + - type + - version + type: object + properties: + name: + type: string + description: The name of the mutingschedule or folder. + description: + type: string + description: The description of the mutingschedule or folder. + default: '' + version: + type: integer + description: The version of the mutingschedule or folder. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + MutingSchedulesLibraryBaseExport: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the mutingschedule or folder. + description: + type: string + description: Description of the mutingschedule or folder. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MutingSchedulesLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/MutingSchedulesLibraryBaseResponse' + path: + type: string + description: Path of the mutingschedule or folder. + example: /MutingSchedules/SampleFolder/TestMutingschedule + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + MutingSchedulesSearchResponse: + type: object + properties: + muting_schedules_search: + type: array + items: + $ref: '#/components/schemas/MutingSchedulesLibraryItemWithPath' + x-stackQL-resources: + muting_schedules: + id: sumologic.muting_schedules.muting_schedules + name: muting_schedules + title: Muting Schedules + methods: + read_by_ids: + operation: + $ref: '#/paths/~1v1~1mutingSchedules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: + operation: + $ref: '#/paths/~1v1~1mutingSchedules/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + copy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}~1copy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + export: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}~1export/get' + response: + mediaType: application/json + openAPIDocKey: '200' + import: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{parentId}~1import/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/muting_schedules/methods/delete' + replace: [] + root: + id: sumologic.muting_schedules.root + name: root + title: Root + methods: + get: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1root/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + search: + id: sumologic.muting_schedules.search + name: search + title: Search + methods: + list: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1search/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.muting_schedules_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/MutingSchedulesSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"muting_schedules_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + paths: + id: sumologic.muting_schedules.paths + name: paths + title: Paths + methods: + get: + operation: + $ref: '#/paths/~1v1~1mutingSchedules~1{id}~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/oauth.yaml b/providers/src/sumologic/v00.00.00000/services/oauth.yaml new file mode 100644 index 00000000..0603d2ed --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/oauth.yaml @@ -0,0 +1,1819 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Oauth API + description: OAuth clients, consents and scopes. + version: 1.0.0 +paths: + /v1/oauth/scopes: + get: + tags: + - oauthManagement + summary: Get all scopes. + description: Get a list of all of the scopes that can be added to an oauth client. + operationId: listOAuthScopes + responses: + '200': + description: A list of scopes that can be added to an oauth client. + content: + application/json: + schema: + $ref: '#/components/schemas/ScopesList' + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients: + get: + tags: + - oauthManagement + summary: List the OAuth clients. + description: List all OAuth clients. + operationId: listOAuthClients + parameters: + - name: limit + in: query + description: Limit the number of OAuth clients returned in the response. The number of OAuth clients returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: runAsId + in: query + description: Identifier of the service account that the OAuth Client runs as. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter clients by exact client ID. When specified, returns only the client matching this ID. Supports URL-based client identifiers (URL-encode the value). + required: false + schema: + type: string + responses: + '200': + description: A list of all OAuth clients within the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthClientsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - oauthManagement + summary: Create a new OAuth client. + description: Creates a new OAuth clientId and clientSecret. + operationId: createOAuthClient + requestBody: + description: Information about the new OAuth client. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreateRequest' + required: true + responses: + '200': + description: The OAuth client has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}: + get: + tags: + - oauthManagement + summary: Get an OAuth client. + description: Get an OAuth client with the given identifier from the organization. + operationId: getOAuthClientById + parameters: + - name: id + in: path + description: Identifier of an OAuth client to return. + required: true + schema: + type: string + responses: + '200': + description: OAuth client object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - oauthManagement + summary: Update an OAuth client. + description: Updates the properties of existing OAuth client by Id. + operationId: updateOAuthClient + parameters: + - name: id + in: path + description: The id of an OAuth client to update. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientUpdateRequest' + required: true + responses: + '200': + description: OAuth client updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClient' + default: + description: OAuth client update failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - oauthManagement + summary: Delete an OAuth client. + description: Deletes the OAuth client with the given Id. + operationId: deleteOAuthClient + parameters: + - name: id + in: path + description: The Id of the OAuth client to delete. + required: true + schema: + type: string + responses: + '204': + description: OAuth client deletion completed successfully. + default: + description: OAuth client deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/clients/{id}/rotate: + put: + tags: + - oauthManagement + summary: Rotate the oauth client secret + description: Generates a new secret for the oauth client that is passed in the call, keeping the same client ID. + operationId: rotateOauthSecret + parameters: + - name: id + in: path + description: The ID of the oauth client to rotate the secret for. + required: true + schema: + type: string + responses: + '200': + description: OAuth client secret rotated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthClientCreationResponse' + default: + description: Oauth client secret rotation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents: + get: + tags: + - oauthManagement + summary: List OAuth consents. + description: Get a list of OAuth consents within the organization. Administrators can list all consents, while others can only list consents that they have authorized. + operationId: listOAuthConsents + parameters: + - name: limit + in: query + description: Limit the number of consents returned in the response. + required: false + schema: + maximum: 10000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. + required: false + schema: + type: string + - name: authorizedUser + in: query + description: Filter consents by the identifier of the user who authorized the consent. + required: false + schema: + type: string + - name: clientId + in: query + description: Filter consents by the clientId of a registered OAuth client. + required: false + schema: + type: string + responses: + '200': + description: A list of OAuth consents. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedListOAuthConsentsResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/oauth/consents/{consentId}: + delete: + tags: + - oauthManagement + summary: Delete an OAuth consent. + description: Deletes the OAuth consent with the given Id. + operationId: deleteOAuthConsent + parameters: + - name: consentId + in: path + description: The ID of the OAuth consent to delete. + required: true + schema: + type: string + responses: + '204': + description: OAuth consent deletion completed successfully. + default: + description: OAuth consent deletion failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ScopesList: + required: + - data + type: object + properties: + data: + type: array + description: List of scopes + items: + $ref: '#/components/schemas/ScopeDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + PaginatedListOAuthClientsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth clients. + items: + $ref: '#/components/schemas/OAuthClient' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth clients. + OAuthClientCreateRequest: + required: + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + default: [] + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/CreateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/CreateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/CreateCimdAuthorizationCodeClientRequest' + OAuthClientCreationResponse: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + pattern: ^[0-9A-F]{16}$ + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClientWithSecret' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClientWithSecret' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClientCreationResponse' + OAuthClient: + required: + - clientId + - createdAt + - createdBy + - description + - disabled + - id + - modifiedAt + - modifiedBy + - name + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + id: + type: string + description: Unique identifier of the OAuth client. + example: 0000000006743FDE + clientId: + type: string + description: Identifier of the OAuth client. Unique within each organization. Will be a URL for dynamically generated clients. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the OAuth client. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the OAuth client. + example: 0000000006743FDD + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the OAuth client. + example: My OAuth Client + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the OAuth client. + example: OAuth client for data ingestion + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/ClientCredentialsClient' + AuthorizationCodeClient: '#/components/schemas/AuthorizationCodeClient' + CimdAuthorizationCodeClient: '#/components/schemas/CimdAuthorizationCodeClient' + OAuthClientUpdateRequest: + required: + - disabled + - scopes + - type + type: object + properties: + type: + type: string + description: Type of the object model. + disabled: + type: boolean + description: Whether the OAuth client is disabled. Disabled OAuth clients cannot be used to authenticate users. + scopes: + type: array + description: |- + Scopes assigned to the client. + + **MCP Server Required Scopes:** For full access to all MCP Server tools, the following scopes are required. Each tool lists the scopes it needs. + + - `alerts___alertsReadById` — viewAlerts + - `alerts___alertsSearch` — viewAlerts + - `dashboards___getDashboard` — viewLibrary + - `dashboards___listDashboards` — viewLibrary + - `dashboards___createDashboard` — manageLibrary + - `dashboards___updateDashboard` — manageLibrary + - `discovery___listPartitions` — viewPartitions + - `discovery___listExtractionRules` — viewFieldExtractionRules + - `discovery___listCustomFields` — viewFields + - `log-search___runLogSearch` — runLogSearch + - `insights___getAllInsights` — viewCse + - `insights___getInsight` — viewCse + - `insights___getInsights` — viewCse + - `insights___updateInsightAssignee` — viewCse, cseManageInsightAssignee + - `insights___updateInsightStatus` — viewCse, cseManageInsightStatus + - `rules___getRule` — viewCse, cseViewRules + - `rules___getRules` — viewCse, cseViewRules + - `rules___createTemplatedMatchRule` — viewCse, cseManageRules + - `rules___createThresholdRule` — viewCse, cseManageRules + + ### Alerting + - viewAlerts *(MCP Server)* + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + - viewMutingSchedules + - manageMutingSchedules + + ### Audit Event Management + - searchAuditIndex + - dataVolumeIndex + - auditEventIndex + + ### Cloud SIEM + - viewCse *(MCP Server)* + - cseViewRules *(MCP Server)* + - cseManageRules *(MCP Server)* + - cseManageInsightAssignee *(MCP Server)* + - cseManageInsightStatus *(MCP Server)* + - cseCommentOnInsights + - cseCreateInsights + - cseDeleteInsights + - cseInvokeInsights + - cseManageInsightPolicy + - cseManageInsightSignals + - cseManageInsightTags + - cseViewThreatIntelligence + - cseManageThreatIntelligence + - cseViewMatchLists + - cseManageMatchLists + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseViewCustomInsights + - cseManageCustomInsights + - cseViewNetworkBlocks + - cseManageNetworkBlocks + - cseViewSuppressedEntities + - cseManageSuppressedEntities + - cseViewMappings + - cseManageMappings + - cseManageArtifacts + - cseViewCustomInsightStatuses + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseManageContextActions + - cseViewActions + - cseManageActions + - cseViewEnrichments + - cseManageEnrichments + - cseViewCustomEntityType + - cseManageCustomEntityType + - cseViewEntity + - cseManageEntity + - cseViewEntityConfiguration + - cseManageEntityConfiguration + - cseViewEntityCriticality + - cseManageEntityCriticality + - cseViewTagSchemas + - cseManageTagSchemas + - cseManageFavoriteFields + - cseViewEntityGroups + - cseManageEntityGroups + - cseViewAutomations + - cseManageAutomations + - cseExecuteAutomations + + ### Cloud SOAR + - viewCloudSoar + - cloudSoarAPIAdmin + - cloudSoarAPIEmailEdit + - cloudSoarAPIEmailRead + - cloudSoarAPIUse + - cloudSoarAppCentralAccess + - cloudSoarAppCentralExport + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarAutomationRulesAccess + - cloudSoarAutomationRulesConfigure + - cloudSoarBridgeMonitoringAccess + - cloudSoarCustomizationFields + - cloudSoarCustomizationIncidentLabels + - cloudSoarCustomizationLogo + - cloudSoarDashboardAccess + - cloudSoarDashboardAll + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarEntitiesManage + - cloudSoarGeneralConfigure + - cloudSoarIncidentAccess + - cloudSoarIncidentAccessAll + - cloudSoarIncidentAttachmentsAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentBulkOperations + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentNotesAccess + - cloudSoarIncidentNotesEdit + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentPlaybooksEdit + - cloudSoarIncidentPlaybooksManage + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTaskAccessAll + - cloudSoarIncidentTaskEdit + - cloudSoarIncidentTaskReassign + - cloudSoarIncidentTaskView + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTriageAccessAll + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentTriageView + - cloudSoarIncidentView + - cloudSoarIncidentWarRoomUse + - cloudSoarIntegrationsAccess + - cloudSoarIntegrationsConfigure + - cloudSoarNotificationConfigure + - cloudSoarNotificationTriage + - cloudSoarObservabilityAccess + - cloudSoarObservabilityManagement + - cloudSoarPlaybooksAccess + - cloudSoarPlaybooksConfigure + - cloudSoarReportAccess + - cloudSoarReportAll + - cloudSoarUserManagementGroups + - cloudSoarWidgetsAll + + ### Dashboards + - worldDashboards + - whitelistDashboards + - shareDashboardAllowlist + - manageDashboardExecutionControls + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules *(MCP Server)* + - manageFieldExtractionRules + - viewFields *(MCP Server)* + - manageFields + - manageBudgets + - viewLibrary *(MCP Server)* + - manageLibrary *(MCP Server)* + - viewPartitions *(MCP Server)* + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + - viewPipelines + - managePipelines + - viewAccountOverview + - dataVolume + - downloadSearchResults + - viewDeletionRules + - manageDeletionRules + - reviewDeletionRequest + - viewEventExtractionRules + - manageEventExtractionRules + - viewParsers + + ### Data Masking + - viewUnmaskedData + - manageDataMasking + + ### Entity Management + - manageEntityTypeConfig + + ### Logs + - runLogSearch *(MCP Server)* + + ### Macros + - manageMacros + + ### Metrics + - runMetricsQuery + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Open Analytics + - manageOpenAnalyticsEndpoint + + ### Organizations + - viewOrganizations + - createTrialOrganizations + - createOrganizations + - upgradeTrialOrganizations + - changeCreditsAllocation + - deactivateOrganizations + - manageOrganizations + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + - manageOAuthClients + - changeDataAccessLevel + - passwordPolicy + - ipWhitelisting + - ipAllowlisting + - supportAccount + - audit + - saml + - worldDashboardMaster + - orgSettings + + ### Threat Intelligence + - viewThreatIntelDataStore + - manageThreatIntelDataStore + + ### Usage Management + - viewUsageManagement + - manageUsageManagement + + ### User Management + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + discriminator: + propertyName: type + mapping: + ClientCredentialsClient: '#/components/schemas/UpdateClientCredentialsClientRequest' + AuthorizationCodeClient: '#/components/schemas/UpdateAuthorizationCodeClientRequest' + CimdAuthorizationCodeClient: '#/components/schemas/UpdateCimdAuthorizationCodeClientRequest' + PaginatedListOAuthConsentsResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of OAuth consents. + items: + $ref: '#/components/schemas/OAuthConsent' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + description: List of OAuth consents. + ScopeDefinition: + required: + - dependsOn + - group + - id + - label + - type + type: object + properties: + id: + type: string + description: The name of the scope. + example: managePartitions + label: + type: string + description: The UI label for the scope. + example: Manage Partitions + type: + type: string + description: Type of scope. + example: Manage + dependsOn: + type: array + description: Any scopes that are required for this scope to be enabled. + example: + - viewPartitions + items: + type: string + group: + required: + - id + - label + type: object + properties: + id: + type: string + description: The name of the scope group + example: dataManagement + label: + type: string + description: The label for the scope group + example: Data Management + parentId: + type: string + description: The ID of the parent scope group + description: The group that the scope belongs to. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + OAuthConsent: + required: + - authorizedAt + - authorizedUser + - clientId + - clientName + - id + - scopes + type: object + properties: + id: + type: string + description: Unique identifier for the consent. + example: 0000000006743FDE + clientId: + type: string + description: The ID of the registered client that was used in granting consent. + example: zVplCFHcpTDwtktBIQmFI2K6s9HEo4HAtcQD1f1M5eQ + clientName: + type: string + description: The name of the registered client that was used in granting consent. + example: My OAuth App + authorizedAt: + type: string + description: Timestamp when the consent was authorized in UTC in RFC3339 format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + authorizedUser: + type: string + description: Identifier of the user who authorized the consent. + example: 0000000006743FDD + lastUsedAt: + type: string + description: Timestamp when the consent was last used to grant an access token in UTC in RFC3339 format. Null if never used. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: The scopes that were granted in the consent. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + description: An OAuth consent granted by a user. + x-stackQL-resources: + scopes: + id: sumologic.oauth.scopes + name: scopes + title: Scopes + methods: + list: + operation: + $ref: '#/paths/~1v1~1oauth~1scopes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/scopes/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + clients: + id: sumologic.oauth.clients + name: clients + title: Clients + methods: + list: + operation: + $ref: '#/paths/~1v1~1oauth~1clients/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1oauth~1clients/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + rotate_secret: + operation: + $ref: '#/paths/~1v1~1oauth~1clients~1{id}~1rotate/put' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/clients/methods/get' + - $ref: '#/components/x-stackQL-resources/clients/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/clients/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/clients/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/clients/methods/delete' + replace: [] + consents: + id: sumologic.oauth.consents + name: consents + title: Consents + methods: + list: + operation: + $ref: '#/paths/~1v1~1oauth~1consents/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1oauth~1consents~1{consentId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/consents/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/consents/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/organizations.yaml b/providers/src/sumologic/v00.00.00000/services/organizations.yaml new file mode 100644 index 00000000..4338f5b1 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/organizations.yaml @@ -0,0 +1,212 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Organizations API + description: Usage of child organizations (multi-account management). + version: 1.0.0 +paths: + /v1/organizations/usages: + post: + tags: + - orgsManagement + summary: Get usages for child orgs. + description: Get the credits usage details of the child orgs for a parent. + operationId: getChildUsages + requestBody: + description: Details for the usages to be fetched. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsRequest' + responses: + '200': + description: Usage details for the child orgs. + content: + application/json: + schema: + $ref: '#/components/schemas/ChildUsageDetailsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ChildUsageDetailsRequest: + type: object + properties: + startDate: + type: string + description: Start date, without the time, of the usage data to fetch. + example: '2019-07-20T00:00:00.000Z' + endDate: + type: string + description: End date, without the time, of usage data to fetch. + example: '2019-10-20T00:00:00.000Z' + description: The child usage details request for the parent account + ChildUsageDetailsResponse: + required: + - data + type: object + properties: + data: + type: array + description: Usage details of the child orgs. + items: + $ref: '#/components/schemas/ChildUsageDetail' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + ChildUsageDetail: + required: + - orgId + - status + - usages + type: object + properties: + status: + pattern: ^(Active|Delinked|Deactivated)$ + type: string + description: Status of the child org. + example: Active + x-pattern-message: Valid values are `Active`, `Delinked`, and `Deactivated` + orgName: + type: string + description: Name of the child org. + example: DSW Corp - Prod/Main + orgId: + maxLength: 23 + minLength: 19 + type: string + description: The unique identifier of an organization. It consists of the deployment ID and the hexadecimal account ID separated by a dash `-` character. + example: us2-00000000FF42A0C3 + allocatedCredits: + type: number + description: Denotes the total number of credits provisioned for the child organization to use. + format: double + example: 10000 + usages: + $ref: '#/components/schemas/ChildUsage' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ChildUsage: + required: + - totalCreditsUsed + type: object + properties: + totalCreditsUsed: + type: number + description: Total Credits used by the child org. + format: double + example: 10000 + usagePercentage: + type: number + description: Percentage of used credits from the allocated credits. + format: double + example: 10000 + forecastPercentage: + type: number + description: Forecasted percentage of credits will be used in the given time period. + format: double + example: 10000 + usagePercentChangeWoW: + type: number + description: Week over week usage percentage for the subscription period. + format: double + example: 10000 + usagePercentChange: + type: number + description: Percentage of usage change over the given time period. + format: double + example: 10000 + x-stackQL-resources: + child_usages: + id: sumologic.organizations.child_usages + name: child_usages + title: Child Usages + methods: + get_usages: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1organizations~1usages/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/ot_collectors.yaml b/providers/src/sumologic/v00.00.00000/services/ot_collectors.yaml new file mode 100644 index 00000000..00bfda8f --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/ot_collectors.yaml @@ -0,0 +1,618 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Ot Collectors API + description: OpenTelemetry collectors. + version: 1.0.0 +paths: + /v1/otCollectors: + post: + tags: + - otCollectorManagementExternal + summary: Get paginated list of OT Collectors + description: Given different filter, search and sort conditions, get list of otCollectors. + operationId: getPaginatedOTCollectors + requestBody: + description: pagination request details + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsRequest' + required: true + responses: + '200': + description: A list of paginated OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/PaginatedOTCollectorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/{id}: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collector by ID. + description: Get OT Collector by ID. + operationId: getOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to get. + required: true + schema: + type: string + responses: + '200': + description: An OT Collector by identifier. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollector' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - otCollectorManagementExternal + summary: Delete an OT Collector. + description: Delete an OT Collector with the given identifier. + operationId: deleteOTCollector + parameters: + - name: id + in: path + description: Identifier of the OT Collector to delete. + required: true + schema: + type: string + responses: + '204': + description: The OT Collector was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/totalCount: + get: + tags: + - otCollectorManagementExternal + summary: Get a count of OT Collectors. + description: Get total count of OT Collectors for a customer. + operationId: getOTCollectorsCount + responses: + '200': + description: Total count of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorCountResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/otCollectorsByName: + get: + tags: + - otCollectorManagementExternal + summary: Get OT Collectors by name. + description: provided list of names, get all OT Collectors with metadata. + operationId: getOTCollectorsByNames + parameters: + - name: names + in: query + description: A required parameter that accepts a list of names for which we need to collect all metadata. + required: true + schema: + type: array + items: + type: string + responses: + '200': + description: A list of OT Collectors. + content: + application/json: + schema: + $ref: '#/components/schemas/OTCollectorListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/otCollectors/offline: + delete: + tags: + - otCollectorManagementExternal + summary: Delete all Offline OT Collectors + description: Delete all offline OT Collectors for a given customer. + operationId: deleteOfflineOTCollectors + responses: + '204': + description: All offline OT Collectors of the given customer deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + PaginatedOTCollectorsRequest: + type: object + properties: + search: + type: string + description: search by collector id or free text search on collector properties. + example: testAgent + filters: + type: object + properties: + tags: + type: array + description: tags associated with the OT collector + example: + - - key: region + values: + - us2 + - mum + - - key: key2 + values: + - value2 + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + default: [] + os: + type: string + description: Name of the Operating System. + nullable: true + example: linux + x-visibility: private + collectorVersionRange: + $ref: '#/components/schemas/VersionRange' + alive: + type: boolean + description: alive Status of the OT Collector based on heartbeat. + nullable: true + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely or locally managed. + nullable: true + example: true + isUpgradeAvailable: + type: boolean + description: upgrade availability status of the OT Collector. + nullable: true + example: true + hasNoSourceTemplateLinked: + type: boolean + description: whether the remotely managed OT Collector has no source template linked. + nullable: true + example: true + healthStatus: + type: array + description: Filter by one or more health statuses of the OT Collector. + example: + - Error + - Warning + items: + type: string + enum: + - Healthy + - Error + - Warning + hasNoData: + type: boolean + description: Filter OT Collectors by no-data status. When true, returns only collectors with no data. When false, returns only collectors that have data. + nullable: true + example: true + fleetIds: + maxItems: 50 + type: array + description: Filter OT Collectors by fleet IDs. + example: + - 0000000005F5E105 + items: + maxLength: 16 + minLength: 1 + type: string + x-visibility: private + description: parameter which is used for filtering. + sortBy: + type: string + description: parameter which is used for sorting. + example: name + next: + type: string + description: parameter which is used for fetching next set of results. + example: token + limit: + maximum: 1000 + minimum: 1 + type: integer + description: parameter which is used for limiting number of otCollectors on a page. + format: int32 + example: 30 + includeCount: + type: boolean + description: count of filtered otCollectors. + nullable: true + example: false + PaginatedOTCollectorsResponse: + required: + - data + type: object + properties: + data: + type: array + description: paginated list of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + next: + type: string + description: next page token. + count: + type: integer + description: count of otCollectors in response. + format: int32 + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + OTCollector: + required: + - createdAt + - createdBy + - id + - modifiedAt + - modifiedBy + - name + - systemInfo + - version + type: object + properties: + id: + type: string + description: Unique identifier of the OT Collector. + example: 0000000005F5E105 + name: + type: string + description: Name of the OT Collector. + example: test OT Collector + version: + required: + - currentVersion + type: object + properties: + currentVersion: + type: string + description: Current version of the OT Collector. + latestAvailableVersion: + type: string + description: Latest available version of the OT Collector. + description: Version information of the OT Collector. + category: + type: string + description: Category of the OT Collector. + example: apache + description: + type: string + description: Description of the OT Collector. + tags: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Tags associated with the OT Collector. + example: + team: app-dev + showIcon: true + fleetId: + type: string + description: Fleet Id of the OT Collector + example: 0000000005F5E105 + healthIncidentsTracker: + type: object + properties: + errorsCount: + type: integer + description: Number of errors associated with the OT Collector. + format: int32 + example: 0 + warningsCount: + type: integer + description: Number of warnings associated with the OT Collector. + format: int32 + example: 1 + description: Health incident information. + ephemeral: + type: boolean + description: Ephemeral Status of the OT Collector. + example: false + alive: + type: boolean + description: Alive Status of the OT Collector based on heartbeat. + example: true + isRemotelyManaged: + type: boolean + description: Management Status of the OT Collector based on if it is remotely or locally managed. + example: true + effectiveConfig: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Config map that includes Base 64 Encoded Effective Configuration Yaml of the Remotely managed OT Collector. + example: + 00000000000000A3: ZGVtbyBjb25maWc= + 00000000000000D5: XFVtbfe34tgcvefv= + systemInfo: + type: object + properties: + hostName: + type: string + description: Host name of the OT Collector. + example: app.test.com + hostOsName: + type: string + description: Host OS name of the OT Collector. + example: Linux + hostOsVersion: + type: string + description: Host OS version of the OT Collector. + example: 5.4.144-69.257.amzn2.x86_64 + hostIpAddress: + type: string + description: Host IP address of the OT Collector. + example: 19.123.24.66 + hostEnv: + type: string + description: Host environment of the OT Collector. + example: EKS-1.20.2 + description: System information of the OT Collector. + timeZone: + type: string + description: timezone of the collector + example: UTC + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006A5C7A2 + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006A5C7A2 + sourceTemplateLinkedCount: + type: integer + description: Count of the source templates linked to a collector + example: 1 + description: An OT Collector definition. + OTCollectorCountResponse: + required: + - totalCount + type: object + properties: + totalCount: + type: integer + description: Total number of OT Collector for a customer. + format: int32 + example: 100 + description: response for total count of otCollectors. + OTCollectorListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of OT Collectors. + items: + $ref: '#/components/schemas/OTCollector' + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + VersionRange: + type: object + properties: + minVersion: + pattern: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-sumo.+)?$ + type: string + description: Minimum version of otCollector. + maxVersion: + pattern: ^v(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-sumo.+)?$ + type: string + description: Maximum version of the collector. + rangeType: + type: string + description: 'Specifies how filtering should be applied when `minVersion` and `maxVersion` are defined. - `Within`: Filtering includes the specified range. - `Outside`: Filtering excludes the specified range. By default, filtering includes the specified range.' + description: Version range for otCollector. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + x-stackQL-resources: + ot_collectors: + id: sumologic.ot_collectors.ot_collectors + name: ot_collectors + title: Ot Collectors + methods: + list: + config: + requestBodyTranslate: + algorithm: naive + pagination: + requestToken: + key: next + location: body + responseToken: + key: next + location: body + operation: + $ref: '#/paths/~1v1~1otCollectors/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1otCollectors~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1otCollectors~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + get_by_names: + operation: + $ref: '#/paths/~1v1~1otCollectors~1otCollectorsByName/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + delete_offline: + operation: + $ref: '#/paths/~1v1~1otCollectors~1offline/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/get' + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/list' + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/get_by_names' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/ot_collectors/methods/delete' + replace: [] + total_count: + id: sumologic.ot_collectors.total_count + name: total_count + title: Total Count + methods: + get: + operation: + $ref: '#/paths/~1v1~1otCollectors~1totalCount/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/total_count/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/parsers.yaml b/providers/src/sumologic/v00.00.00000/services/parsers.yaml new file mode 100644 index 00000000..fb3bdc1b --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/parsers.yaml @@ -0,0 +1,1159 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Parsers API + description: Custom and system parsers in the parsers library. + version: 1.0.0 +paths: + /v1/parsers/root: + get: + tags: + - parsersLibraryManagement + summary: Get the root folder in the library. + description: | + Get the root folder in the library. + operationId: getParsersLibraryRoot + responses: + '200': + description: Root folder in the library. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryFolderResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers: + get: + tags: + - parsersLibraryManagement + summary: Bulk read folders and parsers. + description: | + Bulk read folders and parsers by the given identifiers from the library. + operationId: parsersReadByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: 0000000000000001,0000000000000002,0000000000000003 + items: + type: string + responses: + '200': + description: A map between an identifier and its definition (folder or parser). + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - parsersLibraryManagement + summary: | + Create a folder or parser. + description: | + Create a folder or parser. + operationId: parsersCreate + parameters: + - name: parentId + in: query + description: Identifier of the parent folder in which to create the folder or parser. + required: true + schema: + type: string + requestBody: + description: The folder or parser to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBase' + required: true + responses: + '200': + description: Newly created folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Bulk delete folders and parsers. + description: | + Bulk delete folders and parsers by the given identifiers from the library. + operationId: parsersDeleteByIds + parameters: + - name: ids + in: query + description: A comma-separated list of identifiers. + required: true + schema: + type: array + example: 0000000000000001,0000000000000002,0000000000000003 + items: + type: string + responses: + '200': + description: A map between the deleted identifier and its meta data. + content: + application/json: + schema: + $ref: '#/components/schemas/IdToParsersLibraryBaseResponseMap' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}: + get: + tags: + - parsersLibraryManagement + summary: | + Read a folder or parser. + description: | + Read a folder or parser. + operationId: parsersReadById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to read. + required: true + schema: + type: string + responses: + '200': + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - parsersLibraryManagement + summary: | + Update a folder or parser. + description: | + Update a folder or parser. + operationId: parsersUpdateById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to update. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be updated. Content version must match its latest version number in the library. Any staled version will not be updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseUpdate' + required: true + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - parsersLibraryManagement + summary: | + Delete a folder or parser. + description: | + Delete a folder or parser. + operationId: parsersDeleteById + parameters: + - name: id + in: path + description: Identifier of the folder or parser to delete. + required: true + schema: + type: string + responses: + '204': + description: The folder or parser was successfully deleted. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/path: + get: + tags: + - parsersLibraryManagement + summary: Get full path of folder or parser. + description: | + Get full path of folder or parser. + operationId: getParsersFullPath + parameters: + - name: id + in: path + description: Identifier of the folder or parser. + required: true + schema: + type: string + responses: + '200': + description: Full path of the folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/Path' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: parsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: parsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/move: + post: + tags: + - parsersLibraryManagement + summary: Move a folder or parser. + description: | + Move a folder or parser. + operationId: parsersMove + parameters: + - name: id + in: path + description: Identifier of the folder or parser to move. + required: true + schema: + type: string + - name: parentId + in: query + description: Identifier of the parent folder to move the folder or parser to. + required: true + schema: + type: string + responses: + '200': + description: Moved folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/copy: + post: + tags: + - parsersLibraryManagement + summary: Copy a folder or parser. + description: | + Copy a folder or parser. + operationId: parsersCopy + parameters: + - name: id + in: path + description: Identifier of the folder or parser to copy. + required: true + schema: + type: string + requestBody: + description: | + Fields include: + 1) Identifier of the parent folder to copy to. + 2) Optionally provide a new name. + 3) Optionally provide a new description. + 4) Optionally set to true if you want to copy and preserved the locked status. Requires `LockParsers` capability. + content: + application/json: + schema: + $ref: '#/components/schemas/ContentCopyParams' + required: true + responses: + '200': + description: Newly copied folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{id}/export: + get: + tags: + - parsersLibraryManagement + summary: Export a folder or parser. + description: Export a folder or parser. + operationId: parsersExportItem + parameters: + - name: id + in: path + description: Identifier of the folder or parser to export. + required: true + schema: + type: string + - name: preserveLock + in: query + description: | + Set this to true if you want to export an object and preserve the locked status. + required: false + schema: + type: boolean + default: false + responses: + '200': + description: Exported folder or parser + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/{parentId}/import: + post: + tags: + - parsersLibraryManagement + summary: Import a folder or parser + description: | + Import a folder or parser + operationId: parsersImportItem + parameters: + - name: parentId + in: path + description: Identifier of the parent folder in which to import the folder or parser. + required: true + schema: + type: string + requestBody: + description: | + The folder or parser to be imported. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryExportBase' + required: true + responses: + '200': + description: Newly imported folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/path: + get: + tags: + - parsersLibraryManagement + summary: Read a folder or parser by its path. + description: | + Read a folder or parser by its path. + operationId: parsersGetByPath + parameters: + - name: path + in: query + description: The path of the folder or parser. + required: true + schema: + type: string + responses: + '200': + description: Requested folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/parsers/search: + get: + tags: + - parsersLibraryManagement + summary: Search for folders or parsers. + description: Search for a folder or parser in the cloud SIEM parsers library structure. + operationId: parsersSearch + parameters: + - name: query + in: query + description: |- + The search query to find folder or parsers. Below is the list of different filters with examples: + - **createdBy** : Filter by the user's identifier who created the content. Example: `createdBy:000000000000968B`. + - **createdBefore** : Filter by the content objects created before the given timestamp(in milliseconds). Example: `createdBefore:1457997222`. + - **createdAfter** : Filter by the content objects created after the given timestamp(in milliseconds). Example: `createdAfter:1457997111`. + - **modifiedBefore** : Filter by the content objects modified before the given timestamp(in milliseconds). Example: `modifiedBefore:1457997222`. + - **modifiedAfter** : Filter by the content objects modified after the given timestamp(in milliseconds). Example: `modifiedAfter:1457997111`. + - **type** : Filter by the type of the content object. Example: `type:folder`. + You can also use multiple filters in one query. For example to search for all content objects created by user with identifier 000000000000968B with creation timestamp after 1457997222 containing the text Test, the query would look like: + `createdBy:000000000000968B createdAfter:1457997222 Test` + required: true + schema: + type: string + example: createdBy:000000000000968B Test + - name: limit + in: query + description: Maximum number of items you want in the response. + required: false + schema: + type: integer + format: int32 + example: 10 + default: 100 + - name: offset + in: query + description: The position or row from where to start the search operation. + required: false + schema: + type: integer + format: int32 + example: 5 + default: 0 + responses: + '200': + description: List of folders and parsers matching the search query. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersSearchResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/lock: + post: + tags: + - parsersLibraryManagement + summary: Lock a folder or a parser. + description: | + Locking requires the `LockParsers` capability. When an object is locked, it can't be moved or deleted and only the local fields can be modified. Locking recursively locks all of the objects children. + operationId: systemParsersLockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be locked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/system/parsers/{id}/unlock: + post: + tags: + - parsersLibraryManagement + summary: Unlock a folder or a parser. + description: | + Unlocking requires the `LockParsers` capability. It is only possible to unlock the highest locked object in a tree of locked objects. Unlocking recursively unlocks all of the objects children. + operationId: systemParsersUnlockById + parameters: + - name: id + in: path + description: The id of the folder or parser that needs to be unlocked. + required: true + schema: + type: string + responses: + '200': + description: Updated folder or parser. + content: + application/json: + schema: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ParsersLibraryFolderResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + - children + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + children: + type: array + description: Children of the folder. + items: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + discriminator: + propertyName: type + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + IdToParsersLibraryBaseResponseMap: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + ParsersLibraryBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Locking/Unlocking requires the `LockParsers` capability. Locked objects can only be `Localized`. Updating or moving requires unlocking the object. Locking/Unlocking recursively locks all of the objects children. All children of a locked object must be locked. + default: false + discriminator: + propertyName: type + ParsersLibraryBaseResponse: + required: + - contentType + - createdAt + - createdBy + - description + - id + - isLocked + - isMutable + - isSystem + - modifiedAt + - modifiedBy + - name + - parentId + - type + - version + type: object + properties: + id: + type: string + description: Identifier of the folder or parser. + name: + type: string + description: Name of the folder or parser. + description: + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + createdAt: + type: string + description: | + Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: + type: string + description: | + Type of the content. Valid values: + 1) Folder + 2) Parser + type: + type: string + description: Type of the object model. + isLocked: + type: boolean + description: Whether the object is locked. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + discriminator: + propertyName: type + ParsersLibraryBaseUpdate: + required: + - description + - name + - version + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + version: + type: integer + description: Version of the folder or parser. + format: int64 + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + Path: + required: + - path + - pathItems + type: object + properties: + pathItems: + type: array + description: Elements of the path. + items: + $ref: '#/components/schemas/PathItem' + path: + type: string + description: String representation of the path. + ContentCopyParams: + required: + - parentId + type: object + properties: + parentId: + type: string + description: Identifier of the parent folder to copy to. + name: + type: string + description: Optionally provide a new name. + description: + type: string + description: Optionally provide a new description. + ParsersLibraryExportBase: + required: + - description + - name + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the folder or parser. + description: + maxLength: 4096 + type: string + description: Description of the folder or parser. + type: + type: string + description: Type of the object model. + discriminator: + propertyName: type + ListParsersLibraryItemWithPath: + type: array + description: List of folders or parsers. + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + ParsersLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/ParsersLibraryBaseResponse' + path: + type: string + description: Path of the folder or parser. + example: /Parsers/SampleFolder/TestParser + ParsersSearchResponse: + type: object + properties: + parsers_search: + type: array + items: + $ref: '#/components/schemas/ParsersLibraryItemWithPath' + x-stackQL-resources: + root: + id: sumologic.parsers.root + name: root + title: Root + methods: + get: + operation: + $ref: '#/paths/~1v1~1parsers~1root/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + parsers: + id: sumologic.parsers.parsers + name: parsers + title: Parsers + methods: + read_by_ids: + operation: + $ref: '#/paths/~1v1~1parsers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: + operation: + $ref: '#/paths/~1v1~1parsers/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + get: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + lock: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1lock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unlock: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1unlock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + move: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1move/post' + response: + mediaType: application/json + openAPIDocKey: '200' + copy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1copy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + export: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1export/get' + response: + mediaType: application/json + openAPIDocKey: '200' + import: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1parsers~1{parentId}~1import/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get_by_path: + operation: + $ref: '#/paths/~1v1~1parsers~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/parsers/methods/get' + - $ref: '#/components/x-stackQL-resources/parsers/methods/get_by_path' + insert: + - $ref: '#/components/x-stackQL-resources/parsers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/parsers/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/parsers/methods/delete' + replace: [] + paths: + id: sumologic.parsers.paths + name: paths + title: Paths + methods: + get: + operation: + $ref: '#/paths/~1v1~1parsers~1{id}~1path/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + search: + id: sumologic.parsers.search + name: search + title: Search + methods: + list: + operation: + $ref: '#/paths/~1v1~1parsers~1search/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.parsers_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/ParsersSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"parsers_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + system_parsers: + id: sumologic.parsers.system_parsers + name: system_parsers + title: System Parsers + methods: + lock: + operation: + $ref: '#/paths/~1v1~1system~1parsers~1{id}~1lock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unlock: + operation: + $ref: '#/paths/~1v1~1system~1parsers~1{id}~1unlock/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/partitions.yaml b/providers/src/sumologic/v00.00.00000/services/partitions.yaml index 4b55931e..06be71de 100644 --- a/providers/src/sumologic/v00.00.00000/services/partitions.yaml +++ b/providers/src/sumologic/v00.00.00000/services/partitions.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Partitions API + description: Partitions (indexes), their retention and decommissioning, and the partition quota. + version: 1.0.0 paths: /v1/partitions: get: @@ -190,6 +195,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/partitions/quota: + get: + tags: + - partitionManagement + summary: Provides information about partitions quota. + description: Every customer can use a limited number of partitions. This endpoint allows learning about these limitations and remaining quota. + operationId: getPartitionsQuota + responses: + '200': + description: Current state of partitions quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/PartitionsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListPartitionsResponse: @@ -226,64 +251,59 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - Partition: - allOf: - - $ref: '#/components/schemas/CreatePartitionDefinition' - - $ref: '#/components/schemas/ViewRetentionProperties' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - - totalBytes - properties: - id: - type: string - description: Unique identifier for the partition. - example: '1' - totalBytes: - type: integer - description: Size of data in partition in bytes. - format: int64 - example: 42 - isActive: - type: boolean - description: This has the value `true` if the partition is active and `false` if it has been decommissioned. - indexType: - pattern: ^(DefaultIndex|AuditIndex|Partition)$ - type: string - description: This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. - example: Partition - dataForwardingId: - type: string - description: Id of the data forwarding configuration to be used by the partition. - ErrorDescription: + CreatePartitionDefinition: required: - - code - - message + - name + - routingExpression type: object properties: - code: + name: + maxLength: 255 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The name of the partition. + example: apache + routingExpression: + maxLength: 16384 + minLength: 1 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: The query that defines the data to be included in the partition. + example: _sourcecategory=*/Apache + analyticsTier: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreatePartitionDefinition: + description: |- + The Data Tier where the data in the partition will reside. Possible values are: + 1. `continuous` + 2. `frequent` + 3. `infrequent` + Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. + example: continuous + x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account. + x-limited-example: flex + retentionPeriod: + type: integer + description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. + example: 365 + default: -1 + isCompliant: + type: boolean + description: Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. + example: false + default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + example: true + Partition: + type: object required: - name - routingExpression - type: object + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + - totalBytes properties: name: maxLength: 255 @@ -297,7 +317,6 @@ components: description: The query that defines the data to be included in the partition. example: _sourcecategory=*/Apache analyticsTier: - pattern: ^(frequent|infrequent|continuous)$ type: string description: |- The Data Tier where the data in the partition will reside. Possible values are: @@ -306,8 +325,8 @@ components: 3. `infrequent` Note: The "infrequent" and "frequent" tiers are only available to Cloud Flex Credits Enterprise Suite accounts. example: continuous - default: continuous - x-pattern-message: must be one of `continuous`, `frequent` or `infrequent` + x-limited-description: The Data Tier where the data in the partition will reside. You can leave it empty or send `flex`. It is the only value applicable on your account. + x-limited-example: flex retentionPeriod: type: integer description: The number of days to retain data in the partition, or -1 to use the default value for your account. Only relevant if your account has variable retention enabled. @@ -318,9 +337,10 @@ components: description: Whether the partition is compliant or not. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition is marked compliant. A partition once marked compliant, cannot be marked non-compliant later. example: false default: false - ViewRetentionProperties: - type: object - properties: + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. + example: true newRetentionPeriod: type: integer description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. @@ -330,19 +350,11 @@ components: type: string description: When the newRetentionPeriod will become effective in UTC format. format: date-time - MetadataModel: - required: - - createdAt - - createdBy - - modifiedAt - - modifiedBy - type: object - properties: createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -351,11 +363,31 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the partition. + example: '1' + totalBytes: + type: integer + description: Size of data in partition in bytes. + format: int64 + example: 42 + isActive: + type: boolean + description: This has the value `true` if the partition is active and `false` if it has been decommissioned. + indexType: + pattern: ^(DefaultIndex|AuditIndex|Partition)$ + type: string + description: This has the value `DefaultIndex`, `AuditIndex`or `Partition` depending upon the type of partition. + example: Partition + dataForwardingId: + type: string + description: Id of the data forwarding configuration to be used by the partition. UpdatePartitionDefinition: type: object properties: @@ -365,429 +397,214 @@ components: example: 365 reduceRetentionPeriodImmediately: type: boolean - description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. + description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. default: false isCompliant: type: boolean description: Whether to mark a partition as compliant. Mark a partition as compliant if it contains data used for compliance or audit purpose. Retention for a compliant partition can only be increased and cannot be reduced after the partition marked as compliant. A partition once marked compliant, cannot be marked non-compliant later. example: false default: false + isIncludedInDefaultSearch: + type: boolean + description: Indicates whether the partition is included in the default search scope. When executing a query such as "error | count," certain partitions are automatically part of the search scope. However, for specific partitions, the user must explicitly mention the partition using the _index term, as in "_index=webApp error | count". This property governs the default inclusion of the partition in the search scope. Configuring this property is exclusively permitted for flex partitions. routingExpression: maxLength: 16384 minLength: 1 type: string description: The query that defines the data to be included in the partition. example: _sourcecategory=*/Apache - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + PartitionsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Partitions allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Partitions allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 x-stackQL-resources: partitions: id: sumologic.partitions.partitions name: partitions title: Partitions methods: - listPartitions: + list: operation: $ref: '#/paths/~1v1~1partitions/get' response: mediaType: application/json openAPIDocKey: '200' - createPartition: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1partitions/post' response: mediaType: application/json openAPIDocKey: '200' - getPartition: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1partitions~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updatePartition: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1partitions~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/partitions/methods/getPartition' - - $ref: '#/components/x-stackQL-resources/partitions/methods/listPartitions' - insert: - - $ref: '#/components/x-stackQL-resources/partitions/methods/createPartition' - update: [] - delete: [] - decommission: - id: sumologic.partitions.decommission - name: decommission - title: Decommission - methods: - decommissionPartition: + request: + mediaType: application/json + nativeCasing: camel + decommission: operation: $ref: '#/paths/~1v1~1partitions~1{id}~1decommission/post' response: mediaType: application/json openAPIDocKey: '200' + cancel_retention_update: + operation: + $ref: '#/paths/~1v1~1partitions~1{id}~1cancelRetentionUpdate/post' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] - update: [] + select: + - $ref: '#/components/x-stackQL-resources/partitions/methods/get' + - $ref: '#/components/x-stackQL-resources/partitions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/partitions/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/partitions/methods/update' delete: [] - cancel_retention_update: - id: sumologic.partitions.cancel_retention_update - name: cancel_retention_update - title: Cancel_retention_update + replace: [] + quota: + id: sumologic.partitions.quota + name: quota + title: Quota methods: - cancelRetentionUpdate: + get: operation: - $ref: '#/paths/~1v1~1partitions~1{id}~1cancelRetentionUpdate/post' + $ref: '#/paths/~1v1~1partitions~1quota/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/quota/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - partitions - description: partitions - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/password_policy.yaml b/providers/src/sumologic/v00.00.00000/services/password_policy.yaml index 3615e616..77dbcf86 100644 --- a/providers/src/sumologic/v00.00.00000/services/password_policy.yaml +++ b/providers/src/sumologic/v00.00.00000/services/password_policy.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Password Policy API + description: The organization password policy. + version: 1.0.0 paths: /v1/passwordPolicy: get: @@ -96,7 +101,7 @@ components: example: 365 default: 365 minUniquePasswords: - maximum: 10 + maximum: 12 minimum: 4 type: integer description: The minimum number of unique new passwords that a user must use before an old password can be reused. @@ -137,6 +142,11 @@ components: description: If MFA should be remembered on the browser. example: true default: true + disallowWeakPasswords: + type: boolean + description: If weak passwords should be disallowed. By default, this field is set to `false`. + example: false + default: false description: Password Policy ErrorResponse: required: @@ -177,375 +187,70 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: password_policy: id: sumologic.password_policy.password_policy name: password_policy - title: Password_policy + title: Password Policy methods: - getPasswordPolicy: + get: operation: $ref: '#/paths/~1v1~1passwordPolicy/get' response: mediaType: application/json openAPIDocKey: '200' - setPasswordPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1passwordPolicy/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/password_policy/methods/getPasswordPolicy' + - $ref: '#/components/x-stackQL-resources/password_policy/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/password_policy/methods/update' delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - password_policy - description: passwordPolicy - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/plan.yaml b/providers/src/sumologic/v00.00.00000/services/plan.yaml deleted file mode 100644 index c0a232fa..00000000 --- a/providers/src/sumologic/v00.00.00000/services/plan.yaml +++ /dev/null @@ -1,700 +0,0 @@ -paths: - /v1/plan/pendingUpdateRequest: - get: - tags: - - accountManagement - summary: Get the pending plan update request, if any. - description: Get the pending plan update request which will be applicable from next billing cycle. - operationId: getPendingUpdateRequest - responses: - '200': - description: Pending plan update request. - content: - application/json: - schema: - $ref: '#/components/schemas/PendingUpdateRequest' - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' - delete: - tags: - - accountManagement - summary: Delete the pending plan update request, if any. - description: Delete the pending plan update request which would be applicable from next billing cycle. - operationId: deletePendingUpdateRequest - responses: - '204': - description: Deleted the pending update request. - default: - description: Operation failed with an error. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorResponse' -components: - schemas: - PendingUpdateRequest: - required: - - createdOn - - plan - type: object - properties: - createdOn: - type: string - description: The date on which the update request was created. - format: date - plan: - $ref: '#/components/schemas/CurrentPlan' - description: The pending plan update request for the account - ErrorResponse: - required: - - errors - - id - type: object - properties: - id: - type: string - description: An identifier for the error; this is unique to the specific API request. - example: IUUQI-DGH5I-TJ045 - errors: - type: array - description: A list of one or more causes of the error. - example: - - code: auth:password_too_short - message: Your password was too short. - - code: auth:password_character_classes - message: Your password did not contain any non-alphanumeric characters - items: - $ref: '#/components/schemas/ErrorDescription' - CurrentPlan: - required: - - billingFrequency - - planCost - - productId - type: object - properties: - productId: - pattern: ^(Essentials|Trial|Free|EnterpriseOps|EnterpriseSec|EnterpriseSuite)$ - type: string - description: | - Unique identifier of the product in current plan. Valid values are: 1. `Free` 2. `Trial` 3. `Essentials` 4. `EnterpriseOps` 5. `EnterpriseSec` 6. `EnterpriseSuite` - example: Essentials - x-pattern-message: 'must be one of the following: `Essentials`, `Trial`, `Free`, `EnterpriseOps`, `EnterpriseSec`, `EnterpriseSuite`' - planCost: - type: number - description: Cost incurred for the current plan. - format: double - example: 725.46 - billingFrequency: - pattern: ^(Monthly|Annually)$ - type: string - description: | - Billing frequency for the current plan. Valid values are: 1. `Monthly` 2. `Annually` - example: Monthly - x-pattern-message: 'must be one of the following: `Monthly` or `Annually`' - consumables: - type: array - description: Consumables in the current plan. - items: - $ref: '#/components/schemas/Consumable' - planType: - pattern: ^(Free|Trial|Paid)$ - type: string - description: Whether the account is `Free`/`Trial`/`Paid` - example: Free - x-pattern-message: 'must be one of the following: `Free`, `Trial` or `Paid`' - planName: - type: string - description: The plan name for the product being used. - discountAmount: - type: integer - description: The discount offered for the given contract period. - contractPeriod: - $ref: '#/components/schemas/ContractPeriod' - currentBillingPeriod: - $ref: '#/components/schemas/CurrentBillingPeriod' - credits: - type: integer - description: Numerical value of the amount of credits - format: int64 - example: 300 - baselines: - $ref: '#/components/schemas/Baselines' - pendingUpdateRequest: - type: boolean - description: True if there is a pending update request - prorationDetails: - $ref: '#/components/schemas/ProrationDetails' - description: Current plan of the account. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - Consumable: - required: - - consumableId - - quantity - type: object - properties: - consumableId: - pattern: ^(Storage|Metrics|Continuous|Credits)$ - type: string - description: | - Unique identifier of the consumable. Valid values are: 1. `Storage` 2. `Metrics` 3. `Continuous` 4. `Credits` - example: Metrics - x-pattern-message: 'must be one of the following: `Storage`, `Metrics`, `Continuous`, `Credits`' - quantity: - $ref: '#/components/schemas/Quantity' - description: Details of consumable and its quantity. - ContractPeriod: - required: - - endDate - - startDate - type: object - properties: - startDate: - type: string - description: Start date of the contract. - format: date - endDate: - type: string - description: End date of the contract. - format: date - CurrentBillingPeriod: - required: - - endDate - - startDate - type: object - properties: - startDate: - type: string - description: Start date of the current billing period. - format: date - example: '2012-02-02' - endDate: - type: string - description: End date of the current billing period. - format: date - example: '2012-02-02' - Baselines: - type: object - properties: - continuousIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of continuous logs ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - continuousStorage: - maximum: 30 - minimum: 30 - type: integer - description: Number of days of continuous logs storage to allocate to the organization, in Days. - format: int64 - example: 30 - default: 30 - frequentIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of frequent logs ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - frequentStorage: - maximum: 30 - minimum: 30 - type: integer - description: Number of days of frequent logs storage to allocate to the organization, in Days. - format: int64 - example: 30 - default: 30 - infrequentIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of infrequent logs ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - infrequentStorage: - maximum: 30 - minimum: 30 - type: integer - description: The amount of infrequent logs storage to allocate to the organization, in Days. - format: int64 - example: 30 - default: 30 - infrequentScan: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of infrequent logs scan to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - metrics: - maximum: 5000000 - minimum: 0 - type: integer - description: The amount of Metrics usage to allocate to the organization, in DPMs (Data Points per Minute). - format: int64 - example: 50000 - default: 0 - cseIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of CSE ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - cseStorage: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of CSE storage to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - tracingIngest: - maximum: 1000000 - minimum: 0 - type: integer - description: The amount of tracing data ingest to allocate to the organization, in GBs. - format: int64 - example: 50000 - default: 0 - description: Details of consumable and its quantity. - ProrationDetails: - required: - - proratedCost - - proratedCredits - - remainingDays - type: object - properties: - remainingDays: - type: integer - description: Remaining days in the billing cycle for which the new plan is prorated. - format: int32 - proratedCredits: - type: integer - description: Total prorated credits that get added to the bucket based on the remaining billing period. - format: int32 - proratedCost: - type: number - description: Cost of the total prorated credits. - format: double - description: Details about the prorated credits and prorated cost in case of immediate monthly to monthly cycle upgrades. - Quantity: - required: - - unit - - value - type: object - properties: - value: - type: integer - description: The value of the consumable in units. - format: int64 - example: 61425 - unit: - pattern: ^(GB|DPM|Credits|Days)$ - type: string - description: | - The unit of the consumable. Units are provided in: 1. `GB` 2. `DPM`(Data Points Per Minute) 3. `Credits` 4. `Days` - example: GB - x-pattern-message: 'must be one of the following: `GB`, `DPM`, `Credits`, `Days`' - description: Details of unit of consumption and its value. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} - x-stackQL-resources: - pending_update_request: - id: sumologic.plan.pending_update_request - name: pending_update_request - title: Pending_update_request - methods: - getPendingUpdateRequest: - operation: - $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/get' - response: - mediaType: application/json - openAPIDocKey: '200' - deletePendingUpdateRequest: - operation: - $ref: '#/paths/~1v1~1plan~1pendingUpdateRequest/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/getPendingUpdateRequest' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/pending_update_request/methods/deletePendingUpdateRequest' -openapi: 3.0.0 -servers: - - url: https://api.{region}.sumologic.com/api - variables: - region: - description: SumoLogic region - enum: - - us2 - - au - - ca - - de - - eu - - fed - - in - - jp - default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - plan - description: plan - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png diff --git a/providers/src/sumologic/v00.00.00000/services/policies.yaml b/providers/src/sumologic/v00.00.00000/services/policies.yaml index d2216bd9..1faf9647 100644 --- a/providers/src/sumologic/v00.00.00000/services/policies.yaml +++ b/providers/src/sumologic/v00.00.00000/services/policies.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Policies API + description: Organization security and behaviour policies - audit, search audit, data access level, data deletion, session limits, dashboard sharing, timestamp format, OAuth CIMD and access key lifetime. + version: 1.0.0 paths: /v1/policies/audit: get: @@ -269,6 +274,186 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/policies/accessKeysLifetime: + get: + tags: + - policiesManagement + summary: Get access key lifetime policy. + description: Get access key lifetime policy. This policy defines the maximum time an access key has once it has been created or rotated before it must be rotated. Otherwise, it will no longer be able to be used. The value 0 represents that the access keys will never expire and the time specified can be configured by the organization. + operationId: getAccessKeysLifetimePolicy + responses: + '200': + description: The Access Key Lifetime Policy. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set access keys lifetime policy. + description: Sets the access keys lifetime policy. By setting this policy, the time an access key has to live before it is expired or must be rotated is defined based on the period (default = never) configured for the organization. Setting the value to 0 would represent that the access keys never expire. + operationId: setAccessKeysLifetimePolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + required: true + responses: + '200': + description: Access Keys Lifetime policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeysLifetimePolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/dataDeletion: + get: + tags: + - policiesManagement + summary: Get Data Deletion policy. + description: Get the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + operationId: getDataDeletionPolicy + responses: + '200': + description: The Data Deletion policy. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Data Deletion policy. + description: Set the Data Deletion policy. This policy specifies whether users are allowed to delete data from Sumo Logic. Disabling this policy prevents users from deleting log data. [Learn More](https://help.sumologic.com/Manage/Security/Data_Deletion) + operationId: setDataDeletionPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + required: true + responses: + '200': + description: Data Deletion policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/DataDeletionPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/timestampFormat: + get: + tags: + - policiesManagement + summary: Get Alert Timestamp Format policy. + description: Get the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + operationId: getTimestampFormatPolicy + responses: + '200': + description: The Alert Timestamp Format policy. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set Alert Timestamp Format policy. + description: Set the Alert Timestamp Format policy. This policy controls the date/time format used in alert and recovery notification payloads across all connections and monitor types. When set to ISO, timestamps use the format yyyy-MM-dd HH:mm:ss z. When set to LEGACY, timestamps use the format MM/dd/yyyy hh:mm:ss a z. + operationId: setTimestampFormatPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + required: true + responses: + '200': + description: Alert Timestamp Format policy was set successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/TimestampFormatPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/policies/oAuthCimd: + get: + tags: + - policiesManagement + summary: Get OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + operationId: getOAuthCimdPolicy + responses: + '200': + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - policiesManagement + summary: Set OAuth policy for Client ID Metadata Documents (CIMD) authentication. + description: If disabled then authentication with Client ID Metadata Documents (CIMD) is disabled and no new CIMD clients can be created. If set to "enabled" then authentication with CIMD clients is enabled and new CIMD clients can be created automatically as part of authentication. If set to "enabled-pre-registered-only" then authentication with CIMD clients is enabled but new CIMD clients can only be created manually on the OAuth Clients page in the UI. + operationId: setOAuthCimdPolicy + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + required: true + responses: + '200': + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthCimdPolicy' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: AuditPolicy: @@ -301,30 +486,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 SearchAuditPolicy: required: - enabled @@ -385,485 +546,430 @@ components: example: 1d x-pattern-message: 'must be one of the following: `5m`, `15m`, `30m`, `1h`, `2h`, `6h`, `12h`, `1d`, `2d`, `3d`, `5d`, or `7d`' description: Max User Session Timeout policy. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + AccessKeysLifetimePolicy: + required: + - accessKeysLifetimeInDays + type: object + properties: + accessKeysLifetimeInDays: + pattern: ^(0|30|45|60|90|180|365)$ + type: string + description: 'The number of days it will take for an access key to expire without being rotated/copied. Setting it to 0 (never) means that access keys will never expire. Valid values are: `0`, `30`, `45`, `60`, `90`, `180`, or `365`' + example: '60' + x-pattern-message: 'must be one of the following: `0`, `30`, `45`, `60`, `90`, `180`, or `365`' + description: Access Keys Lifetime policy. + DataDeletionPolicy: + required: + - enabled + type: object + properties: + enabled: + type: boolean + description: Whether the Data Deletion policy is enabled. + example: true + description: Whether the Data Deletion policy is enabled. + TimestampFormatPolicy: + required: + - timestampFormat + type: object + properties: + timestampFormat: + type: string + description: 'The timestamp format used in alert notification payloads. Valid values: `ISO`, `LEGACY`. ISO format: yyyy-MM-dd HH:mm:ss z. LEGACY format: MM/dd/yyyy hh:mm:ss a z.' + example: LEGACY + description: Alert Timestamp Format policy. + OAuthCimdPolicy: + required: + - oAuthCimdPolicy + type: object + properties: + oAuthCimdPolicy: + pattern: ^(disabled|enabled|enabled-pre-registered-only)$ + type: string + description: 'OAuth CIMD policy. Valid values are: `disabled`, `enabled`, ''enabled-pre-registered-only''' + example: disabled + x-pattern-message: 'must be one of the following: `disabled`, `enabled`, ''enabled-pre-registered-only''' + description: The OAuth policy for Client ID Metadata Documents (CIMD) authentication. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 x-stackQL-resources: audit: id: sumologic.policies.audit name: audit title: Audit methods: - getAuditPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1audit/get' response: mediaType: application/json openAPIDocKey: '200' - setAuditPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1audit/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/audit/methods/getAuditPolicy' + - $ref: '#/components/x-stackQL-resources/audit/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/audit/methods/update' delete: [] + replace: [] search_audit: id: sumologic.policies.search_audit name: search_audit - title: Search_audit + title: Search Audit methods: - getSearchAuditPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1searchAudit/get' response: mediaType: application/json openAPIDocKey: '200' - setSearchAuditPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1searchAudit/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/search_audit/methods/getSearchAuditPolicy' + - $ref: '#/components/x-stackQL-resources/search_audit/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/search_audit/methods/update' delete: [] + replace: [] share_dashboards_outside_organization: id: sumologic.policies.share_dashboards_outside_organization name: share_dashboards_outside_organization - title: Share_dashboards_outside_organization + title: Share Dashboards Outside Organization methods: - getShareDashboardsOutsideOrganizationPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1shareDashboardsOutsideOrganization/get' response: mediaType: application/json openAPIDocKey: '200' - setShareDashboardsOutsideOrganizationPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1shareDashboardsOutsideOrganization/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/share_dashboards_outside_organization/methods/getShareDashboardsOutsideOrganizationPolicy' + - $ref: '#/components/x-stackQL-resources/share_dashboards_outside_organization/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/share_dashboards_outside_organization/methods/update' delete: [] + replace: [] data_access_level: id: sumologic.policies.data_access_level name: data_access_level - title: Data_access_level + title: Data Access Level methods: - getDataAccessLevelPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1dataAccessLevel/get' response: mediaType: application/json openAPIDocKey: '200' - setDataAccessLevelPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1dataAccessLevel/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/data_access_level/methods/getDataAccessLevelPolicy' + - $ref: '#/components/x-stackQL-resources/data_access_level/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/data_access_level/methods/update' delete: [] + replace: [] user_concurrent_sessions_limit: id: sumologic.policies.user_concurrent_sessions_limit name: user_concurrent_sessions_limit - title: User_concurrent_sessions_limit + title: User Concurrent Sessions Limit methods: - getUserConcurrentSessionsLimitPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1userConcurrentSessionsLimit/get' response: mediaType: application/json openAPIDocKey: '200' - setUserConcurrentSessionsLimitPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1userConcurrentSessionsLimit/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/user_concurrent_sessions_limit/methods/getUserConcurrentSessionsLimitPolicy' + - $ref: '#/components/x-stackQL-resources/user_concurrent_sessions_limit/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/user_concurrent_sessions_limit/methods/update' delete: [] + replace: [] max_user_session_timeout: id: sumologic.policies.max_user_session_timeout name: max_user_session_timeout - title: Max_user_session_timeout + title: Max User Session Timeout methods: - getMaxUserSessionTimeoutPolicy: + get: operation: $ref: '#/paths/~1v1~1policies~1maxUserSessionTimeout/get' response: mediaType: application/json openAPIDocKey: '200' - setMaxUserSessionTimeoutPolicy: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1policies~1maxUserSessionTimeout/put' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/max_user_session_timeout/methods/getMaxUserSessionTimeoutPolicy' + - $ref: '#/components/x-stackQL-resources/max_user_session_timeout/methods/get' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/max_user_session_timeout/methods/update' delete: [] -openapi: 3.0.0 + replace: [] + access_keys_lifetime: + id: sumologic.policies.access_keys_lifetime + name: access_keys_lifetime + title: Access Keys Lifetime + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1accessKeysLifetime/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1accessKeysLifetime/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_keys_lifetime/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/access_keys_lifetime/methods/update' + delete: [] + replace: [] + data_deletion: + id: sumologic.policies.data_deletion + name: data_deletion + title: Data Deletion + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1dataDeletion/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1dataDeletion/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/data_deletion/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/data_deletion/methods/update' + delete: [] + replace: [] + timestamp_format: + id: sumologic.policies.timestamp_format + name: timestamp_format + title: Timestamp Format + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1timestampFormat/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1timestampFormat/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/timestamp_format/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/timestamp_format/methods/update' + delete: [] + replace: [] + oauth_cimd: + id: sumologic.policies.oauth_cimd + name: oauth_cimd + title: Oauth Cimd + methods: + get: + operation: + $ref: '#/paths/~1v1~1policies~1oAuthCimd/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1policies~1oAuthCimd/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/oauth_cimd/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/oauth_cimd/methods/update' + delete: [] + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - policies - description: policies - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/roles.yaml b/providers/src/sumologic/v00.00.00000/services/roles.yaml index 521d9c88..a2bc520b 100644 --- a/providers/src/sumologic/v00.00.00000/services/roles.yaml +++ b/providers/src/sumologic/v00.00.00000/services/roles.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Roles API + description: Roles (v1 and v2) and role assignment to users. + version: 1.0.0 paths: /v1/roles: get: @@ -223,6 +228,230 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v2/roles: + get: + tags: + - roleManagementV2 + summary: Get a list of roles. + description: Get a list of all the roles in the organization. The response is paginated with a default limit of 100 roles per page. + operationId: listRolesV2 + parameters: + - name: limit + in: query + description: Limit the number of roles returned in the response. The number of roles returned may be less than the `limit`. + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + format: int32 + default: 100 + - name: token + in: query + description: Continuation token to get the next page of results. A page object with the next continuation token is returned in the response body. Subsequent GET requests should specify the continuation token to get the next page of results. `token` is set to null when no more pages are left. + required: false + schema: + type: string + - name: sortBy + in: query + description: Sort the list of roles by the `name` field. + required: false + schema: + type: string + - name: name + in: query + description: Only return roles matching the given name. + required: false + schema: + minLength: 1 + type: string + responses: + '200': + description: A paginated list of roles in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListRoleModelsResponseV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - roleManagementV2 + summary: Create a new role. + description: Create a new role in the organization. + operationId: createRoleV2 + parameters: [] + requestBody: + description: Information about the new role. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleDefinitionV2' + required: true + responses: + '200': + description: The role has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-create: createRoleV2 + /v2/roles/{id}: + get: + tags: + - roleManagementV2 + summary: Get a role. + description: Get a role with the given identifier in the organization. + operationId: getRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to fetch. + required: true + schema: + type: string + responses: + '200': + description: Role object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/GetRoleDefinitionV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-read: getRoleV2 + put: + tags: + - roleManagementV2 + summary: Update a role. + description: Update an existing role in the organization. + operationId: updateRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the role. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateRoleDefinitionV2' + required: true + responses: + '200': + description: The user was successfully modified. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-update: updateRoleV2 + delete: + tags: + - roleManagementV2 + summary: Delete a role. + description: Delete a role with the given identifier from the organization. + operationId: deleteRoleV2 + parameters: + - name: id + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + responses: + '204': + description: Role was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + x-tf-delete: deleteRoleV2 + /v2/roles/{roleId}/users/{userId}: + put: + tags: + - roleManagementV2 + summary: Assign a role to a user. + description: Assign a role to a user in the organization. + operationId: assignRoleToUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to assign. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to assign the role to. + required: true + schema: + type: string + responses: + '200': + description: Role was successfully assigned to the user. + content: + application/json: + schema: + $ref: '#/components/schemas/RoleModelV2' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - roleManagementV2 + summary: Remove role from a user. + description: Remove a role from a user in the organization. + operationId: removeRoleFromUserV2 + parameters: + - name: roleId + in: path + description: Identifier of the role to delete. + required: true + schema: + type: string + - name: userId + in: path + description: Identifier of the user to remove the role from. + required: true + schema: + type: string + responses: + '204': + description: Role was successfully removed from the user. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListRoleModelsResponse: @@ -259,47 +488,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - RoleModel: - allOf: - - $ref: '#/components/schemas/CreateRoleDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the role. - example: 0000000000E20FE3 - systemDefined: - type: boolean - description: Role is system or user defined. - example: false - x-tf-generated-properties: id,name,description,filterPredicate,capabilities - x-tf-resource-name: Role - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 CreateRoleDefinition: required: - name @@ -332,7 +520,7 @@ components: capabilities: type: array description: |- - List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are ### Data Management - viewCollectors - manageCollectors @@ -342,6 +530,7 @@ components: - manageFieldExtractionRules - manageS3DataForwarding - manageContent + - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews @@ -353,6 +542,12 @@ components: - viewAccountOverview - manageTokens - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines ### Entity management - manageEntityTypeConfig @@ -365,6 +560,7 @@ components: ### Security - managePasswordPolicy - ipAllowlisting + - ipWhitelisting - createAccessKeys - manageAccessKeys - manageSupportAccountAccess @@ -377,6 +573,7 @@ components: ### Dashboards - shareDashboardWorld - shareDashboardAllowlist + - shareDashboardWhitelist ### UserManagement - manageUsersAndRoles @@ -387,11 +584,132 @@ components: ### Cloud SIEM Enterprise - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities ### Alerting - viewMonitorsV2 - manageMonitorsV2 - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement example: - manageContent - manageDataVolumeFeed @@ -403,38 +721,1105 @@ components: type: boolean description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. default: true - MetadataModel: + RoleModel: + type: object + x-tf-generated-properties: id,name,description,filterPredicate,capabilities + x-tf-resource-name: Role required: + - name - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: - createdAt: + name: + maxLength: 128 + minLength: 1 type: string - description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - example: '2018-10-16T09:10:00Z' - createdBy: + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 type: string - description: Identifier of the user who created the resource. - example: 0000000006743FDD - modifiedAt: + description: Description of the role. + example: Manage data of the org. + filterPredicate: type: string - description: Last modification timestamp in UTC. - format: date-time - example: '2018-10-16T09:10:00Z' - modifiedBy: + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + UpdateRoleDefinition: + required: + - capabilities + - description + - filterPredicate + - name + - users + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + filterPredicate: + type: string + description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. + example: '!_sourceCategory=billing' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + ListRoleModelsResponseV2: + required: + - data + type: object + properties: + data: + type: array + description: List of roles. + items: + $ref: '#/components/schemas/GetRoleDefinitionV2' + next: + type: string + description: Next continuation token. + example: GDCiRv4vebF3UWFJQ1kySXBOR3Bzh69GR0RyWm9vCtc + CreateRoleDefinitionV2: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + RoleModelV2: + type: object + x-tf-generated-properties: id,name,description,logAnalyticsFilter,auditDataFilter,securityDataFilter,selectionType,selectedViews,capabilities + x-tf-resource-name: RoleV2 + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/docs/manage/users-roles/roles/role-capabilities/) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - manageIndexes + - manageDataStreams + - viewParsers + - viewDataStreams + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - ipWhitelisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + - shareDashboardWhitelist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + - cseViewAutomations + - cseManageContextActions + - cseViewNetworkBlocks + - cseManageInsightTags + - cseViewRules + - cseViewThreatIntelligence + - cseCommentOnInsights + - cseViewEntityGroups + - cseManageEntityConfiguration + - cseManageNetworkBlocks + - cseManageMatchLists + - cseViewCustomInsights + - cseManageActions + - cseManageAutomations + - cseManageMappings + - cseManageThreatIntelligence + - cseViewActions + - cseCreateInsights + - cseManageTagSchemas + - cseInvokeInsights + - cseManageCustomEntityType + - cseViewTagSchemas + - cseDeleteInsights + - cseManageCustomInsights + - cseViewFileAnalysis + - cseManageFileAnalysis + - cseManageEntityCriticality + - cseViewEntityCriticality + - cseViewEntity + - cseManageCustomInsightStatuses + - cseViewContextActions + - cseViewMappings + - cseViewCustomEntityType + - cseManageEntityGroups + - cseViewCustomInsightStatuses + - cseViewEnrichments + - cseManageInsightSignals + - cseManageRules + - cseManageArtifacts + - cseViewMatchLists + - cseManageInsightPolicy + - cseManageEnrichments + - cseViewEntityConfiguration + - cseManageEntity + - cseExecuteAutomations + - cseManageSuppressedEntities + - cseManageInsightStatus + - cseManageInsightAssignee + - cseManageFavoriteFields + - cseViewSuppressedEntities + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + - viewMutingSchedules + - manageMutingSchedules + - adminMonitorsV2 + + ### SLO + - viewSlos + - manageSlos + + ### CloudSoar + - cloudSoarPlaybooksAccess + - cloudSoarNotificationConfigure + - cloudSoarReportAll + - cloudSoarIncidentTriageAccess + - cloudSoarIncidentTaskView + - cloudSoarIncidentChangeOwnership + - cloudSoarIncidentNotesEdit + - cloudSoarAPIEmailEdit + - cloudSoarIncidentTemplatesAccess + - cloudSoarIncidentPlaybooksManage + - cloudSoarGeneralConfigure + - cloudSoarEntitiesAccess + - cloudSoarEntitiesBulkPhysicalDelete + - cloudSoarIncidentAttachmentsAccess + - cloudSoarAppCentralAccess + - cloudSoarBridgeMonitoringAccess + - viewCloudSoar + - cloudSoarIncidentView + - cloudSoarObservabilityAccess + - cloudSoarAPIEmailRead + - cloudSoarAppCentralExport + - cloudSoarWidgetsAll + - cloudSoarIncidentTaskReassign + - cloudSoarIntegrationsAccess + - cloudSoarCustomizationIncidentLabels + - cloudSoarAutomationRulesConfigure + - cloudSoarIncidentTaskAccessAll + - cloudSoarAuditAndInformationConfigureAuditTrail + - cloudSoarIncidentTriageEdit + - cloudSoarIncidentEdit + - cloudSoarNotificationTriage + - cloudSoarIncidentTriageBulkPhysicalDelete + - cloudSoarIncidentNotesAccess + - cloudSoarAPIUse + - cloudSoarIncidentPlaybooksEdit + - cloudSoarDashboardAll + - cloudSoarEntitiesManage + - cloudSoarIncidentTemplatesConfigure + - cloudSoarIncidentTriageAccessAll + - cloudSoarPlaybooksConfigure + - cloudSoarIncidentAccessAll + - cloudSoarCustomizationLogo + - cloudSoarIncidentTaskAccess + - cloudSoarIncidentTriageView + - cloudSoarIntegrationsConfigure + - cloudSoarIncidentManageInvestigators + - cloudSoarIncidentAccess + - cloudSoarAuditAndInformationLicenseInformation + - cloudSoarIncidentBulkOperations + - cloudSoarCustomizationFields + - cloudSoarIncidentTaskEdit + - cloudSoarDashboardAccess + - cloudSoarIncidentAttachmentsEdit + - cloudSoarIncidentFoldersEdit + - cloudSoarUserManagementGroups + - cloudSoarIncidentPlaybooksAccess + - cloudSoarIncidentWarRoomUse + - cloudSoarReportAccess + - cloudSoarAuditAndInformationAuditTrail + - cloudSoarAutomationRulesAccess + - cloudSoarIncidentTriageChangeOwnership + - cloudSoarObservabilityManagement + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + GetRoleDefinitionV2: + type: object + required: + - name + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 - UpdateRoleDefinition: + id: + type: string + description: Unique identifier for the role. + example: 0000000000E20FE3 + systemDefined: + type: boolean + description: Role is system or user defined. + example: false + UpdateRoleDefinitionV2: required: + - auditDataFilter - capabilities - description - - filterPredicate + - logAnalyticsFilter - name + - securityDataFilter + - selectedViews + - selectionType - users type: object properties: @@ -450,10 +1835,32 @@ components: type: string description: Description of the role. example: Manage data of the org. - filterPredicate: + logAnalyticsFilter: type: string - description: A search filter to restrict access to specific logs. The filter is silently added to the beginning of each query a user runs. For example, using '!_sourceCategory=billing' as a filter predicate will prevent users assigned to the role from viewing logs from the source category named 'billing'. - example: '!_sourceCategory=billing' + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/ViewFilterDefinition' users: type: array description: List of user identifiers to assign the role to. @@ -475,6 +1882,7 @@ components: - manageFieldExtractionRules - manageS3DataForwarding - manageContent + - manageApps - dataVolumeIndex - manageConnections - viewScheduledViews @@ -486,7 +1894,194 @@ components: - viewAccountOverview - manageTokens - downloadSearchResults + - viewPipelines + - managePipelines + ### Entity management + - manageEntityTypeConfig + + ### Metrics + - metricsTransformation + - metricsExtraction + - metricsRules + + ### Security + - managePasswordPolicy + - ipAllowlisting + - createAccessKeys + - manageAccessKeys + - manageSupportAccountAccess + - manageAuditDataFeed + - manageSaml + - shareDashboardOutsideOrg + - manageOrgSettings + - changeDataAccessLevel + + ### Dashboards + - shareDashboardWorld + - shareDashboardAllowlist + + ### UserManagement + - manageUsersAndRoles + + ### Observability + - searchAuditIndex + - auditEventIndex + + ### Cloud SIEM Enterprise + - viewCse + ### Alerting + - viewMonitorsV2 + - manageMonitorsV2 + - viewAlerts + example: + - manageContent + - manageDataVolumeFeed + - manageFieldExtractionRules + - manageS3DataForwarding + items: + type: string + autofillDependencies: + type: boolean + description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. + default: true + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + ViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. + example: auditData + RoleDefinition: + required: + - name + type: object + properties: + name: + maxLength: 128 + minLength: 1 + type: string + description: Name of the role. + example: DataAdmin + description: + maxLength: 255 + minLength: 0 + type: string + description: Description of the role. + example: Manage data of the org. + logAnalyticsFilter: + type: string + description: A search filter which would be applied on partitions which belong to Log Analytics product area. + example: '!_sourceCategory=collector' + auditDataFilter: + type: string + description: 'A search filter which would be applied on partitions which belong to Audit Data product area. Help Doc : (https://help.sumologic.com/docs/manage/security/audit-index/).' + example: info + securityDataFilter: + type: string + description: A search filter which would be applied on partitions which belong to Security Data product area. + example: error + selectionType: + type: string + description: |- + Describes the Permission Construct for the list of views in "selectedViews" parameter. + ### Valid Values are : + - `All` selectionType would allow access to all views in the org. + - `Allow` selectionType would allow access to specific views mentioned in "selectedViews" parameter. + - `Deny` selectionType would deny access to specific views mentioned in "selectedViews" parameter. + example: All + selectedViews: + type: array + description: List of views which with specific view level filters in accordance to the selectionType chosen. + items: + $ref: '#/components/schemas/GetViewFilterDefinition' + users: + type: array + description: List of user identifiers to assign the role to. + example: + - 0000000006743FE0 + - 0000000005FCE0EE + items: + type: string + capabilities: + type: array + description: |- + List of [capabilities](https://help.sumologic.com/Manage/Users-and-Roles/Manage-Roles/Role-Capabilities) associated with this role. Valid values are + ### Data Management + - viewCollectors + - manageCollectors + - manageBudgets + - manageDataVolumeFeed + - viewFieldExtraction + - manageFieldExtractionRules + - manageS3DataForwarding + - manageContent + - manageApps + - dataVolumeIndex + - manageConnections + - viewScheduledViews + - manageScheduledViews + - viewPartitions + - managePartitions + - viewFields + - manageFields + - viewAccountOverview + - manageTokens + - downloadSearchResults + - viewPipelines + - managePipelines ### Entity management - manageEntityTypeConfig @@ -536,415 +2131,195 @@ components: type: boolean description: Set this to true if you want to automatically append all missing capability requirements. If set to false an error will be thrown if any capabilities are missing their dependencies. default: true - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + GetViewFilterDefinition: + required: + - viewName + type: object + properties: + viewName: + type: string + description: Name of the view. Help Doc:- (https://help.sumologic.com/docs/manage/partitions-data-tiers/) + example: auditData x-stackQL-resources: roles: id: sumologic.roles.roles name: roles title: Roles methods: - listRoles: + list: operation: $ref: '#/paths/~1v1~1roles/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createRole: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1roles/post' response: mediaType: application/json openAPIDocKey: '200' - getRole: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1roles~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateRole: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1roles~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteRole: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1roles~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + assign_user: + operation: + $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/put' response: mediaType: application/json openAPIDocKey: '200' + remove_user: + operation: + $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/roles/methods/getRole' - - $ref: '#/components/x-stackQL-resources/roles/methods/listRoles' + - $ref: '#/components/x-stackQL-resources/roles/methods/get' + - $ref: '#/components/x-stackQL-resources/roles/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/roles/methods/createRole' - update: [] + - $ref: '#/components/x-stackQL-resources/roles/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/roles/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/roles/methods/deleteRole' - users: - id: sumologic.roles.users - name: users - title: Users + - $ref: '#/components/x-stackQL-resources/roles/methods/delete' + replace: [] + roles_v2: + id: sumologic.roles.roles_v2 + name: roles_v2 + title: Roles V2 methods: - assignRoleToUser: + list: operation: - $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/put' + $ref: '#/paths/~1v2~1roles/get' response: mediaType: application/json openAPIDocKey: '200' - removeRoleFromUser: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1roles~1{roleId}~1users~1{userId}/delete' + $ref: '#/paths/~1v2~1roles/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1roles~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1roles~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1roles~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + assign_user: + operation: + $ref: '#/paths/~1v2~1roles~1{roleId}~1users~1{userId}/put' response: mediaType: application/json openAPIDocKey: '200' + remove_user: + operation: + $ref: '#/paths/~1v2~1roles~1{roleId}~1users~1{userId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] - update: [] + select: + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/get' + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/users/methods/removeRoleFromUser' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/roles_v2/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - roles - description: roles - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/saml.yaml b/providers/src/sumologic/v00.00.00000/services/saml.yaml index 1572d441..02e5b567 100644 --- a/providers/src/sumologic/v00.00.00000/services/saml.yaml +++ b/providers/src/sumologic/v00.00.00000/services/saml.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Saml API + description: SAML identity providers, allowlisted users and SAML lockdown. + version: 1.0.0 paths: /v1/saml/identityProviders: get: @@ -12,9 +17,7 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/SamlIdentityProvider' + $ref: '#/components/schemas/GetIdentityProvidersResponse' default: description: Operation failed with an error. content: @@ -117,9 +120,7 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/AllowlistedUserResult' + $ref: '#/components/schemas/GetAllowlistedUsersResponse' default: description: Operation failed with an error. content: @@ -207,30 +208,159 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/saml/identityProviders/{id}/metadata: + get: + tags: + - samlConfigurationManagement + summary: Get SAML configuration metadata XML. + description: Get metadata XML for a specific SAML configuration within the organization. + operationId: getSamlMetadata + parameters: + - name: id + in: path + description: Identifier of the SAML configuration for which metadata should be returned. + required: true + schema: + type: string + responses: + '200': + description: A SAML configuration metadata XML within the organization. + content: + application/xml: + schema: + type: string + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: SamlIdentityProvider: - allOf: - - $ref: '#/components/schemas/SamlIdentityProviderRequest' - - $ref: '#/components/schemas/AuthnCertificateResult' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier of the SAML Identity Provider. - example: 00000000361130F7 - assertionConsumerUrl: - type: string - description: The URL on Sumo Logic where the IdP will redirect to with its authentication response. - example: https://service.sumologic.com/sumo/saml/consume/9483922 - default: '' - entityId: - type: string - description: A unique identifier that is the intended audience of the SAML assertion. - example: https://service.sumologic.com/sumo/saml/9483922 - default: '' + type: object + required: + - configurationName + - issuer + - x509cert1 + - certificate + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + spInitiatedLoginPath: + type: string + description: This property has been deprecated and is no longer used. + example: http://www.okta.com/abxcseyuiwelflkdjh + deprecated: true + default: '' + configurationName: + type: string + description: Name of the SSO policy or another name used to describe the policy internally. + example: SumoLogic + issuer: + type: string + description: The unique URL assigned to the organization by the SAML Identity Provider. + example: http://www.okta.com/abxcseyuiwelflkdjh + spInitiatedLoginEnabled: + type: boolean + description: True if Sumo Logic redirects users to your identity provider with a SAML AuthnRequest when signing in. + default: false + authnRequestUrl: + type: string + description: The URL that the identity provider has assigned for Sumo Logic to submit SAML authentication requests to the identity provider. + example: https://www.okta.com/app/sumologic/abxcseyuiwelflkdjh/sso/saml + default: '' + x509cert1: + type: string + description: The certificate is used to verify the signature in SAML assertions. + x509cert2: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires. + default: '' + x509cert3: + type: string + description: The backup certificate used to verify the signature in SAML assertions when x509cert1 expires and x509cert2 is empty. + default: '' + onDemandProvisioningEnabled: + $ref: '#/components/schemas/OnDemandProvisioningInfo' + rolesAttribute: + type: string + description: The role that Sumo Logic will assign to users when they sign in. + example: Sumo_Role + default: '' + logoutEnabled: + type: boolean + description: True if users are redirected to a URL after signing out of Sumo Logic. + default: false + logoutUrl: + type: string + description: The URL that users will be redirected to after signing out of Sumo Logic. + example: https://www.sumologic.com + default: '' + emailAttribute: + type: string + description: The email address of the new user account. + example: attribute/subject + default: '' + debugMode: + type: boolean + description: True if additional details are included when a user fails to sign in. + default: false + signAuthnRequest: + type: boolean + description: True if Sumo Logic will send signed Authn requests to the identity provider. + default: false + disableRequestedAuthnContext: + type: boolean + description: True if Sumo Logic will include the RequestedAuthnContext element of the SAML AuthnRequests it sends to the identity provider. + default: false + isRedirectBinding: + type: boolean + description: True if the SAML binding is of HTTP Redirect type. + default: false + certificate: + type: string + description: Authentication Request Signing Certificate for the user. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier of the SAML Identity Provider. + example: 00000000361130F7 + assertionConsumerUrl: + type: string + description: The URL on Sumo Logic where the IdP will redirect to with its authentication response. + example: https://service.sumologic.com/sumo/saml/consume/9483922 + default: '' + entityId: + type: string + description: A unique identifier that is the intended audience of the SAML assertion. + example: https://service.sumologic.com/sumo/saml/9483922 + default: '' + metadataUrl: + type: string + description: The URL to fetch SAML metadata XML. + example: https://api.sumologic.com/api/v1/saml/identityProviders/00000000361130F7/metadata + default: '' ErrorResponse: required: - errors @@ -329,6 +459,40 @@ components: type: boolean description: True if the SAML binding is of HTTP Redirect type. default: false + AllowlistedUserResult: + required: + - canManageSaml + - email + - firstName + - isActive + - lastLogin + - lastName + - userId + type: object + properties: + userId: + type: string + description: Unique identifier of the user. + firstName: + type: string + description: First name of the user. + lastName: + type: string + description: Last name of the user. + email: + type: string + description: Email of the user. + example: john@sumologic.com + canManageSaml: + type: boolean + description: If the user can manage SAML Configurations. + isActive: + type: boolean + description: Checks if the user is active. + lastLogin: + type: string + description: Timestamp of the last login of the user. + format: date-time AuthnCertificateResult: required: - certificate @@ -349,7 +513,7 @@ components: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -358,7 +522,7 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. @@ -382,8 +546,8 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 @@ -409,481 +573,197 @@ components: items: type: string default: [] - AllowlistedUserResult: - required: - - canManageSaml - - email - - firstName - - isActive - - lastLogin - - lastName - - userId + GetIdentityProvidersResponse: type: object properties: - userId: - type: string - description: Unique identifier of the user. - firstName: - type: string - description: First name of the user. - lastName: - type: string - description: Last name of the user. - email: - type: string - description: Email of the user. - example: john@sumologic.com - canManageSaml: - type: boolean - description: If the user can manage SAML Configurations. - isActive: - type: boolean - description: Checks if the user is active. - lastLogin: - type: string - description: Timestamp of the last login of the user. - format: date-time - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + identity_providers: + type: array + items: + $ref: '#/components/schemas/SamlIdentityProvider' + GetAllowlistedUsersResponse: + type: object + properties: + allowlisted_users: + type: array + items: + $ref: '#/components/schemas/AllowlistedUserResult' x-stackQL-resources: identity_providers: id: sumologic.saml.identity_providers name: identity_providers - title: Identity_providers + title: Identity Providers methods: - getIdentityProviders: + list: operation: $ref: '#/paths/~1v1~1saml~1identityProviders/get' response: mediaType: application/json openAPIDocKey: '200' - createIdentityProvider: + objectKey: $.identity_providers + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetIdentityProvidersResponse' + transform: + body: |- + {{- $wrapped := printf "{\"identity_providers\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1saml~1identityProviders/post' response: mediaType: application/json openAPIDocKey: '200' - updateIdentityProvider: + request: + mediaType: application/json + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1saml~1identityProviders~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteIdentityProvider: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1saml~1identityProviders~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/identity_providers/methods/getIdentityProviders' + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/identity_providers/methods/createIdentityProvider' - update: [] + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/identity_providers/methods/deleteIdentityProvider' + - $ref: '#/components/x-stackQL-resources/identity_providers/methods/delete' + replace: [] allowlisted_users: id: sumologic.saml.allowlisted_users name: allowlisted_users - title: Allowlisted_users + title: Allowlisted Users methods: - getAllowlistedUsers: + list: operation: $ref: '#/paths/~1v1~1saml~1allowlistedUsers/get' response: mediaType: application/json openAPIDocKey: '200' - createAllowlistedUser: + objectKey: $.allowlisted_users + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetAllowlistedUsersResponse' + transform: + body: |- + {{- $wrapped := printf "{\"allowlisted_users\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + add: operation: $ref: '#/paths/~1v1~1saml~1allowlistedUsers~1{userId}/post' response: mediaType: application/json openAPIDocKey: '200' - deleteAllowlistedUser: + delete: operation: $ref: '#/paths/~1v1~1saml~1allowlistedUsers~1{userId}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/getAllowlistedUsers' - insert: - - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/createAllowlistedUser' + - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/list' + insert: [] update: [] delete: - - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/deleteAllowlistedUser' - lockdown_enable: - id: sumologic.saml.lockdown_enable - name: lockdown_enable - title: Lockdown_enable + - $ref: '#/components/x-stackQL-resources/allowlisted_users/methods/delete' + replace: [] + lockdown: + id: sumologic.saml.lockdown + name: lockdown + title: Lockdown methods: - enableSamlLockdown: + enable: operation: $ref: '#/paths/~1v1~1saml~1lockdown~1enable/post' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + disable: + operation: + $ref: '#/paths/~1v1~1saml~1lockdown~1disable/post' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: [] insert: [] update: [] delete: [] - lockdown_disable: - id: sumologic.saml.lockdown_disable - name: lockdown_disable - title: Lockdown_disable + replace: [] + identity_provider_metadata: + id: sumologic.saml.identity_provider_metadata + name: identity_provider_metadata + title: Identity Provider Metadata methods: - disableSamlLockdown: + get: operation: - $ref: '#/paths/~1v1~1saml~1lockdown~1disable/post' + $ref: '#/paths/~1v1~1saml~1identityProviders~1{id}~1metadata/get' response: - mediaType: application/json + mediaType: application/xml openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/identity_provider_metadata/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - saml - description: saml - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/scheduled_views.yaml b/providers/src/sumologic/v00.00.00000/services/scheduled_views.yaml index fbc48be7..5278166c 100644 --- a/providers/src/sumologic/v00.00.00000/services/scheduled_views.yaml +++ b/providers/src/sumologic/v00.00.00000/services/scheduled_views.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Scheduled Views API + description: Scheduled views and their quota. + version: 1.0.0 paths: /v1/scheduledViews: get: @@ -204,6 +209,26 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/scheduledViews/quota: + get: + tags: + - scheduledViewManagement + summary: Provides information about scheduled views quota. + description: Every customer can use a limited number of scheduled views. This endpoint allows learning about these limitations and remaining quota. + operationId: getScheduledViewsQuota + responses: + '200': + description: Current state of scheduled views quota usage (limit and remaining). + content: + application/json: + schema: + $ref: '#/components/schemas/ScheduledViewsQuotaUsage' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListScheduledViewsResponse: @@ -239,89 +264,68 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - ScheduledView: - allOf: - - $ref: '#/components/schemas/CreateScheduledViewDefinition' - - $ref: '#/components/schemas/ViewRetentionProperties' - - required: - - id - properties: - id: - type: string - description: Identifier for the scheduled view. - indexId: - type: string - description: The `id` of the Index where the output from Scheduled view is stored. - example: '1' - createdAt: - type: string - description: Creation timestamp in UTC. - format: date-time - modifiedAt: - type: string - description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. - format: date-time - createdByOptimizeIt: - type: boolean - description: If the scheduled view is created by OptimizeIt. - error: - type: string - description: Errors related to the scheduled view. - status: - type: string - description: Status of the scheduled view. - totalBytes: - type: integer - description: Total storage consumed by the scheduled view. - format: int64 - totalMessageCount: - type: integer - description: Total number of messages for the scheduled view. - format: int64 - createdBy: - type: string - description: Identifier of the user who created the scheduled view. - example: 0000000006743FE8 - modifiedBy: - type: string - description: Identifier of the user who last modified the resource. - example: 0000000006743FE8 - filledRanges: - type: array - description: List of the different units of filled ranges since the autoview has been created. - items: - $ref: '#/components/schemas/FilledRange' - x-tf-generated-properties: id,query,indexName,startTime,retentionPeriod,parsingMode - ErrorDescription: + CreateScheduledViewDefinition: required: - - code - - message + - indexName + - query + - startTime type: object properties: - code: + query: + maxLength: 16384 + minLength: 1 type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: + description: The query that defines the data to be included in the scheduled view. + example: _sourceCategory=*/Apache + indexName: + maxLength: 255 + minLength: 0 type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: + description: Name of the index for the scheduled view. + example: TestScheduledView + startTime: type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - CreateScheduledViewDefinition: + description: Start timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + retentionPeriod: + type: integer + description: The number of days to retain data in the scheduled view, or -1 to use the default value for your account. Only relevant if your account has multi-retention enabled. + format: int32 + example: 60 + default: -1 + dataForwardingId: + type: string + description: An optional ID of a data forwarding configuration to be used by the scheduled view. + parsingMode: + pattern: ^(AutoParse|Manual)$ + type: string + description: |- + Define the parsing mode to scan the JSON format log messages. Possible values are: + 1. `AutoParse` + 2. `Manual` + In AutoParse mode, the system automatically figures out fields to parse based on the search query. While in the Manual mode, no fields are parsed out automatically. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=0011). + example: AutoParse + default: Manual + x-pattern-message: should be either AutoParse or Manual + timeZone: + type: string + description: Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: '' + ScheduledView: + type: object + x-tf-generated-properties: id,query,indexName,startTime,retentionPeriod,parsingMode + x-tf-resource-name: ScheduledView required: - indexName - query - startTime - type: object + - id properties: query: maxLength: 16384 @@ -359,9 +363,16 @@ components: example: AutoParse default: Manual x-pattern-message: should be either AutoParse or Manual - ViewRetentionProperties: - type: object - properties: + timeZone: + type: string + description: Time zone for ingesting data in scheduled view. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + default: '' newRetentionPeriod: type: integer description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. @@ -371,21 +382,62 @@ components: type: string description: When the newRetentionPeriod will become effective in UTC format. format: date-time - FilledRange: - required: - - endTime - - startTime - type: object - properties: - startTime: + id: type: string - description: Start of the timestamp for each unit of filled ranges, expressed in UTC. + description: Identifier for the scheduled view. + indexId: + type: string + description: The `id` of the Index where the output from Scheduled view is stored. + example: '1' + createdAt: + type: string + description: Creation timestamp in UTC. format: date-time - endTime: + modifiedAt: type: string - description: End of the timestamp for each unit of filled ranges, expressed in UTC. + description: Last modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdByOptimizeIt: + type: boolean + description: If the scheduled view is created by OptimizeIt. + error: + type: string + description: Errors related to the scheduled view. + status: + type: string + description: |- + Status of the scheduled view. Possible values are: + 1. `NOT_STARTED` + 2. `FILLING` + 3. `STOPPED` + 4. `COMPLETE` + 5. `FAILED` + 6. `PAUSED` + totalBytes: + type: integer + description: Total storage consumed by the scheduled view. + format: int64 + totalMessageCount: + type: integer + description: Total number of messages for the scheduled view. + format: int64 + createdBy: + type: string + description: Identifier of the user who created the scheduled view. + example: 0000000006743FE8 + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + filledRanges: + type: array + description: List of the different units of filled ranges since the autoview has been created. + items: + $ref: '#/components/schemas/FilledRange' + lastAccessedAt: + type: string + description: Last accessed timestamp in UTC format: date-time - description: Range of timestamps already filled since the autoview has been created. UpdateScheduledViewDefinition: type: object properties: @@ -402,432 +454,201 @@ components: type: boolean description: This is required if the newly specified `retentionPeriod` is less than the existing retention period. In such a situation, a value of `true` says that data between the existing retention period and the new retention period should be deleted immediately; if `false`, such data will be deleted after seven days. This property is optional and ignored if the specified `retentionPeriod` is greater than or equal to the current retention period. default: false - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + timeZone: + type: string + description: Updates the time zone for ingesting data in scheduled view to the specified timezone ( does nothing if not specified ). Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + description: + maxLength: 65535 + type: string + description: Description of the scheduled view. + ScheduledViewsQuotaUsage: + required: + - quota + - remaining + type: object + properties: + quota: + type: integer + description: Maximum number of Scheduled Views allowed. + format: int32 + example: 200 + remaining: + type: integer + description: Remaining number of Scheduled Views allowed. + format: int32 + example: 121 + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + ViewRetentionProperties: + type: object + properties: + newRetentionPeriod: + type: integer + description: If the retention period is scheduled to be updated in the future (i.e., if retention period is previously reduced with value of reduceRetentionPeriodImmediately as false), this property gives the future value of retention period while retentionPeriod gives the current value. retentionPeriod will take up the value of newRetentionPeriod after the scheduled time. + format: int32 + example: 300 + retentionEffectiveAt: + type: string + description: When the newRetentionPeriod will become effective in UTC format. + format: date-time + FilledRange: + required: + - endTime + - startTime + type: object + properties: + startTime: + type: string + description: Start of the timestamp for each unit of filled ranges, expressed in UTC. + format: date-time + endTime: + type: string + description: End of the timestamp for each unit of filled ranges, expressed in UTC. + format: date-time + description: Range of timestamps already filled since the autoview has been created. x-stackQL-resources: scheduled_views: id: sumologic.scheduled_views.scheduled_views name: scheduled_views - title: Scheduled_views + title: Scheduled Views methods: - listScheduledViews: + list: operation: $ref: '#/paths/~1v1~1scheduledViews/get' response: mediaType: application/json openAPIDocKey: '200' - createScheduledView: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1scheduledViews/post' response: mediaType: application/json openAPIDocKey: '200' - getScheduledView: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateScheduledView: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/getScheduledView' - - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/listScheduledViews' - insert: - - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/createScheduledView' - update: [] - delete: [] - disable: - id: sumologic.scheduled_views.disable - name: disable - title: Disable - methods: - disableScheduledView: + request: + mediaType: application/json + nativeCasing: camel + disable: operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}~1disable/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - pause: - id: sumologic.scheduled_views.pause - name: pause - title: Pause - methods: - pauseScheduledView: + openAPIDocKey: '204' + pause: operation: $ref: '#/paths/~1v1~1scheduledViews~1{id}~1pause/post' response: mediaType: application/json openAPIDocKey: '200' + start: + operation: + $ref: '#/paths/~1v1~1scheduledViews~1{id}~1start/post' + response: + mediaType: application/json + openAPIDocKey: '200' sqlVerbs: - select: [] - insert: [] - update: [] + select: + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/get' + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/scheduled_views/methods/update' delete: [] - start: - id: sumologic.scheduled_views.start - name: start - title: Start + replace: [] + quota: + id: sumologic.scheduled_views.quota + name: quota + title: Quota methods: - startScheduledView: + get: operation: - $ref: '#/paths/~1v1~1scheduledViews~1{id}~1start/post' + $ref: '#/paths/~1v1~1scheduledViews~1quota/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/quota/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - scheduled_views - description: scheduledViews - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/schemas.yaml b/providers/src/sumologic/v00.00.00000/services/schemas.yaml new file mode 100644 index 00000000..2259fdcd --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/schemas.yaml @@ -0,0 +1,323 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Schemas API + description: Schema identities grouped by product (Schema Base Management). + version: 1.0.0 +paths: + /v1/schemaIdentitiesGrouped: + get: + tags: + - schemaBaseManagement + summary: Get schema base identities grouped by type and sorted by version. + description: Get a summary of all available schema bases grouped by type and their versions sorted by latest. + operationId: getSchemaIdentitiesGrouped + responses: + '200': + description: A summary of all available schema bases grouped by type and their versions sorted by latest. + content: + application/json: + schema: + $ref: '#/components/schemas/ListSchemaBaseTypeToVersionsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListSchemaBaseTypeToVersionsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of maps containing the mappings schema type -> versions. + items: + $ref: '#/components/schemas/SchemaBaseTypeToVersionsResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SchemaBaseTypeToVersionsResponse: + required: + - type + - versions + type: object + properties: + type: + type: string + description: The type of the schema. + example: Okta + versions: + type: array + description: List of schema base identities sorted by latest version for a specific schema type. + items: + $ref: '#/components/schemas/SchemaBaseComplete' + description: Map of the schema base type to its list of schema base identities. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SchemaBaseComplete: + type: object + required: + - family + - schema + - type + - version + - id + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + SchemaBaseIdentityWithMetadata: + type: object + required: + - family + - schema + - type + - version + - id + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + id: + type: string + description: Unique identifier of the schema. + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + SchemaBaseTemplateYaml: + type: object + properties: + templateYaml: + maxLength: 10960 + minLength: 1 + type: string + description: The template yaml of schema. + example: example templateYaml + SchemaBaseIdentity: + required: + - family + - schema + - type + - version + type: object + properties: + type: + maxLength: 128 + minLength: 1 + type: string + description: The type of the integration. + example: Okta + version: + maxLength: 128 + minLength: 5 + pattern: ^([0-9]+)\.([0-9]+)\.([0-9]+)$ + type: string + description: The version (or image tag) of the integration. Follows the Major.Minor.Patch semantic versioning format. + example: 1.0.0 + x-pattern-message: 'must follow semantic versioning: https://semver.org/' + description: + maxLength: 1024 + minLength: 0 + type: string + description: The description of the integration. + example: An Okta integration that collects Okta event logs into Sumo Logic. + manifest: + maxProperties: 1000 + type: object + additionalProperties: true + description: The manifest of the integration. + schema: + maxProperties: 1000 + type: object + additionalProperties: true + description: The schema in JSON Schema specification. + family: + type: string + description: The family to which schema belong. + enum: + - OTC_Source_Template + - OTEL_Component + x-stackQL-resources: + schema_identities: + id: sumologic.schemas.schema_identities + name: schema_identities + title: Schema Identities + methods: + list: + operation: + $ref: '#/paths/~1v1~1schemaIdentitiesGrouped/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schema_identities/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/scim.yaml b/providers/src/sumologic/v00.00.00000/services/scim.yaml new file mode 100644 index 00000000..9be22690 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/scim.yaml @@ -0,0 +1,636 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Scim API + description: SCIM 2.0 user provisioning. + version: 1.0.0 +paths: + /v1/scim/Users: + get: + tags: + - scimUserManagement + summary: List SCIM Users + description: Retrieves a list of users in the SCIM system, with optional pagination + operationId: listSCIMUsers + parameters: + - name: startIndex + in: query + description: The index of the first result to return. Defaults to 1 if not specified, a value less than 1 SHALL be interpreted as 1 + required: false + schema: + minimum: 1 + type: integer + format: int32 + default: 1 + - name: count + in: query + description: The maximum number of results to return. Defaults to 100 + required: false + schema: + maximum: 1000 + minimum: 1 + type: integer + default: 100 + - name: filter + in: query + description: Find user with the given email address + required: false + schema: + minLength: 1 + type: string + example: emails.value eq "john@doe.com" + - name: sortOrder + in: query + description: The sort order. Use "ascending" or "descending" + required: false + schema: + type: string + example: descending + enum: + - ascending + - descending + - name: sortBy + in: query + description: Sort the list of users by the `givenName`, `familyName`, or `emails` field + required: false + schema: + type: string + example: givenName + responses: + '200': + description: A paginated list of users in the organization + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + post: + tags: + - scimUserManagement + summary: Create SCIM User + description: Creates a new user in the SCIM system + operationId: createSCIMUser + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMCreateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '201': + description: The user has been created successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + /v1/scim/Users/{id}: + get: + tags: + - scimUserManagement + summary: Get a SCIM User + description: Fetches the details of a SCIM user by their unique identifier + operationId: getSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + responses: + '200': + description: User details retrieved successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + put: + tags: + - scimUserManagement + summary: Update SCIM User + description: Updates an existing user's attributes in the SCIM system + operationId: updateSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUpdateUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '200': + description: The user has been updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + delete: + tags: + - scimUserManagement + summary: Delete SCIM User + description: Deletes a SCIM user by their unique identifier + operationId: deleteSCIMUserById + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user to delete + required: true + schema: + type: string + responses: + '204': + description: User was deleted successfully + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + patch: + tags: + - scimUserManagement + summary: Update SCIM User Attributes + description: Updates specific attributes of an existing user in the SCIM system + operationId: patchSCIMUser + parameters: + - name: id + in: path + description: Unique identifier of the SCIM user + required: true + schema: + type: string + requestBody: + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMPatchUserDefinition' + application/json: + schema: + $ref: '#/components/schemas/ListSCIMUserModelsResponse' + required: true + responses: + '200': + description: The user attributes updated successfully + content: + application/scim+json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + application/json: + schema: + $ref: '#/components/schemas/SCIMUserModel' + default: + description: Operation failed with an error + content: + application/scim+json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseScim' +components: + schemas: + ListSCIMUserModelsResponse: + type: object + properties: + totalResults: + type: integer + description: Total number of users that match the filter criteria + example: 100 + startIndex: + minimum: 0 + type: integer + description: The index of the first returned result + format: int32 + example: 0 + default: 0 + itemsPerPage: + type: integer + description: The number of results returned in this page + example: 10 + Resources: + type: array + description: List of SCIM user resources + items: + $ref: '#/components/schemas/SCIMUserModel' + ErrorResponseScim: + required: + - schemas + - status + type: object + properties: + status: + type: integer + description: The HTTP status code. + example: 409 + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + scimType: + type: string + description: A SCIM detail error keyword. + example: uniqueness + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + SCIMCreateUserDefinition: + required: + - emails + - name + - roles + - schemas + - userName + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMUserModel: + type: object + required: + - emails + - name + - roles + - schemas + - userName + - id + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + userName: + maxLength: 64 + type: string + description: Unique identifier for the user (email) + example: jdoe@example.com + name: + $ref: '#/components/schemas/NameInfo' + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + id: + type: string + description: Unique SCIM identifier for the user + example: 000000000FE20FE2 + active: + type: boolean + description: True if the user is active + example: true + meta: + $ref: '#/components/schemas/ResourceData' + SCIMUpdateUserDefinition: + required: + - active + - emails + - name + - roles + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the user + example: + - urn:ietf:params:scim:schemas:core:2.0:User + items: + type: string + name: + $ref: '#/components/schemas/NameInfo' + active: + type: boolean + description: Indicates if the user is active + example: true + emails: + type: array + description: Sumo logic accepts only one email address + items: + type: object + properties: + value: + type: string + format: email + example: jdoe@example.com + type: + type: string + example: work + primary: + type: boolean + example: true + default: true + roles: + type: array + description: roles should exactly match with role names within sumologic. `roles` can be either `Array of strings` or `Array of objects` as shown in the payload. `primary` always set to 'true' as sumologic doesn't have a concept of primary/secondary roles + example: + - - role1 + - role2 + - - value: role1 + primary: true + - value: role2 + primary: true + items: {} + SCIMPatchUserDefinition: + required: + - Operations + - schemas + type: object + properties: + schemas: + type: array + description: Defines the SCIM schemas for the patch operation + example: + - urn:ietf:params:scim:api:messages:2.0:PatchOp + items: + type: string + Operations: + type: array + description: Updates one or more attributes of a SCIM resource using a sequence of operations + items: + type: object + properties: + op: + pattern: (?i)^(replace|add|remove)$ + type: string + description: Supports 'add', 'replace' and 'remove' operations + example: replace + x-pattern-message: '`replace`, `add`, `remove`' + path: + type: string + description: Attribute path to modify + example: name.familyName + value: + type: object + properties: + value: + type: string + NameInfo: + required: + - familyName + - givenName + type: object + properties: + givenName: + type: string + description: Given name of the user (firstName) + example: John + familyName: + type: string + description: Family name of the user (lastName) + example: Doe + ResourceData: + type: object + properties: + resourceType: + type: string + description: The name of the resource type of the resource + example: User + created: + type: string + description: Creation timestamp in date-time format + format: date-time + example: '2024-01-01T12:00:00.000Z' + lastModified: + type: string + description: Last modification timestamp in date-time format + format: date-time + example: '2024-01-01T12:00:00.000Z' + description: Resource meta data of a user + x-stackQL-resources: + users: + id: sumologic.scim.users + name: users + title: Users + methods: + list: + operation: + $ref: '#/paths/~1v1~1scim~1Users/get' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + objectKey: $.Resources + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1scim~1Users/post' + response: + mediaType: application/scim+json + openAPIDocKey: '201' + request: + mediaType: application/scim+json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/get' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + request: + nativeCasing: camel + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/put' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + request: + mediaType: application/scim+json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1scim~1Users~1{id}/patch' + response: + mediaType: application/scim+json + openAPIDocKey: '200' + request: + mediaType: application/scim+json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/users/methods/replace' +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/search_jobs.yaml b/providers/src/sumologic/v00.00.00000/services/search_jobs.yaml new file mode 100644 index 00000000..7cccd426 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/search_jobs.yaml @@ -0,0 +1,741 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Search Jobs API + description: Search jobs (v2) - create a log search job, poll its status and page through its messages and records. + version: 1.0.0 +paths: + /v2/search/jobs: + post: + tags: + - searchJobManagement + summary: Create a search job. + description: Create a new search job. + operationId: createSearchJob + parameters: [] + requestBody: + description: Information about the new search job to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobRequest' + required: true + responses: + '202': + description: The search job has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateJobResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}: + get: + tags: + - searchJobManagement + summary: Get a search job's status. + description: Use the search job identifier to obtain the current status of a search job. + operationId: getSearchJobStatus + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + responses: + '200': + description: The search job's status. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - searchJobManagement + summary: Delete a search job. + description: Use the search job identifier to delete the search job. + operationId: deleteSearchJob + parameters: + - name: jobId + in: path + description: The identifier of the search job to be deleted. + required: true + schema: + type: string + responses: + '200': + description: The search job was deleted successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchJobDeleteResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/messages: + get: + tags: + - searchJobManagement + summary: Get paginated messages from an offset. + description: Use the search job identifier to obtain the paginated messages from an offset. + operationId: getSearchJobPaginatedMessages + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return messages starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of messages returned in the response. The number of messages returned may be less than the `limit`. + required: true + schema: + maximum: 10000 + type: integer + responses: + '200': + description: A paginated list of messages. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedMessages' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v2/search/jobs/{jobId}/records: + get: + tags: + - searchJobManagement + summary: Get aggregated records. + description: Use the search job identifier to obtain the aggregated records from an offset. + operationId: getSearchJobPaginatedRecords + parameters: + - name: jobId + in: path + description: The identifier of the search job. + required: true + schema: + type: string + - name: offset + in: query + description: Return aggregated records starting at this offset. + required: true + schema: + type: integer + - name: limit + in: query + description: | + Limit the number of records returned in the response. + required: true + schema: + maximum: 10000 + type: integer + responses: + '200': + description: A paginated list of records. + content: + application/json: + schema: + $ref: '#/components/schemas/SearchQueryPaginatedRecords' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + CreateJobRequest: + required: + - from + - query + - timezone + - to + type: object + properties: + query: + maxLength: 15000 + type: string + description: | + The actual search expression. Ensure your query follows [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259) and is valid JSON format, you may need to escape certain characters to follow the [RFC 8259](https://datatracker.ietf.org/doc/html/rfc8259). + example: _sourceCategory=service + from: + maxLength: 24 + type: string + description: | + The start date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: '2017-07-26T00:00:00.000Z' + to: + maxLength: 24 + type: string + description: | + The end date and time of the search. This follows the [ISO 8601](https://www.w3.org/TR/NOTE-datetime) date and time format. + example: '2017-07-26T00:00:00.000Z' + timezone: + type: string + description: The time zone if from/to is not in milliseconds. See this [Wikipedia article](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) for a list of time zone codes. + default: UTC + autoParsingMode: + pattern: ^(Manual|AutoParse)$ + type: string + description: | + Define the parsing mode to scan the JSON format log messages. Possible values are: + + AutoParse - System automatically figures out the fields to parse based on the search query. + + Manual - No fields are parsed out automatically. For more information, refer to the [Dynamic Parsing](https://help.sumologic.com/docs/manage/field-extractions/create-field-extraction-rule/). + example: Manual + default: Manual + x-pattern-message: should be either 'Manual' or 'AutoParse' + requiresRawMessages: + pattern: ^(true|false)$ + type: string + description: | + On enabling this field, the log messages applicable to the search are returned. Maximum value is 100,000. This is only applicable for aggregate queries. + default: 'false' + x-pattern-message: should be either 'true' or 'false' + maxRawRecords: + type: string + description: Maximum number of raw records to finish the search. + intervalTimeType: + pattern: ^(messageTime|receiptTime|searchableTime)$ + type: string + description: This parameter defines whether you want to run the search by messageTime, receiptTime or searchableTime. + example: messageTime + default: messageTime + x-pattern-message: should be either 'messageTime' or 'receiptTime' or 'searchableTime' + childOrgIds: + type: array + description: | + List of child organization ids to run the search on. + example: + - '0000000000000001' + - '0000000000000002' + items: + type: string + includeAllChildOrgs: + type: boolean + description: | + When true, automatically resolves all child orgs of the authenticated parent and fans the search out across all of them. If this is set, it takes precedence over childOrgIds field. Default value is false. + default: false + CreateJobResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while creating the search job. + id: + type: string + description: The search job identifier. + link: + $ref: '#/components/schemas/Link' + isAggregation: + type: boolean + description: Whether the query has aggregation operators. + isSummary: + type: boolean + description: Whether the query is a summary query. + isSortable: + type: boolean + description: Whether the results are sortable. + runnableQuery: + type: string + description: | + The final query string after parameterized variables are substituted, macros are expanded. + userReferencedFieldsSortable: + type: boolean + description: | + Whether the user's explicitly referenced fields can be re-sorted by clicking column headers. + operators: + type: array + description: | + List of special operators present in the query. + items: + type: string + tiersInQuery: + type: array + description: Analytics tiers referenced in the query. + items: + type: string + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SearchJobStatusResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while obtaining the current status of a search job. + state: + type: string + description: Search job state. In case you are checking status for a multi child org query, you might see another status as 'Done Gathering Partial Results' which means that the query failed for some of the child orgs. You can check their reasons in audit logs with the query Id. + example: DONE GATHERING RESULTS + histogramBuckets: + type: array + description: Histogram buckets for the query. + items: + $ref: '#/components/schemas/HistogramBucket' + messageCount: + type: integer + description: Number of messages found or produced so far. + format: int64 + recordCount: + type: integer + description: Number of records found or produced so far. + format: int64 + pendingWarnings: + type: array + description: Pending warnings that have accumulated since the last time the status was requested. + items: + type: string + pendingErrors: + type: array + description: Pending errors that have accumulated since the last time the status was requested. + items: + type: string + usageDetails: + type: object + properties: + dataScannedInBytes: + type: integer + description: Data Scanned in Bytes. + format: int64 + description: Usage details about the search job api. It includes data scanned in bytes during the search. + usageDetailsByMeteringType: + type: array + description: Usage details broken down by metering type. Each element contains dataScannedInBytes, meteringType, tier, and isChargeable. + items: + $ref: '#/components/schemas/UsageDetailsByMeteringType' + usageDetailsByTier: + type: array + description: Usage details broken down by analytics tier. Each element contains dataScannedInBytes and tier. + items: + $ref: '#/components/schemas/UsageDetailsByTier' + timeElapsed: + type: integer + description: Time elapsed in milliseconds since the search job started. + format: int64 + searchedTimeRange: + $ref: '#/components/schemas/SearchedTimeRange' + showLogLevels: + type: boolean + description: Whether log level distribution data is available for this search job. + pendingMessageLocatorsAndOffsets: + type: array + description: Pending message locators and offsets accumulated since the last status request. + items: + $ref: '#/components/schemas/PendingMessageLocatorsAndOffset' + jobId: + type: string + description: The job identifier for this search job. + userMessages: + type: array + description: Informational user messages generated during the search. Each element contains type, key, and data. + items: + $ref: '#/components/schemas/UserMessage' + performance: + $ref: '#/components/schemas/Performance' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchJobDeleteResponse: + type: object + properties: + warning: + type: string + description: Warnings value contains the detailed information about the warning while deleting a search job. + x-field-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + jobId: + type: string + description: The Id of the search job which is deleted. + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + SearchQueryPaginatedMessages: + required: + - fields + - messages + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through the messages found by a search job. + fields: + type: array + description: List of all the fields defined for each of the messages returned. + items: + $ref: '#/components/schemas/Field' + messages: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Message' + autoPauseLimitReached: + type: boolean + description: Whether the auto-pause limit has been reached for this query. + SearchQueryPaginatedRecords: + required: + - fields + - records + type: object + properties: + warning: + type: string + description: Detailed information about the warning while paging through the records found by a search job. + fields: + type: array + description: List of all the fields defined for each of the records returned. + items: + $ref: '#/components/schemas/Field' + records: + type: array + description: Map of the field names to the field values. + items: + $ref: '#/components/schemas/Record' + x-class-extra-annotation: '@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)' + Link: + type: object + properties: + rel: + type: string + description: Relation. + href: + type: string + description: URL of the search job. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + HistogramBucket: + required: + - count + - length + - startTimestamp + type: object + properties: + startTimestamp: + type: integer + description: Start time of the bucket. + format: int64 + length: + type: integer + description: Length is in milliseconds, tells the width of the bucket. + format: int64 + count: + type: integer + description: Count of messages in this bucket. + logLevel: + type: string + description: Log level of messages in this bucket. + UsageDetailsByMeteringType: + required: + - dataScannedInBytes + - isChargeable + - meteringType + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this metering type. + format: int64 + meteringType: + type: string + description: The metering type. + tier: + type: string + description: The analytics tier. + isChargeable: + type: boolean + description: Whether this metering type is chargeable. + UsageDetailsByTier: + required: + - dataScannedInBytes + - tier + type: object + properties: + dataScannedInBytes: + type: integer + description: Data scanned in bytes for this tier. + format: int64 + tier: + type: string + description: The analytics tier. + SearchedTimeRange: + type: object + properties: + startMillis: + type: integer + description: Start of the searched time range in epoch milliseconds. + format: int64 + endMillis: + type: integer + description: End of the searched time range in epoch milliseconds. + format: int64 + description: The time range that has been searched so far. + PendingMessageLocatorsAndOffset: + required: + - messageLocator + - offset + type: object + properties: + messageLocator: + $ref: '#/components/schemas/MessageLocator' + offset: + type: integer + description: The offset of the message. + format: int64 + UserMessage: + required: + - key + - type + type: object + properties: + type: + type: string + description: The message type. + key: + type: string + description: The message key. + data: + type: string + description: The message data as a JSON string. + Performance: + type: object + properties: + difficulty: + type: string + description: The difficulty level of the search query. + enum: + - CALCULATION_DISABLED + - Unknown + - Easy + - Medium + - Hard + reasons: + type: array + description: Reasons explaining the difficulty classification. + items: + type: string + description: Performance characteristics of this search job. + Field: + required: + - fieldType + - keyField + - name + type: object + properties: + name: + type: string + description: Name of the field. + fieldType: + type: string + description: Type of the field. + example: long + keyField: + type: boolean + description: Flag if the field is a key field. + userReferenced: + type: boolean + description: Flag if the field is referenced by the user in the query. + autoParseUnreferenced: + type: boolean + description: Flag if the field was auto-parsed but not referenced in the query. + Message: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map message values. + Record: + type: object + properties: + map: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Map Records values. + MessageLocator: + type: object + properties: + blockId: + type: string + description: The block identifier. + messageId: + type: string + description: The message identifier. + x-stackQL-resources: + search_jobs: + id: sumologic.search_jobs.search_jobs + name: search_jobs + title: Search Jobs + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1search~1jobs/post' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/search_jobs/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/search_jobs/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/search_jobs/methods/delete' + replace: [] + messages: + id: sumologic.search_jobs.messages + name: messages + title: Messages + methods: + list: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}~1messages/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.messages + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/messages/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + records: + id: sumologic.search_jobs.records + name: records + title: Records + methods: + list: + operation: + $ref: '#/paths/~1v2~1search~1jobs~1{jobId}~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/records/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/service_accounts.yaml b/providers/src/sumologic/v00.00.00000/services/service_accounts.yaml new file mode 100644 index 00000000..560e2d16 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/service_accounts.yaml @@ -0,0 +1,1070 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Service Accounts API + description: Service accounts and their access keys. + version: 1.0.0 +paths: + /v1/serviceAccounts: + get: + tags: + - serviceAccountManagement + summary: Get a list of service accounts. + description: Get a list of all service accounts in the organization. + operationId: listServiceAccounts + responses: + '200': + description: A list of service accounts in the organization. + content: + application/json: + schema: + $ref: '#/components/schemas/ListServiceAccountModelsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new service account. + description: Create a new service account in the organization. + operationId: createServiceAccount + parameters: [] + requestBody: + description: Information about the new service account. + content: + application/json: + schema: + $ref: '#/components/schemas/CreateServiceAccountDefinition' + required: true + responses: + '200': + description: A service account has been created. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{id}: + get: + tags: + - serviceAccountManagement + summary: Get a service account. + description: Get a service account with the given identifier from the organization. + operationId: getServiceAccount + parameters: + - name: id + in: path + description: Identifier of service account to return. + required: true + schema: + type: string + responses: + '200': + description: Service account object that was requested. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update a service account. + description: Update an existing service account in the organization. + operationId: updateServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to update. + required: true + schema: + type: string + requestBody: + description: Information to update about the service account. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateServiceAccountDefinition' + required: true + responses: + '200': + description: The service account was successfully updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceAccountModel' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete a service account. + description: Delete a service account with the given identifier from the organization and transfer its content to a user or a service account with the identifier specified in "transferTo". + operationId: deleteServiceAccount + parameters: + - name: id + in: path + description: Identifier of the service account to delete. + required: true + schema: + type: string + - name: transferTo + in: query + description: Identifier of a user/service account to receive the transfer of content from the deleted service account.
**Note:** If `deleteContent` is not set to `true`, and no user identifier is specified in `transferTo`, content from the deleted service account is transferred to the executing user. + required: false + schema: + type: string + - name: deleteContent + in: query + description: Whether to delete content from the deleted service account or not.
**Warning:** If `deleteContent` is set to `true`, all of the content for the service account being deleted is permanently deleted and cannot be recovered. + required: false + schema: + type: boolean + responses: + '204': + description: Service account was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys: + get: + tags: + - serviceAccountManagement + summary: List access keys for a service account. + description: List all access keys of a service account. + operationId: listAccessKeysForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + responses: + '200': + description: A list of all access keys within the organization of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccessKeysResult' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - serviceAccountManagement + summary: Create a new access key for a service account. + description: Creates a new access ID and key pair for a service account. + operationId: createAccessKeyForServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + requestBody: + description: Information about the new access key of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyCreateRequest' + required: true + responses: + '200': + description: The access key has been created for a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKey' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/serviceAccounts/{serviceAccountId}/accessKeys/{accessId}: + get: + tags: + - serviceAccountManagement + summary: Get an access key of a service account. + description: Get an access key with the given identifier from the organization of a service account. + operationId: getAccessKeyByIdOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: Identifier of an access key to return. + required: true + schema: + type: string + responses: + '200': + description: Access key object that was requested of a service account. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + put: + tags: + - serviceAccountManagement + summary: Update an access key of a service account. + description: Updates the properties of existing accessKey by Id of a service account. + operationId: updateAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The id of an access key to update of a service account. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyUpdateRequest' + required: true + responses: + '200': + description: Access key of a service account updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/AccessKeyPublic' + default: + description: Access key updation of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - serviceAccountManagement + summary: Delete an access key of a service account. + description: Deletes the access key with the given Id of a service account. + operationId: deleteAccessKeyOfAServiceAccount + parameters: + - name: serviceAccountId + in: path + description: Identifier of the service account. + required: true + schema: + type: string + - name: accessId + in: path + description: The Id of the access key to delete of a service account. + required: true + schema: + type: string + responses: + '204': + description: Access key deletion of a service account completed successfully. + default: + description: Access key deletion of a service account failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + ListServiceAccountModelsResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of service accounts. + items: + $ref: '#/components/schemas/ServiceAccountModel' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + CreateServiceAccountDefinition: + required: + - email + - name + - roleIds + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + ServiceAccountModel: + type: object + required: + - email + - name + - roleIds + - createdAt + - createdBy + - modifiedAt + - modifiedBy + - id + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + email: + maxLength: 255 + type: string + description: Email address of the service account. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the service account. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the service account is active. + example: true + UpdateServiceAccountDefinition: + type: object + properties: + name: + maxLength: 128 + minLength: 0 + type: string + description: Name of the service account. + example: Service Account + isActive: + type: boolean + description: This has the value `true` if the service account is active and `false` if it has been deactivated. + example: true + roleIds: + type: array + description: List of role identifiers associated with the service account. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string + email: + maxLength: 255 + type: string + description: New email address of the service account. + format: email + example: johndoe@acme.com + ListAccessKeysResult: + required: + - data + type: object + properties: + data: + type: array + description: An array of access keys. + items: + $ref: '#/components/schemas/AccessKeyPublic' + description: List of access keys. + AccessKeyCreateRequest: + required: + - label + type: object + properties: + label: + maxLength: 128 + type: string + description: A name for the access key to be created. + example: automation access key + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request + depends on whether it contains an ORIGIN header and the entries in the allowlist. + Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKey: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + - key + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + key: + type: string + description: The key for the created access key. This field will have values only in the response for an access key create request. The value will be an empty string while listing all keys. + example: F9GZvb4fISxUZHM7pqHCsGXGWf4OArgmt9Tz8ewZ + AccessKeyPublic: + required: + - createdAt + - createdBy + - disabled + - id + - label + - modifiedAt + - modifiedBy + type: object + properties: + id: + type: string + description: Identifier of the access key. + example: su0w3Q37CBzHUM + label: + type: string + description: The name of the access key. + example: collector access key + corsHeaders: + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: false + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the access key. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who modified the access key. + example: 0000000006743FDD + serviceAccountId: + type: string + description: Identifier of the service account who owns the access key. + example: 0000000006743FDA + lastUsed: + type: string + description: Last used timestamp in UTC.
**Note:** Property not in use, it is part of an upcoming feature. + format: date-time + example: '2018-10-16T09:10:00.000Z' + scopes: + type: array + description: |- + Scopes assigned to the key. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + effectiveScopes: + type: array + description: Effective scopes based on the intersection of the user's RBAC capabilities and the assigned scopes. + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + AccessKeyUpdateRequest: + required: + - disabled + type: object + properties: + disabled: + type: boolean + description: Indicates whether the access key is disabled or not. + example: true + corsHeaders: + maxItems: 20 + type: array + description: |- + An array of domains for which the access key is valid. Whether Sumo Logic accepts or rejects an API request depends on whether it contains an ORIGIN header and the entries in the allowlist. Sumo Logic will reject: + 1. Requests with an ORIGIN header but the allowlist is empty. + 2. Requests with an ORIGIN header that don't match any entry in the allowlist. + example: + - https://my-app.com + - https://mail.my-app.com + items: + type: string + scopes: + type: array + description: |- + Scopes assigned to the key.

Note: Updates to scopes will take up to 5m to reflect due to caching in the system. + ### Alerting + - adminMonitorsV2 + - viewMonitorsV2 + - manageMonitorsV2 + + ### Data Management + - manageApps + - viewCollectors + - manageCollectors + - viewConnections + - manageConnections + - contentAdmin + - viewFieldExtractionRules + - manageFieldExtractionRules + - viewFields + - manageFields + - manageBudgets + - viewLibrary + - manageLibrary + - viewPartitions + - managePartitions + - manageS3DataForwarding + - viewScheduledViews + - manageScheduledViews + - manageTokens + + ### Logs + - runLogSearch + + ### Metrics + - runMetricsQuery + + ### Reliability Management + - viewSlos + - manageSlos + + ### Security + - manageAccessKeys + - viewPersonalAccessKeys + - managePersonalAccessKeys + + ### UserManagement + - viewUsersAndRoles + - manageUsersAndRoles + example: + - manageUsersAndRoles + - viewCollectors + items: + type: string + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 + x-stackQL-resources: + service_accounts: + id: sumologic.service_accounts.service_accounts + name: service_accounts + title: Service Accounts + methods: + list: + operation: + $ref: '#/paths/~1v1~1serviceAccounts/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/get' + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/service_accounts/methods/delete' + replace: [] + access_keys: + id: sumologic.service_accounts.access_keys + name: access_keys + title: Access Keys + methods: + list: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys~1{accessId}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys~1{accessId}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1serviceAccounts~1{serviceAccountId}~1accessKeys~1{accessId}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/get' + - $ref: '#/components/x-stackQL-resources/access_keys/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/access_keys/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/service_allowlist.yaml b/providers/src/sumologic/v00.00.00000/services/service_allowlist.yaml index cbe3a7ec..41e81067 100644 --- a/providers/src/sumologic/v00.00.00000/services/service_allowlist.yaml +++ b/providers/src/sumologic/v00.00.00000/services/service_allowlist.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Service Allowlist API + description: The service allowlist of CIDR addresses for login and content access. + version: 1.0.0 paths: /v1/serviceAllowlist/addresses: get: @@ -183,6 +188,19 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + AllowlistingStatus: + required: + - contentEnabled + - loginEnabled + type: object + properties: + contentEnabled: + type: boolean + description: Whether service allowlisting is enabled for Content. + loginEnabled: + type: boolean + description: Whether service allowlisting is enabled for Login. + description: The status of service allowlisting for Content and Login. Cidr: required: - cidr @@ -218,465 +236,114 @@ components: description: An optional fuller English-language description of the error. example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. meta: - type: object - description: An optional list of metadata about the error. + type: string + description: An optional list of metadata about the error. (opaque JSON object) example: minLength: 12 actualLength: 5 - AllowlistingStatus: - required: - - contentEnabled - - loginEnabled - type: object - properties: - contentEnabled: - type: boolean - description: Whether service allowlisting is enabled for Content. - loginEnabled: - type: boolean - description: Whether service allowlisting is enabled for Login. - description: The status of service allowlisting for Content and Login. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: addresses: id: sumologic.service_allowlist.addresses name: addresses title: Addresses methods: - listAllowlistedCidrs: + list: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1addresses/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/addresses/methods/listAllowlistedCidrs' - insert: [] - update: [] - delete: [] - addresses_add: - id: sumologic.service_allowlist.addresses_add - name: addresses_add - title: Addresses_add - methods: - addAllowlistedCidrs: + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1serviceAllowlist~1addresses~1add/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/addresses_add/methods/addAllowlistedCidrs' - update: [] - delete: [] - addresses_remove: - id: sumologic.service_allowlist.addresses_remove - name: addresses_remove - title: Addresses_remove - methods: - deleteAllowlistedCidrs: + request: + mediaType: application/json + nativeCasing: camel + remove: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1serviceAllowlist~1addresses~1remove/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/addresses/methods/list' insert: [] update: [] delete: [] - enable: - id: sumologic.service_allowlist.enable - name: enable - title: Enable + replace: [] + status: + id: sumologic.service_allowlist.status + name: status + title: Status methods: - enableAllowlisting: + enable: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1enable/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - disable: - id: sumologic.service_allowlist.disable - name: disable - title: Disable - methods: - disableAllowlisting: + openAPIDocKey: '204' + disable: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1disable/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - status: - id: sumologic.service_allowlist.status - name: status - title: Status - methods: - getAllowlistingStatus: + openAPIDocKey: '204' + get: operation: $ref: '#/paths/~1v1~1serviceAllowlist~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/status/methods/getAllowlistingStatus' + - $ref: '#/components/x-stackQL-resources/status/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - service_allowlist - description: serviceAllowlist - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/slos.yaml b/providers/src/sumologic/v00.00.00000/services/slos.yaml index aebf0206..e1d601ca 100644 --- a/providers/src/sumologic/v00.00.00000/services/slos.yaml +++ b/providers/src/sumologic/v00.00.00000/services/slos.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Slos API + description: SLOs and SLO folders in the SLO library, service level indicators and usage. + version: 1.0.0 paths: /v1/slos/sli: get: @@ -42,7 +47,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SloUsageInfo' + $ref: '#/components/schemas/GetSloUsageInfoResponse' default: description: Operation failed with an error. content: @@ -66,6 +71,12 @@ paths: items: type: string example: 0000000000000001,0000000000000002,0000000000000003 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: A map between an identifier and its definition (slo or folder). @@ -221,9 +232,10 @@ paths: description: Maximum number of items you want in the response. required: false schema: + maximum: 5000 type: integer format: int32 - default: 100 + default: 1000 example: 10 - name: offset in: query @@ -234,13 +246,19 @@ paths: format: int32 default: 0 example: 5 + - name: skipChildren + in: query + description: a boolean parameter to control skipping fetching children of requested folder(s) + required: false + schema: + type: boolean responses: '200': description: List of folders and slos matching the search query. content: application/json: schema: - $ref: '#/components/schemas/ListSlosLibraryItemWithPath' + $ref: '#/components/schemas/SlosSearchResponse' default: description: Operation failed with an error. content: @@ -494,6 +512,7 @@ paths: components: schemas: IdToSliStatusMap: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/SliStatus' @@ -518,84 +537,37 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - SliStatus: - required: - - status - type: object - properties: - status: - pattern: ^(Success|Error|InProgress)$ - type: string - description: Whether the SLI computation is complete / had an error / is in progress. - example: Success - sliPercentage: - type: number - description: SLI percentage for the compliance period. Available if `status` is `Success`. - format: double - example: 95.14 - errorBudgetRemainingPercentage: - type: number - description: Percentage of error budget remaining for the compliance period. Available if `status` is `Success`. - format: double - absoluteErrorBudgetRemaining: - type: string - description: Formatted string for the absolute error budget remaining (time duration for window-based SLIs, request count for request-based SLIs). Available if `status` is `Success`. - example: 1h56m, -3h45m, -241.3k req, 1.5k req - progressPercentage: - type: number - description: SLI computation progress. - format: double - description: Status of the SLI computation. If the status is successful, also contains the SLI value and error budget remaining for the current compliance period. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 SloUsageInfo: type: array description: The usage info of logs and metrics SLOs. items: $ref: '#/components/schemas/SloUsage' - SloUsage: - properties: - sliType: - pattern: ^(Logs|Metrics|Monitors)$ - type: string - description: The type of SLO usage info (Logs/Metrics/Monitor based). - example: Logs - x-pattern-message: Either `Logs` or `Metrics` or `Monitors`. - usage: - type: integer - description: Current number of active Logs/Metrics/Monitors SLOs. - example: 100 - limit: - type: integer - description: The limit of active Logs/Metrics/Monitors SLOs. - example: 100 - description: The usage info of SLOs. IdToSlosLibraryBaseResponseMap: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/SlosLibraryBaseResponse' + SlosLibraryBase: + required: + - name + - type + type: object + properties: + name: + type: string + description: Name of the slo or folder. + description: + type: string + description: Description of the slo or folder. + default: '' + type: + type: string + description: |- + Type of the object model. Valid values: + 1) SlosLibrarySlo + 2) SlosLibraryFolder + discriminator: + propertyName: type SlosLibraryBaseResponse: required: - contentType @@ -668,65 +640,90 @@ components: type: string discriminator: propertyName: type - SlosLibraryBase: + SlosLibraryFolderResponse: required: + - contentType + - createdAt + - createdBy + - description + - id + - isMutable + - isSystem + - modifiedAt + - modifiedBy - name + - parentId - type + - version + - children + - permissions type: object properties: + id: + type: string + description: Identifier of the slo or folder. name: type: string - description: Name of the slo or folder. + description: Identifier of the slo or folder. description: type: string description: Description of the slo or folder. - default: '' - type: + version: + type: integer + description: Version of the slo or folder. + format: int64 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + createdBy: + type: string + description: Identifier of the user who created the resource. + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + parentId: + type: string + description: Identifier of the parent folder. + contentType: type: string description: |- - Type of the object model. Valid values: - 1) SlosLibrarySlo - 2) SlosLibraryFolder + Type of the content. Valid values: + 1) Slo + 2) Folder + type: + type: string + description: Type of the object model. + isSystem: + type: boolean + description: System objects are objects provided by Sumo Logic. System objects can only be localized. Non-local fields can't be updated. + isMutable: + type: boolean + description: Immutable objects are "READ-ONLY". + permissions: + type: array + description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. + example: + - Read + - Delete + items: + type: string + children: + type: array + description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' + items: + $ref: '#/components/schemas/SlosLibraryBaseResponse' discriminator: propertyName: type - SlosLibraryFolderResponse: - allOf: - - $ref: '#/components/schemas/SlosLibraryBaseResponse' - - required: - - children - - permissions - type: object - properties: - permissions: - type: array - description: Aggregated permission summary for the calling user. If detailed permission statements are required, please call list permissions endpoint. - example: - - Read - - Delete - items: - type: string - children: - type: array - description: 'Children of the folder. NOTE: Permissions field will not be filled (empty list) for children.' - items: - $ref: '#/components/schemas/SlosLibraryBaseResponse' ListSlosLibraryItemWithPath: type: array description: Multi-type list of types slo or folder. items: $ref: '#/components/schemas/SlosLibraryItemWithPath' - SlosLibraryItemWithPath: - required: - - item - - path - type: object - properties: - item: - $ref: '#/components/schemas/SlosLibraryBaseResponse' - path: - type: string - description: Path of the slo or folder. - example: /Slos/SampleFolder/TestSlo SlosLibraryBaseUpdate: required: - name @@ -764,18 +761,6 @@ components: path: type: string description: String representation of the path. - PathItem: - required: - - id - - name - type: object - properties: - id: - type: string - description: Identifier of the path element. - name: - type: string - description: Name of the path element. ContentCopyParams: required: - parentId @@ -807,546 +792,359 @@ components: description: Type of the object model. discriminator: propertyName: type - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + SliStatus: + required: + - status + type: object + properties: + status: + pattern: ^(Success|Error|InProgress)$ + type: string + description: Whether the SLI computation is complete / had an error / is in progress. + example: Success + sliPercentage: + type: number + description: SLI percentage for the compliance period. Available if `status` is `Success`. + format: double + example: 95.14 + errorBudgetRemainingPercentage: + type: number + description: Percentage of error budget remaining for the compliance period. Available if `status` is `Success`. + format: double + absoluteErrorBudgetRemaining: + type: string + description: Formatted string for the absolute error budget remaining (time duration for window-based SLIs, request count for request-based SLIs). Available if `status` is `Success`. + example: 1h56m, -3h45m, -241.3k req, 1.5k req + progressPercentage: + type: number + description: SLI computation progress. + format: double + description: Status of the SLI computation. If the status is successful, also contains the SLI value and error budget remaining for the current compliance period. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SloUsage: + properties: + sliType: + pattern: ^(Logs|Metrics|Monitors)$ + type: string + description: The type of SLO usage info (Logs/Metrics/Monitor based). + example: Logs + x-pattern-message: Either `Logs` or `Metrics` or `Monitors`. + usage: + type: integer + description: Current number of active Logs/Metrics/Monitors SLOs. + example: 100 + limit: + type: integer + description: The limit of active Logs/Metrics/Monitors SLOs. + example: 100 + description: The usage info of SLOs. + type: object + SlosLibraryItemWithPath: + required: + - item + - path + type: object + properties: + item: + $ref: '#/components/schemas/SlosLibraryBaseResponse' + path: + type: string + description: Path of the slo or folder. + example: /Slos/SampleFolder/TestSlo + PathItem: + required: + - id + - name + type: object + properties: + id: + type: string + description: Identifier of the path element. + name: + type: string + description: Name of the path element. + description: + type: string + description: Description of the path element. + GetSloUsageInfoResponse: + type: object + properties: + slo_usage_info: + type: array + items: + $ref: '#/components/schemas/SloUsage' + SlosSearchResponse: + type: object + properties: + slos_search: + type: array + items: + $ref: '#/components/schemas/SlosLibraryItemWithPath' x-stackQL-resources: - sli: - id: sumologic.slos.sli - name: sli - title: Sli + slos: + id: sumologic.slos.slos + name: slos + title: Slos methods: - sli: + get_sli: operation: $ref: '#/paths/~1v1~1slos~1sli/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - usage_info: - id: sumologic.slos.usage_info - name: usage_info - title: Usage_info - methods: - getSloUsageInfo: + read_by_ids: operation: - $ref: '#/paths/~1v1~1slos~1usageInfo/get' + $ref: '#/paths/~1v1~1slos/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/usage_info/methods/getSloUsageInfo' - insert: [] - update: [] - delete: [] - slos: - id: sumologic.slos.slos - name: slos - title: Slos - methods: - slosReadByIds: + create: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1slos/get' + $ref: '#/paths/~1v1~1slos/post' response: mediaType: application/json openAPIDocKey: '200' - slosCreate: + request: + mediaType: application/json + nativeCasing: camel + delete_by_ids: operation: - $ref: '#/paths/~1v1~1slos/post' + $ref: '#/paths/~1v1~1slos/delete' response: mediaType: application/json openAPIDocKey: '200' - slosDeleteByIds: + get_by_path: operation: - $ref: '#/paths/~1v1~1slos/delete' + $ref: '#/paths/~1v1~1slos~1path/get' response: mediaType: application/json openAPIDocKey: '200' - slosReadById: + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1slos~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - slosUpdateById: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1slos~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - slosDeleteById: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1slos~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - root: - id: sumologic.slos.root - name: root - title: Root - methods: - getSlosLibraryRoot: + openAPIDocKey: '204' + request: + nativeCasing: camel + move: operation: - $ref: '#/paths/~1v1~1slos~1root/get' + $ref: '#/paths/~1v1~1slos~1{id}~1move/post' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/root/methods/getSlosLibraryRoot' - insert: [] - update: [] - delete: [] - path: - id: sumologic.slos.path - name: path - title: Path - methods: - slosGetByPath: + copy: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1slos~1path/get' + $ref: '#/paths/~1v1~1slos~1{id}~1copy/post' response: mediaType: application/json openAPIDocKey: '200' - getSlosFullPath: + request: + mediaType: application/json + nativeCasing: camel + export: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1path/get' + $ref: '#/paths/~1v1~1slos~1{id}~1export/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/path/methods/getSlosFullPath' - insert: [] - update: [] - delete: [] - search: - id: sumologic.slos.search - name: search - title: Search - methods: - slosSearch: + import: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1v1~1slos~1search/get' + $ref: '#/paths/~1v1~1slos~1{parentId}~1import/post' response: mediaType: application/json openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - move: - id: sumologic.slos.move - name: move - title: Move + select: + - $ref: '#/components/x-stackQL-resources/slos/methods/get' + - $ref: '#/components/x-stackQL-resources/slos/methods/get_by_path' + insert: + - $ref: '#/components/x-stackQL-resources/slos/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/slos/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/slos/methods/delete' + replace: [] + usage_info: + id: sumologic.slos.usage_info + name: usage_info + title: Usage Info methods: - slosMove: + list: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1move/post' + $ref: '#/paths/~1v1~1slos~1usageInfo/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.slo_usage_info + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetSloUsageInfoResponse' + transform: + body: |- + {{- $wrapped := printf "{\"slo_usage_info\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/usage_info/methods/list' insert: [] update: [] delete: [] - copy: - id: sumologic.slos.copy - name: copy - title: Copy + replace: [] + root: + id: sumologic.slos.root + name: root + title: Root methods: - slosCopy: + get: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1copy/post' + $ref: '#/paths/~1v1~1slos~1root/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/root/methods/get' insert: [] update: [] delete: [] - export: - id: sumologic.slos.export - name: export - title: Export + replace: [] + search: + id: sumologic.slos.search + name: search + title: Search methods: - slosExportItem: + list: operation: - $ref: '#/paths/~1v1~1slos~1{id}~1export/get' + $ref: '#/paths/~1v1~1slos~1search/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.slos_search + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/SlosSearchResponse' + transform: + body: |- + {{- $wrapped := printf "{\"slos_search\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/search/methods/list' insert: [] update: [] delete: [] - import: - id: sumologic.slos.import - name: import - title: Import + replace: [] + paths: + id: sumologic.slos.paths + name: paths + title: Paths methods: - slosImportItem: + get: operation: - $ref: '#/paths/~1v1~1slos~1{parentId}~1import/post' + $ref: '#/paths/~1v1~1slos~1{id}~1path/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/paths/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - slos - description: slos - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/source_templates.yaml b/providers/src/sumologic/v00.00.00000/services/source_templates.yaml new file mode 100644 index 00000000..a2959462 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/source_templates.yaml @@ -0,0 +1,1061 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Source Templates API + description: Source templates for OpenTelemetry collectors (v1 deprecated and v2). + version: 1.0.0 +paths: + /v1/sourceTemplates: + get: + tags: + - sourceTemplateManagementExternal + summary: List all source templates. + description: Get a list of all source templates. + operationId: getSourceTemplatesV2 + parameters: + - name: showDisabled + in: query + description: A boolean parameter to get all, including disabled source templates. + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template. + description: Create source template. + operationId: createSourceTemplateV2 + parameters: + - name: dryRun + in: query + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id. + description: Get a source template with the given identifier. + operationId: getSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + '200': + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template. + description: Update a source template with the given identifier. + operationId: updateSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Request details of update source template. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpdateRequest' + required: true + responses: + '200': + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template. + description: Delete a source template with the given identifier. + operationId: deleteSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + '204': + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template + description: Update the status (enable or disable) of a source template. + operationId: updateSourceTemplateStatusV2 + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + '200': + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/{id}/upgrade: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template. + description: Upgrade a source template with the given identifier. + operationId: upgradeSourceTemplateV2 + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + '200': + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplates/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Preview source template linking changes. + description: Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + operationId: getLinkedSourceTemplatesImpact + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + '200': + description: A list of source templates whose linking to the otCollector will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate: + get: + tags: + - sourceTemplateManagementExternal + summary: Return all source templates of a customer (deprecated). + description: | + Get a list of source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates instead. + operationId: getSourceTemplates + parameters: + - name: showDisabled + in: query + description: A boolean parameter to get all, including disabled source templates. + required: false + schema: + type: boolean + default: false + - name: name + in: query + description: Only return source template matching the given name (exact match). + required: false + schema: + minLength: 1 + type: string + nullable: true + - name: fleetIds + in: query + description: Comma-separated list of fleet IDs (hex-encoded). + required: false + explode: false + schema: + type: array + items: + type: string + responses: + '200': + description: A list of source templates. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateListResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Create source template (deprecated). + description: | + Create source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates instead. + operationId: createSourceTemplate + parameters: + - name: dryRun + in: query + description: Whether this creation request is a dry run. With dryRun set to true, the source template will not be created but the request will be validated. + required: false + schema: + type: boolean + example: true + default: false + requestBody: + description: Create source template details + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Create source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/{id}: + get: + tags: + - sourceTemplateManagementExternal + summary: Get a source template by Id (deprecated). + description: | + Get a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use GET /v1/sourceTemplates/{id} instead. + operationId: getSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to get. + required: true + schema: + type: string + responses: + '200': + description: Get source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + post: + tags: + - sourceTemplateManagementExternal + summary: Update source template (deprecated). + description: | + Update a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id} instead. + operationId: updateSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Source template request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateRequest' + required: true + responses: + '200': + description: Update source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + delete: + tags: + - sourceTemplateManagementExternal + summary: Delete a source template (deprecated). + description: | + Delete a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use DELETE /v1/sourceTemplates/{id} instead. + operationId: deleteSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to delete. + required: true + schema: + type: string + responses: + '204': + description: The source template was deleted successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/upgrade/sourceTemplate/{id}: + post: + tags: + - sourceTemplateManagementExternal + summary: Upgrade source template (deprecated). + description: | + Upgrade a source template with the given identifier. + + **DEPRECATED**: This endpoint will be removed soon. Please use POST /v1/sourceTemplates/{id}/upgrade instead. + operationId: upgradeSourceTemplate + parameters: + - name: id + in: path + description: Identifier of the source template to upgrade. + required: true + schema: + type: string + requestBody: + description: Source template upgrade request details. + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateUpgradeRequest' + required: true + responses: + '200': + description: Upgrade source template response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true + /v1/sourceTemplate/getLinkedSourceTemplatesImpact: + post: + tags: + - sourceTemplateManagementExternal + summary: Get linked source templates update based on the ot-collector tags user is wants to update. + description: Given the set of tags user wants to update, display the list of source templates that will be linked/unlinked to the otCollector. + operationId: getLinkedSourceTemplatesUpdate + requestBody: + description: Request body containing otCollector id and set of tags. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateRequest' + required: true + responses: + '200': + description: A list of source templates whose linking to the otCollector will be impacted. + content: + application/json: + schema: + $ref: '#/components/schemas/LinkedSourceTemplatesUpdateResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/sourceTemplate/{id}/status: + put: + tags: + - sourceTemplateManagementExternal + summary: Update status of source template (deprecated) + description: | + Update the status (enable or disable) of a source template. + + **DEPRECATED**: This endpoint will be removed soon. Please use PUT /v1/sourceTemplates/{id}/status instead. + operationId: updateSourceTemplateStatus + parameters: + - name: id + in: path + description: Identifier of the source template to update. + required: true + schema: + type: string + requestBody: + description: Status of source template + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateStatusUpdateRequest' + required: true + responses: + '200': + description: Update source template status response + content: + application/json: + schema: + $ref: '#/components/schemas/SourceTemplateDefinition' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + deprecated: true +components: + schemas: + SourceTemplateListResponse: + required: + - data + type: object + properties: + data: + type: array + description: List of source templates. + items: + $ref: '#/components/schemas/SourceTemplateDefinition' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + SourceTemplateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: string + description: receiver information of source template (opaque JSON object) + example: {} + description: + type: string + description: description of source template + example: Demo Description for Source Template + processors: + type: string + description: processors for source template (opaque JSON object) + example: {} + additionalProperties: true + description: inputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: Indicates whether the source template is enabled - **Create operation:** Defaults to `true` (the template is enabled when created). - **Update operation:** If omitted, the existing status is preserved. + example: true + description: request body for creating source template. + SourceTemplateDefinition: + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + id: + type: string + description: id of source template. + example: 0000000003343FDD + inputJson: + maxProperties: 1000 + type: object + additionalProperties: true + description: inputJson of source template + example: {} + config: + type: string + description: configuration of source template + example: apache.yaml.example + selector: + $ref: '#/components/schemas/Selector' + totalCollectorLinked: + type: integer + description: count of total collector linked with this source template. + format: int32 + default: 0 + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedAt: + type: string + description: Modification timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Id of the user who created source template + example: 0000000006743FDD + modifiedBy: + type: string + description: Id of the user who last modified the source template + example: 0000000006243FDD + status: + type: string + description: Status of Source template + enum: + - enable + - disable + isEnabled: + type: boolean + description: A boolean parameter to get if the source template is enabled. + example: true + default: true + description: response definition of source template. + SourceTemplateUpdateRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/SchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: Name of source template. + example: apache_test_source_template + receivers: + type: string + description: Receiver information of source template (opaque JSON object) + example: {} + description: + type: string + description: Description of source template + example: Demo Description for source template + processors: + type: string + description: Processors for source template (opaque JSON object) + example: {} + additionalProperties: true + description: InputJson of source template + selector: + $ref: '#/components/schemas/Selector' + isEnabled: + type: boolean + description: Indicates whether the source template is enabled. If omitted, the existing status is preserved. + example: true + description: Request body for updating source template. + SourceTemplateStatusUpdateRequest: + required: + - status + type: object + properties: + status: + type: string + description: status to set for the source template (enable or disable). + enum: + - enable + - disable + example: + status: enable + SourceTemplateUpgradeRequest: + required: + - inputJson + - schemaRef + type: object + properties: + schemaRef: + $ref: '#/components/schemas/UpgradeSchemaRef' + inputJson: + maxProperties: 1000 + required: + - name + - receivers + type: object + properties: + name: + type: string + description: name of source template. + example: apache_test_source_template + receivers: + type: string + description: receiver information of source template (opaque JSON object) + example: + hostmetrics: + receiverType: hostmetrics + collection_interval: 5m + description: + type: string + description: description of source template + example: Demo Description for source template + processors: + type: string + description: processors for source template (opaque JSON object) + example: + resource: + processorType: resource + additionalProperties: true + description: inputJson of source template + description: request body for creating source template. + LinkedSourceTemplatesUpdateRequest: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + tags: + maxProperties: 50 + type: object + additionalProperties: + type: string + description: JSON map of key-value metadata to apply to the otCollector. + example: + environment: production + location: us-west-2 + default: {} + updatedName: + type: string + description: Updated Name of the otCollector. + example: demo_macOS + LinkedSourceTemplatesUpdateResponse: + required: + - collectorId + type: object + properties: + collectorId: + type: string + description: otCollector id for which tags are edited. + example: 00005AF3107BF0D6 + addedSourceTemplates: + type: array + description: list of sourceTemplates which are linked to otCollector. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + removedSourceTemplates: + type: array + description: list of sourceTemplates which are removed from otCollector linking. + items: + $ref: '#/components/schemas/LinkingUpdatedSourceTemplateDetails' + description: linked source template details based on the ot-collector tags user wants to update. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + SchemaRef: + required: + - type + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + description: schema reference for source template. + Selector: + type: object + properties: + tags: + type: array + description: tags filter for agents + items: + type: array + items: + $ref: '#/components/schemas/OtTag' + names: + type: array + description: names to select custom agents + items: + type: string + example: demo_macOS + fleetIds: + type: array + description: IDs of the fleets the source template is associated with + items: + maxLength: 16 + minLength: 16 + type: string + example: 0000000006243FDD + description: Agent selector conditions + UpgradeSchemaRef: + required: + - type + - version + type: object + properties: + type: + type: string + description: type of source template. + example: Apache + version: + type: string + description: version of source template. + example: 1.0.0 + description: schema reference for upgrade source template request. + LinkingUpdatedSourceTemplateDetails: + required: + - reasonTags + - sourceTemplateDefinition + type: object + properties: + sourceTemplateDefinition: + $ref: '#/components/schemas/SourceTemplateDefinition' + reasonTags: + type: array + description: tags which are responsible for source template and collector linking impact. + items: + type: array + items: + $ref: '#/components/schemas/CollectorTag' + description: source template details with tags responsible for otCollector Linking update. + OtTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: key of the given tag. + example: key1 + values: + type: array + description: values of the given tag. + items: + type: string + example: value1 + CollectorTag: + required: + - key + - values + type: object + properties: + key: + type: string + description: Key of the given tag. + example: key1 + value: + type: string + description: Values of the given tag. + example: value1 + x-stackQL-resources: + source_templates: + id: sumologic.source_templates.source_templates + name: source_templates + title: Source Templates + methods: + list: + operation: + $ref: '#/paths/~1v1~1sourceTemplates/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update_status: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}~1status/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + upgrade: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1{id}~1upgrade/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + get_linked_impact: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1sourceTemplates~1getLinkedSourceTemplatesImpact/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/get' + - $ref: '#/components/x-stackQL-resources/source_templates/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/source_templates/methods/delete' + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/threat_intel.yaml b/providers/src/sumologic/v00.00.00000/services/threat_intel.yaml new file mode 100644 index 00000000..1fae1783 --- /dev/null +++ b/providers/src/sumologic/v00.00.00000/services/threat_intel.yaml @@ -0,0 +1,884 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Threat Intel API + description: Threat intelligence datastore, data sources, retention and indicator ingestion. + version: 1.0.0 +paths: + /v1/threatIntel/datastore/db: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators DB information + description: Get threat intel indicators DB information, such as storage utilization and indicator counts + operationId: datastoreGet + responses: + '200': + description: Threat intel ingest DB information. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreStatusResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + delete: + tags: + - threatIntelIngest + summary: Remove the threat intel indicators DB + description: Removes the entire database and all indicators associated with this tenant + operationId: removeDatastore + responses: + '204': + description: Removing the indicator database succeeded + default: + description: Operation failed with an error + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/retentionPeriod: + get: + tags: + - threatIntelIngest + summary: Get threat intel indicators store retention period in terms of days. + description: Get the threat intel indicators store retention period in terms of days. + operationId: retentionPeriod + responses: + '200': + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + post: + tags: + - threatIntelIngest + summary: Set the threat intel indicators store retention period in terms of days. + description: Sets the threat intel indicators store retention period in terms of days. + operationId: setRetentionPeriod + parameters: [] + requestBody: + description: The threat intel indicators store retention period in terms of days. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + required: true + responses: + '200': + description: Threat intel indicators store retention period. + content: + application/json: + schema: + $ref: '#/components/schemas/DatastoreRetentionPeriod' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/normalized: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a Sumo normalized format. + description: Uploads a list indicators in a Sumo normalized format. + operationId: uploadNormalizedIndicators + parameters: [] + requestBody: + description: The list of normalized threat intel indicators to upload. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadNormalizedIndicatorRequest' + required: true + responses: + '204': + description: Normalized indicators successfully uploaded. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators/stix: + post: + tags: + - threatIntelIngestProducer + summary: Uploads indicators in a STIX 2.x json format. + description: Uploads a list indicators in in a STIX 2.x json format. + operationId: uploadStixIndicators + parameters: [] + requestBody: + description: Upload stix indicators request body. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsRequest' + required: true + responses: + '200': + description: Stix indicators successfully uploaded. + content: + application/json: + schema: + $ref: '#/components/schemas/UploadStixIndicatorsResponse' + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/indicators: + delete: + tags: + - threatIntelIngestProducer + summary: Removes indicators by their IDS + description: Removes indicators by specifying a list of indicator IDs + operationId: removeIndicators + parameters: [] + requestBody: + description: The list of indicator IDs to remove + content: + application/json: + schema: + $ref: '#/components/schemas/RemoveIndicatorsRequest' + required: true + responses: + '204': + description: Indicators successfully removed + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + /v1/threatIntel/datastore/dataSource/{dataSourceName}: + put: + tags: + - threatIntelIngest + summary: Updates source properties + description: Updates source properties + operationId: dataSourcePropertiesUpdate + parameters: + - name: dataSourceName + in: path + description: Source name + required: true + schema: + type: string + requestBody: + description: Source properties + content: + application/json: + schema: + $ref: '#/components/schemas/DataSourceProperties' + required: true + responses: + '204': + description: Data source properties successfuly updated. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' +components: + schemas: + DatastoreStatusResponse: + required: + - diskSize + - indicatorCount + - indicatorLimit + - sourceStatus + type: object + properties: + diskSize: + type: integer + description: Total DB size in terms of disk bytes + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Total number of indicators in the DB + format: int64 + example: 100 + indicatorLimit: + type: integer + description: Limit number of indicators supported in the DB + format: int64 + example: 10000000 + sourceStatus: + type: array + description: A list of sources and their individual DB sizes and indicator counts + items: + $ref: '#/components/schemas/DatastoreSourceStatusResponse' + ErrorResponse: + required: + - errors + - id + type: object + properties: + id: + type: string + description: An identifier for the error; this is unique to the specific API request. + example: IUUQI-DGH5I-TJ045 + errors: + type: array + description: A list of one or more causes of the error. + example: + - code: auth:password_too_short + message: Your password was too short. + - code: auth:password_character_classes + message: Your password did not contain any non-alphanumeric characters + items: + $ref: '#/components/schemas/ErrorDescription' + DatastoreRetentionPeriod: + required: + - retentionPeriod + type: object + properties: + retentionPeriod: + type: integer + description: Retention period in days. + format: int64 + example: 120 + UploadNormalizedIndicatorRequest: + required: + - indicators + type: object + properties: + indicators: + type: array + description: The list of normalized threat intel indicators to upload. + items: + $ref: '#/components/schemas/NormalizedIndicator' + UploadStixIndicatorsRequest: + required: + - indicators + - source + type: object + properties: + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + indicators: + type: array + description: The list of stix threat intel indicators to upload. + items: + $ref: '#/components/schemas/StixIndicator' + UploadStixIndicatorsResponse: + required: + - invalidIndicators + type: object + properties: + invalidIndicators: + type: array + description: A list of invalid indicator IDs that were not ingested + example: + - indicator--foo + - indicator--bar + items: + type: string + RemoveIndicatorsRequest: + required: + - indicatorIds + - source + type: object + properties: + source: + type: string + description: The source of the indicator ID to match against + example: Crowdstrike + indicatorIds: + type: array + description: The list of indicator IDs to match against + example: + - indicator--abcd + - indicator--ef012 + items: + type: string + DataSourceProperties: + type: object + properties: + enabled: + type: boolean + description: True if enabled. + example: true + description: + type: string + description: The data source description. + example: This is a stix1.2 data source. + DatastoreSourceStatusResponse: + required: + - source + type: object + properties: + source: + type: string + description: The source name + example: unit42_source + description: + type: string + description: The source description + example: This is a stix1.2 indicators source + diskSize: + type: integer + description: Disk utilization in bytes estimate for the indicator source + format: int64 + example: 1024 + indicatorCount: + type: integer + description: Number of indicators for the indicator source + format: int64 + example: 1024 + sumoProvided: + type: boolean + description: True if sumo provided source + example: false + supportsCat: + type: boolean + description: True if can be used in cat operator + example: false + enabled: + type: boolean + description: True if enabled + example: true + description: DB sizes and indicator counts for an individual source + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + NormalizedIndicator: + required: + - confidence + - id + - indicator + - source + - threatType + - type + - validFrom + type: object + properties: + id: + type: string + description: ID of the indicator + example: indicator--d81f86b9-975b-4c0b-875e-810c5ad45a4f + indicator: + type: string + description: Value of the indicator + example: 182.158.1.1 + type: + type: string + description: Type of indicator + example: ipv4-addr + source: + type: string + description: User-provided text to identify the source of the indicator + example: FreeTAXII + updated: + type: string + description: When this indicator was most recently updated in Sumo. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2023-03-21T12:00:00.000Z' + validFrom: + type: string + description: Beginning time this indicator is valid. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2023-03-21T12:00:00.000Z' + validUntil: + type: string + description: 'Time at which this indicator expires. If not set, a default TTL is applied based on indicator type and confidence. File hash indicators (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence. All other indicator types: 30/90/180 days for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74, high 75-100. Timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format.' + format: date-time + example: '2023-03-21T12:00:00.000Z' + confidence: + maximum: 100 + minimum: 1 + type: integer + description: Confidence that the creator has in the correctness of their data, where 100 is highest + threatType: + type: string + description: Type of indicator ( https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html#_cvhfwe3t9vuo ) + example: benign + actors: + type: string + description: Actors as a comma separated list. + example: actor1,actor2 + killChain: + type: string + description: Kill Chain as a comma separated list. + example: KC1,KC2 + fields: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Flattened fields from the original indicator object (e.g. flattened STIX fields) + StixIndicator: + required: + - created + - id + - modified + - pattern + - pattern_type + - spec_version + - type + - valid_from + type: object + properties: + type: + type: string + description: The type property identifies the type of STIX Object. + example: indicator + spec_version: + type: string + description: The STIX version + example: '2.1' + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + modified: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe this object. The terms are user-defined or trust-group defined and their meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + confidence: + maximum: 100 + minimum: 1 + type: integer + description: Confidence that the creator has in the correctness of their data, where 100 is highest + lang: + type: string + description: The lang property identifies the language of the text content in this object. When present, it MUST be a language code conformant to [RFC5646]. If the property is not present, then the language of the content is en (English) + example: en + external_references: + type: array + description: A list of external references which refer to non-STIX information. This property MAY be used to provide one or more Vulnerability identifiers, such as a CVE ID + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + extensions: + maxProperties: 1000 + type: object + additionalProperties: + $ref: '#/components/schemas/Extension' + description: Specifies any extensions of the object, as a dictionary + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + indicator_types: + type: array + description: A set of categorizations for this indicator. + example: + - malicious-activity + items: + type: string + pattern: + type: string + description: The detection pattern for this Indicator expressed as a STIX patter. + example: '[ipv4-addr:value = ''1.2.3.4'']' + pattern_type: + type: string + description: The type of pattern + example: stix + pattern_version: + type: string + description: The version of the pattern language that is used for the data in the pattern property which MUST match the type of pattern data included in the pattern property. + valid_from: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + valid_until: + type: string + description: 'The time at which this Indicator should no longer be considered a valid indicator of the behaviors it is related to or represents. If not set, a default TTL is applied based on indicator type and confidence. File hash indicators (type prefix `file:hashes`): 30/365/730 days for low/medium/high confidence. All other indicator types: 30/90/180 days for low/medium/high confidence. Confidence bands: low 0-49, medium 50-74, high 75-100.' + format: date-time + example: '2023-03-21T12:00:00.000Z' + kill_chain_phases: + type: array + description: The list of Kill Chain Phases for which this Attack Pattern is used + items: + $ref: '#/components/schemas/KillChainPhase' + ExternalReference: + required: + - source_name + type: object + properties: + source_name: + type: string + description: The name of the source that the external-reference is defined within + example: system + description: + type: string + description: A human readable description + url: + type: string + description: A URL reference to an external resource + example: https://github.com/vz-risk/0001AA7F-C601-424A-B2B8-BE6C9F5164E7.json + hashes: + maxProperties: 1000 + type: object + additionalProperties: + type: string + description: Specifies a dictionary of hashes for the contents of the url + example: + SHA-256: 6db12788c37247f2316052e142f42f4b259d6561751e5f401a1ae2a6df9c674b + external_id: + type: string + description: An identifier for the external reference content + example: 0001AA7F-C601-424A-B2B8-BE6C9F5164E7 + GranularMarkingType: + required: + - selectors + type: object + properties: + lang: + type: string + description: The lang property identifies the language of the text identified by this marking + example: en + marking_ref: + type: string + description: The marking_ref property specifies the ID of the marking-definition object that describes the marking + example: marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + selectors: + type: array + description: The selectors property specifies a list of selectors for content contained within the STIX Object in which this property appears + example: + - description + - labels + items: + type: string + Extension: + required: + - created + - created_by_ref + - extension_types + - id + - modified + - name + - schema + - spec_version + - type + - version + type: object + properties: + type: + type: string + description: The type property identifies the type of object + example: indicator + spec_version: + type: string + description: The STIX version + example: '2.1' + id: + type: string + description: The ID of the indicator + example: acme:indicator-bf8bc5d5-c7e6-46b0-8d22-7500fea77196 + created: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + modified: + type: string + description: The time from which this Indicator is considered a valid indicator of the behaviors it is related or represents. + format: date-time + example: '2023-03-21T12:00:00.000Z' + created_by_ref: + type: string + description: Identifier of type identity + example: identity--f431f809-377b-45e0-aa1c-6a4751cae5ff + revoked: + type: boolean + description: The revoked property is only used by STIX Objects that support versioning and indicates whether the object has been revoked. + labels: + type: array + description: The labels property specifies a set of terms used to describe this object. The terms are user-defined or trust-group defined and their meaning is outside the scope of this specification and MAY be ignored. + example: + - heartbleed + - has-logo + items: + type: string + external_references: + type: array + description: A list of external references which refer to non-STIX information. This property MAY be used to provide one or more Vulnerability identifiers, such as a CVE ID + items: + $ref: '#/components/schemas/ExternalReference' + object_marking_refs: + type: array + description: The object_marking_refs property specifies a list of id properties of marking-definition objects that apply to this object. + example: + - marking-definition--089a6ecb-cc15-43cc-9494-767639779123 + items: + type: string + granular_markings: + type: array + description: The granular_markings property specifies a list of granular markings applied to this object + items: + $ref: '#/components/schemas/GranularMarkingType' + name: + type: string + description: The name of the object + description: + type: string + description: A human readable description + schema: + type: string + description: The normative definition of the extension, either as a URL or as plain text explaining the definition + example: https://www.example.com/schema-my-favorite-sdo-1/v1 + version: + type: string + description: The version of this extension + extension_types: + type: array + description: This property specifies one or more extension types contained within this extension + items: + type: string + enum: + - new-sdo + - new-sco + - new-sro + - property-extension + - toplevel-property-extension + extension_properties: + type: array + description: This property contains the list of new property names that are added to an object by an extension + items: + type: string + KillChainPhase: + required: + - kill_chain_name + type: object + properties: + kill_chain_name: + type: string + description: The name of the kill chain. The value of this property SHOULD be all lowercase and SHOULD use hyphens instead of spaces or underscores as word separators + example: lockheed-martin-cyber-kill-chain + phase_name: + type: string + description: The name of the phase in the kill chain. The value of this property SHOULD be all lowercase and SHOULD use hyphens instead of spaces or underscores as word separators + example: reconnaissance + x-stackQL-resources: + datastore: + id: sumologic.threat_intel.datastore + name: datastore + title: Datastore + methods: + get: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1db/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1db/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/datastore/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/datastore/methods/delete' + replace: [] + retention_period: + id: sumologic.threat_intel.retention_period + name: retention_period + title: Retention Period + methods: + get: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1retentionPeriod/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1retentionPeriod/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/retention_period/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/retention_period/methods/update' + delete: [] + replace: [] + indicators: + id: sumologic.threat_intel.indicators + name: indicators + title: Indicators + methods: + upload_normalized: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1indicators~1normalized/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + upload_stix: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1indicators~1stix/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/json + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1indicators/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + data_sources: + id: sumologic.threat_intel.data_sources + name: data_sources + title: Data Sources + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1threatIntel~1datastore~1dataSource~1{dataSourceName}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/data_sources/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint + variables: + region: + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. + enum: + - au + - ca + - ch + - de + - eu + - fed + - in + - jp + - kr + - us1 + - us2 + default: us2 + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/tokens.yaml b/providers/src/sumologic/v00.00.00000/services/tokens.yaml index 84f8acc7..594e2a21 100644 --- a/providers/src/sumologic/v00.00.00000/services/tokens.yaml +++ b/providers/src/sumologic/v00.00.00000/services/tokens.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Tokens API + description: Installation tokens (tokens library). + version: 1.0.0 paths: /v1/tokens: get: @@ -159,6 +164,37 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' + TokenBaseDefinition: + required: + - name + - status + - type + type: object + properties: + name: + maxLength: 255 + minLength: 1 + type: string + description: Name of the token. + example: token-name + description: + maxLength: 4096 + minLength: 0 + type: string + description: Description of the token. + example: 'token description: for test.' + status: + pattern: ^(Active|Inactive)$ + type: string + description: Status of the token. Can be `Active`, or `Inactive`. + example: Active + x-pattern-message: must be either `Active` or `Inactive` + type: + pattern: ^(CollectorRegistration)$ + type: string + description: 'Type of the token. Valid values: 1) CollectorRegistration' + example: CollectorRegistration + x-pattern-message: must be `CollectorRegistration` TokenBaseResponse: required: - createdAt @@ -220,35 +256,12 @@ components: description: Identifier of the user who last modified the resource. discriminator: propertyName: type - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - TokenBaseDefinition: + TokenBaseDefinitionUpdate: required: - name - status - type + - version type: object properties: name: @@ -275,427 +288,125 @@ components: description: 'Type of the token. Valid values: 1) CollectorRegistration' example: CollectorRegistration x-pattern-message: must be `CollectorRegistration` - TokenBaseDefinitionUpdate: + version: + type: integer + description: Version of the token. + format: int64 + ErrorDescription: required: - - name - - status - - type - - version + - code + - message type: object properties: - name: - maxLength: 255 - minLength: 1 + code: type: string - description: Name of the token. - example: token-name - description: - maxLength: 4096 - minLength: 0 + description: An error code describing the type of error. + example: auth:password_too_short + message: type: string - description: Description of the token. - example: 'token description: for test.' - status: - pattern: ^(Active|Inactive)$ + description: A short English-language description of the error. + example: Your password was too short. + detail: type: string - description: Status of the token. Can be `Active`, or `Inactive`. - example: Active - x-pattern-message: must be either `Active` or `Inactive` - type: - pattern: ^(CollectorRegistration)$ + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: type: string - description: 'Type of the token. Valid values: 1) CollectorRegistration' - example: CollectorRegistration - x-pattern-message: must be `CollectorRegistration` - version: - type: integer - description: Version of the token. - format: int64 - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 x-stackQL-resources: tokens: id: sumologic.tokens.tokens name: tokens title: Tokens methods: - listTokens: + list: operation: $ref: '#/paths/~1v1~1tokens/get' response: mediaType: application/json openAPIDocKey: '200' - createToken: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tokens/post' response: mediaType: application/json openAPIDocKey: '200' - getToken: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tokens~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateToken: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tokens~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteToken: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1tokens~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tokens/methods/getToken' - - $ref: '#/components/x-stackQL-resources/tokens/methods/listTokens' + - $ref: '#/components/x-stackQL-resources/tokens/methods/get' + - $ref: '#/components/x-stackQL-resources/tokens/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/tokens/methods/createToken' - update: [] + - $ref: '#/components/x-stackQL-resources/tokens/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/tokens/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/tokens/methods/deleteToken' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/tokens/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - tokens - description: tokens - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/tracing.yaml b/providers/src/sumologic/v00.00.00000/services/tracing.yaml index ce39c6f5..9d68b783 100644 --- a/providers/src/sumologic/v00.00.00000/services/tracing.yaml +++ b/providers/src/sumologic/v00.00.00000/services/tracing.yaml @@ -1,10 +1,15 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Tracing API + description: Traces, spans, trace and span queries, tracing metrics and the service map. + version: 1.0.0 paths: /v1/tracing/tracequery: post: tags: - traces summary: Run a trace search query asynchronously. - description: Execute a trace search query and get the id to fetch its status and results. Use the [Trace Query Status](#operation/getTraceQueryStatus) endpoint to check a query status. When the query has been completed, use the [Trace Query Result](#operation/getTraceQueryResult) endpoint to get the result of the asynchronous query. + description: Execute a trace search query and get the id to fetch its status and results. Use the Trace Query Status endpoint to check a query status. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. operationId: createTraceQuery parameters: [] requestBody: @@ -56,7 +61,7 @@ paths: tags: - traces summary: Get a trace search query status. - description: Get a status of a trace query with the given id. When the query has been completed, use the [Trace Query Result](#operation/getTraceQueryResult) endpoint to get the result of the asynchronous query. + description: Get a status of a trace query with the given id. When the query has been completed, use the Trace Query Result endpoint to get the result of the asynchronous query. operationId: getTraceQueryStatus parameters: - name: queryId @@ -210,6 +215,15 @@ paths: required: false schema: type: string + - name: fieldType + in: query + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + required: false + schema: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + example: SpanEventAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' responses: '200': description: List of available filter values for the given field. @@ -508,7 +522,7 @@ paths: tags: - spanAnalytics summary: Run a span analytics query asynchronously. - description: Execute a span analytics query and get the id to fetch its status and results. Use the [Span Query Status](#operation/getSpanQueryStatus) endpoint to check a query status. When the query has been completed, use the [Span Query Result](#operation/getSpanQueryResult) endpoint to get the result of the asynchronous query. + description: Execute a span analytics query and get the id to fetch its status and results. Use the Span Query Status endpoint to check a query status. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. operationId: createSpanQuery parameters: [] requestBody: @@ -560,7 +574,7 @@ paths: tags: - spanAnalytics summary: Get a span analytics query status. - description: Get a status of a span analytics query with the given id. When the query has been completed, use the [Span Query Result](#operation/getSpanQueryResult) endpoint to get the result of the asynchronous query. + description: Get a status of a span analytics query with the given id. When the query has been completed, use the Span Query Result endpoint to get the result of the asynchronous query. operationId: getSpanQueryStatus parameters: - name: queryId @@ -882,90 +896,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - AsyncTraceQueryRow: - required: - - query - - rowId - type: object - properties: - query: - $ref: '#/components/schemas/TraceQueryExpression' - rowId: - maxLength: 16 - type: string - description: An identifier used to reference this particular row of the query request while fetching a query result. Within a query, row ids must have distinct values. - example: '#A' - orderBy: - $ref: '#/components/schemas/OrderBy' - ResolvableTimeRange: - required: - - type - type: object - properties: - type: - type: string - description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. - example: - type: BeginBoundedTimeRange - from: - type: RelativeTimeRangeBoundary - relativeTime: '-15m' - discriminator: - propertyName: type - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 - TraceQueryExpression: - required: - - type - type: object - properties: - type: - type: string - description: Expression type of the object model. - description: Base query expression object. - discriminator: - propertyName: type - OrderBy: - required: - - fieldName - - order - type: object - properties: - fieldName: - maxLength: 32 - minLength: 1 - type: string - description: 'Field based on which results should be sorted. When not provided, the default behavior is to sort by timestamp descending. Sortable fields values: `trace_id`, `start_timestamp`, `duration`, `spans_number`, `errors`, `status_code`.' - example: start_timestamp - order: - pattern: ^(Asc|Desc)$ - type: string - description: Type of sorting values - descending or ascending. - example: Asc - default: Desc - x-pattern-message: should be either 'Asc' or 'Desc' TraceQueryStatusResponse: required: - queryRows @@ -983,33 +913,6 @@ components: description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' example: Processing x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. - TraceQueryRowStatus: - required: - - count - - rowId - - status - type: object - properties: - rowId: - type: string - description: A unique identifier of the query. - example: A - status: - pattern: ^(Processing|Finished|Error|Canceled)$ - type: string - description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' - example: Processing - x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. - statusMessage: - type: string - description: Descriptive message of the status - example: Finished successfully - count: - minimum: 0 - type: integer - description: Number of results matching the query - format: int64 - example: 3215 TraceQueryResultResponse: required: - results @@ -1024,6 +927,46 @@ components: type: string description: Next continuation token. example: '10001' + TraceMetricsResponse: + required: + - metrics + type: object + properties: + metrics: + type: array + description: List of trace metrics. + items: + $ref: '#/components/schemas/TraceMetricDetail' + TraceFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of filter fields. + items: + $ref: '#/components/schemas/TraceFieldDetail' + TraceFieldValuesResponse: + required: + - fieldValues + - totalCount + type: object + properties: + fieldValues: + type: array + description: List of filter field values. + items: + type: string + totalCount: + type: integer + description: Total number of values for a field matching the query. Can be approximated when it's above 3000. + format: int64 + example: 1234 + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 TraceDetail: required: - id @@ -1048,6 +991,7 @@ components: description: The name of the operation given to the root span. example: retrieveAccount metrics: + maxProperties: 1000 type: object additionalProperties: $ref: '#/components/schemas/DoubleTracingValue' @@ -1058,91 +1002,409 @@ components: type: string description: Date and time the trace was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2019-11-22T09:00:00Z' + example: '2019-11-22T09:00:00.000Z' criticalPathServiceBreakdownSummary: $ref: '#/components/schemas/CriticalPathServiceBreakdownSummary' - TraceSpanStatus: + TraceExistsResponse: required: - - code + - exists type: object properties: - code: + exists: + type: boolean + description: Indicates whether the trace with the given trace id exists. + example: true + url: type: string - description: 'Status code of the span. Possible values: `OK`, `ERROR`, `UNKNOWN`.' - example: OK - message: + description: A path to the trace view page in Sumo Logic UI. + example: '#/trace/00000000000120CB' + TraceSpansResponse: + required: + - spans + - totalCount + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/TraceSpan' + totalCount: + type: integer + description: Total count of spans for this trace. + format: int64 + example: 1234 + next: type: string - description: Optional descriptive message about the status, could be an http status code or the kind of an error, e.g. OSError. - example: '404' - DoubleTracingValue: - allOf: - - $ref: '#/components/schemas/TracingValue' - - required: - - value + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + TraceLightEventsResponse: + type: object + properties: + spanEvents: + maxProperties: 1000 type: object - properties: - value: - type: number - format: double - CriticalPathServiceBreakdownSummary: + additionalProperties: + type: array + items: + $ref: '#/components/schemas/LightSpanEvent' + description: Map of span ids to lists of their events, without their attributes. + next: + type: string + description: Next continuation token. + example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + CriticalPathResponse: + required: + - segments + type: object + properties: + segments: + type: array + description: List of span segments from the critical path. + items: + $ref: '#/components/schemas/SpanPathSegment' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + CriticalPathServiceBreakdownResponse: required: - elements - idleTime - - otherServicesDuration type: object properties: elements: type: array - description: List of the elements representing the critical path service duration breakdown - contains the first few services with the longest overall duration of the spans contributing to the critical path. + description: List of elements representing the critical path service breakdown. items: - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' - otherServicesDuration: - type: integer - description: Overall processing time in nanoseconds consumed by the rest of the spans in the critical path (a sum of the duration times of the spans' critical path segments). - format: int64 - example: 12957153 + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementDetail' idleTime: type: integer description: Overall time in nanoseconds when no particular operation was in progress. format: int64 example: 60000000 - TracingValue: - required: - - type - properties: - type: - type: string - description: Type of the value model. - discriminator: - propertyName: type - CriticalPathServiceBreakdownElementBase: + TraceSpanDetail: required: - duration + - id + - operationName + - startedAt + - status type: object properties: - service: + id: type: string - description: The name of the service. - example: user-service - serviceColor: + description: Identifier of the span. + example: 00000000002317A9 + parentId: + type: string + description: Identifier of the parent span, if any. If the span has no parent it's considered a root span. + example: 000000000003C7BE + operationName: + type: string + description: The name of the operation given to the span. + example: retrieveAccount + resource: + type: string + description: The name of the resource attached to the span. + example: http.request + service: + type: string + description: The name of the service this span is part of. + example: user-service + serviceColor: type: string description: Color hex code assigned to the service. example: '#fa41c6' + serviceType: + $ref: '#/components/schemas/ServiceType' duration: type: integer - description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). + description: Number of nanoseconds the span lasted. format: int64 - example: 12957153 - TraceMetricsResponse: + example: 212957153 + startedAt: + type: string + description: Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2019-11-22T09:00:00.000Z' + status: + $ref: '#/components/schemas/TraceSpanStatus' + kind: + pattern: ^(CLIENT|SERVER|PRODUCER|CONSUMER|INTERNAL)$ + type: string + description: 'Span kind describes the relationship between the Span, its parents, and its children in a Trace. Possible values: `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER`, `INTERNAL`.' + example: SERVER + x-pattern-message: Should be either `CLIENT`, `SERVER`, `PRODUCER`, `CONSUMER` or `INTERNAL`. + remoteService: + type: string + description: Name of the possible remote span's service. + example: external-service + remoteServiceColor: + type: string + description: Color hex code assigned to the remote service. + example: '#fa41c6' + remoteServiceType: + $ref: '#/components/schemas/ServiceType' + info: + $ref: '#/components/schemas/TraceSpanInfo' + numberOfLinks: + type: integer + description: Number of span links in this span. + format: int32 + example: 2 + errorMessage: + type: string + description: Produced error message (could be a stack trace, database error code, ..) + example: | + Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space + at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17) + fields: + type: object + additionalProperties: + $ref: '#/components/schemas/TracingValue' + description: Fields attached to this span. + example: + component: + type: StringTracingValue + value: http + http.request.method: + type: StringTracingValue + value: GET + url.full: + type: StringTracingValue + value: https://example.com/v1/users/123 + http.response.status_code: + type: StringTracingValue + value: '200' + criticalPathContribution: + $ref: '#/components/schemas/TraceSpanCriticalPathContribution' + logs: + type: array + description: Logs attached to this span. + example: + - '[19/Dec/2019:10:58:21 +0000] ''GET /v1/users/123 HTTP/1.1'' 200 8215 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' + - '[19/Dec/2019:10:58:24 +0000] ''GET /logo.png HTTP/1.1'' 404 555 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' + items: + type: string + events: + type: array + description: Events attached to this span. + items: + $ref: '#/components/schemas/SpanEvent' + links: + type: array + description: List of casually related spans. + items: + $ref: '#/components/schemas/SpanLink' + TraceSpanBillingInfo: required: - - metrics + - billedBytes + - billedFormat type: object properties: - metrics: + billedBytes: + type: integer + description: Number of bytes that were charged for the span. + example: 529 + billedFormat: + type: string + description: Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. + example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;url.full=https://example.com/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.request.method=GET; + SpanQueryRequest: + required: + - queryRows + - timeRange + type: object + properties: + queryRows: type: array - description: List of trace metrics. + description: A list of span analytics queries. items: - $ref: '#/components/schemas/TraceMetricDetail' + $ref: '#/components/schemas/SpanQueryRow' + timeRange: + $ref: '#/components/schemas/ResolvableTimeRange' + timeZone: + type: string + description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). + example: America/Los_Angeles + default: UTC + SpanQueryResponse: + required: + - queryId + - queryRows + type: object + properties: + queryId: + type: string + description: Id of the created query + queryRows: + type: array + description: A list of row responses with details about individual queries. + items: + $ref: '#/components/schemas/SpanQueryRowResponse' + hasErrors: + type: boolean + description: Indicates whether there was an error while executing the query. + example: true + default: false + timeRange: + $ref: '#/components/schemas/BeginBoundedTimeRange' + SpanQueryStatusResponse: + required: + - queryRows + - status + type: object + properties: + queryRows: + type: array + description: A list of span analytics queries. + items: + $ref: '#/components/schemas/SpanQueryRowStatus' + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + SpanQueryResultSpansResponse: + required: + - spanPage + type: object + properties: + spanPage: + type: array + description: List of trace spans. + items: + $ref: '#/components/schemas/SpanQuerySpanData' + next: + type: string + description: Next continuation token. + example: Mi93V0ZqTTBzaW89 + SpanQueryResultFacetsResponse: + required: + - facets + type: object + properties: + facets: + type: array + description: List of facets. + items: + $ref: '#/components/schemas/SpanQueryRowFacet' + SpanQueryAggregateResponse: + required: + - result + type: object + properties: + result: + $ref: '#/components/schemas/SpanQueryAggregateResult' + SpanQueryFieldsResponse: + required: + - fields + type: object + properties: + fields: + type: array + description: List of span fields. + items: + $ref: '#/components/schemas/SpanQueryFieldDetail' + ServiceMapResponse: + required: + - edges + - nodes + type: object + properties: + nodes: + type: array + description: List of service map nodes. + items: + $ref: '#/components/schemas/ServiceMapNode' + edges: + type: array + description: List of service map edges. + items: + $ref: '#/components/schemas/ServiceMapEdge' + AsyncTraceQueryRow: + required: + - query + - rowId + type: object + properties: + query: + $ref: '#/components/schemas/TraceQueryExpression' + rowId: + maxLength: 16 + type: string + description: An identifier used to reference this particular row of the query request while fetching a query result. Within a query, row ids must have distinct values. + example: '#A' + orderBy: + $ref: '#/components/schemas/OrderBy' + ResolvableTimeRange: + required: + - type + type: object + properties: + type: + type: string + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' + discriminator: + propertyName: type + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + TraceQueryRowStatus: + required: + - count + - rowId + - status + type: object + properties: + rowId: + type: string + description: A unique identifier of the query. + example: A + status: + pattern: ^(Processing|Finished|Error|Canceled)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Canceled`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Canceled`. + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + count: + minimum: 0 + type: integer + description: Number of results matching the query + format: int64 + example: 3215 TraceMetricDetail: required: - metric @@ -1161,16 +1423,6 @@ components: type: string description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`.' example: IntegerTracingValue - TraceFieldsResponse: - required: - - fields - type: object - properties: - fields: - type: array - description: List of filter fields. - items: - $ref: '#/components/schemas/TraceFieldDetail' TraceFieldDetail: required: - field @@ -1183,12 +1435,12 @@ components: description: Filter field name. example: operation fieldType: - pattern: ^(TraceField|SpanEventField)$ + pattern: ^(SpanAttribute|SpanEventAttribute)$ type: string - description: 'Indicates the kind of a field. Possible values: `TraceField`, `SpanEventField`.' - example: SpanEventField - default: TraceField - x-pattern-message: 'Should be one of: `TraceField`, `SpanEventField`.' + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' valueListing: type: boolean description: Indicates whether values for this field can be listed. @@ -1203,75 +1455,55 @@ components: example: StringTracingValue noValuesReason: $ref: '#/components/schemas/NoTraceFieldValuesReason' - NoTraceFieldValuesReason: + TraceSpanStatus: required: - code - - message type: object properties: code: - pattern: ^(HighCardinalityField|AutocompleteDisabled)$ type: string - description: 'A code uniquely identifying the reason for the lack of trace field values. Possible values: `HighCardinalityField`, `AutocompleteDisabled`.' - example: HighCardinalityField - x-pattern-message: Should be either `HighCardinalityField`, `AutocompleteDisabled`. + description: 'Status code of the span. Possible values: `OK`, `ERROR`, `UNKNOWN`.' + example: OK message: type: string - description: A short English-language description of the reason. - example: Autocomplete has been disabled for this field due to high cardinality. - TraceFieldValuesResponse: + description: Optional descriptive message about the status, could be an http status code or the kind of an error, e.g. OSError. + example: '404' + DoubleTracingValue: required: - - fieldValues - - totalCount - type: object + - type + - value properties: - fieldValues: - type: array - description: List of filter field values. - items: - type: string - totalCount: - type: integer - description: Total number of values for a field matching the query. Can be approximated when it's above 3000. - format: int64 - example: 1234 - next: + type: type: string - description: Next continuation token. - example: Mi93V0ZqTTBzaW89 - TraceExistsResponse: - required: - - exists + description: Type of the value model. + value: + type: number + format: double + discriminator: + propertyName: type type: object - properties: - exists: - type: boolean - description: Indicates whether the trace with the given trace id exists. - example: true - url: - type: string - description: A path to the trace view page in Sumo Logic UI. - example: '#/trace/00000000000120CB' - TraceSpansResponse: + CriticalPathServiceBreakdownSummary: required: - - spans - - totalCount + - elements + - idleTime + - otherServicesDuration type: object properties: - spanPage: + elements: type: array - description: List of trace spans. + description: List of the elements representing the critical path service duration breakdown - contains the first few services with the longest overall duration of the spans contributing to the critical path. items: - $ref: '#/components/schemas/TraceSpan' - totalCount: + $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' + otherServicesDuration: type: integer - description: Total count of spans for this trace. + description: Overall processing time in nanoseconds consumed by the rest of the spans in the critical path (a sum of the duration times of the spans' critical path segments). format: int64 - example: 1234 - next: - type: string - description: Next continuation token. - example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI + example: 12957153 + idleTime: + type: integer + description: Overall time in nanoseconds when no particular operation was in progress. + format: int64 + example: 60000000 TraceSpan: required: - duration @@ -1316,7 +1548,7 @@ components: type: string description: Date and time the span was started in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2019-11-22T09:00:00Z' + example: '2019-11-22T09:00:00.000Z' status: $ref: '#/components/schemas/TraceSpanStatus' kind: @@ -1342,37 +1574,6 @@ components: description: Number of span links in this span. format: int32 example: 2 - ServiceType: - pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB)$ - type: string - description: Defines type of service. - example: HTTP - x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached` or `CockroachDB` - TraceSpanInfo: - required: - - type - type: object - properties: - type: - type: string - description: 'Type of this span. Possible values: `TraceHttpSpanInfo`, `TraceDbSpanInfo`, `TraceMessageBusSpanInfo`.' - example: TraceHttpSpanInfo - discriminator: - propertyName: type - TraceLightEventsResponse: - type: object - properties: - spanEvents: - type: object - additionalProperties: - type: array - items: - $ref: '#/components/schemas/LightSpanEvent' - description: Map of span ids to lists of their events, without their attributes. - next: - type: string - description: Next continuation token. - example: dlFXd0lhSkxzRjAwYnpVZkMrRmlhYnF4cGtNMWdnVEI LightSpanEvent: required: - name @@ -1383,26 +1584,12 @@ components: type: string description: Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2021-04-19T17:36:57.47623Z' + example: '2021-04-19T17:36:57.476Z' name: type: string description: Name of the event. example: domContentLoadedEventStart description: Light version of Span Event, without the attributes. - CriticalPathResponse: - required: - - segments - type: object - properties: - segments: - type: array - description: List of span segments from the critical path. - items: - $ref: '#/components/schemas/SpanPathSegment' - next: - type: string - description: Next continuation token. - example: Mi93V0ZqTTBzaW89 SpanPathSegment: required: - duration @@ -1438,89 +1625,46 @@ components: description: The fraction (value between 0.0 and 1.0) from the trace duration time this segment took. format: double example: 0.4 - CriticalPathServiceBreakdownResponse: + CriticalPathServiceBreakdownElementDetail: required: - - elements - - idleTime + - duration + - longestSegmentDuration + - numSpans type: object properties: - elements: - type: array - description: List of elements representing the critical path service breakdown. - items: - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementDetail' - idleTime: + service: + type: string + description: The name of the service. + example: user-service + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: type: integer - description: Overall time in nanoseconds when no particular operation was in progress. + description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). format: int64 - example: 60000000 - CriticalPathServiceBreakdownElementDetail: - allOf: - - $ref: '#/components/schemas/CriticalPathServiceBreakdownElementBase' - - required: - - longestSegmentDuration - - numSpans - type: object - properties: - numSpans: - type: integer - description: Number of spans that are part of this service. - format: int32 - example: 12957153 - longestSegmentDuration: - type: integer - description: Number of nanoseconds the longest span segment in the critical path lasted. - format: int64 - example: 12957153 - TraceSpanDetail: - allOf: - - $ref: '#/components/schemas/TraceSpan' - - type: object - properties: - errorMessage: - type: string - description: Produced error message (could be a stack trace, database error code, ..) - example: | - Exception in thread "local[9]" java.lang.OutOfMemoryError: Java heap space - at my.app.force.fields.SpaceShipForceField.main(SpaceShipForceField.java:17) - fields: - type: object - additionalProperties: - $ref: '#/components/schemas/TracingValue' - description: Fields attached to this span. - example: - component: - type: StringTracingValue - value: http - http.method: - type: StringTracingValue - value: GET - http.url: - type: StringTracingValue - value: /v1/users/123 - http.status_code: - type: StringTracingValue - value: '200' - criticalPathContribution: - $ref: '#/components/schemas/TraceSpanCriticalPathContribution' - logs: - type: array - description: Logs attached to this span. - example: - - '[19/Dec/2019:10:58:21 +0000] ''GET /v1/users/123 HTTP/1.1'' 200 8215 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' - - '[19/Dec/2019:10:58:24 +0000] ''GET /logo.png HTTP/1.1'' 404 555 ''http://111.111.11.1/'' ''Mozilla/5.0 (Macintosh; Intel Mac OS X 11_11_1) AppleWebKit/111.11 (KHTML, like Gecko) Chrome/11.1.1111.11 Safari/111.11''' - items: - type: string - events: - type: array - description: Events attached to this span. - items: - $ref: '#/components/schemas/SpanEvent' - links: - type: array - description: List of casually related spans. - items: - $ref: '#/components/schemas/SpanLink' + example: 12957153 + numSpans: + type: integer + description: Number of spans that are part of this service. + format: int32 + example: 12957153 + longestSegmentDuration: + type: integer + description: Number of nanoseconds the longest span segment in the critical path lasted. + format: int64 + example: 12957153 + TracingValue: + required: + - type + properties: + type: + type: string + description: Type of the value model. + discriminator: + propertyName: type + type: object TraceSpanCriticalPathContribution: required: - duration @@ -1538,104 +1682,41 @@ components: format: double example: 0.4 SpanEvent: - description: Span event containing all information (in particular attributes). - allOf: - - $ref: '#/components/schemas/LightSpanEvent' - - type: object - properties: - attributes: - type: array - description: Span event attributes. - items: - $ref: '#/components/schemas/SpanEventAttribute' - SpanLink: - required: - - spanId - - traceId - type: object - properties: - traceId: - type: string - description: Trace identifier of the linked span. - example: 00000000002317A9 - spanId: - type: string - description: Span identifier of the linked span. - example: 000000000003C7BE - description: Details of the linked span. - SpanEventAttribute: - type: object - properties: - attributeName: - type: string - description: Name of the attribute. - example: message_details - attributeValue: - $ref: '#/components/schemas/EventAttributeValue' - EventAttributeValue: - required: - - type - properties: - type: - pattern: ^(BooleanEventAttributeValue|StringEventAttributeValue|DoubleEventAttributeValue|IntegerEventAttributeValue|BooleanArrayEventAttributeValue|StringArrayEventAttributeValue|DoubleArrayEventAttributeValue|IntegerArrayEventAttributeValue)$ - type: string - description: Type of the event attribute value. - example: BooleanAttributeValue - discriminator: - propertyName: type - TraceSpanBillingInfo: - required: - - billedBytes - - billedFormat - type: object - properties: - billedBytes: - type: integer - description: Number of bytes that were charged for the span. - example: 502 - billedFormat: - type: string - description: Billing format of the span. Number of bytes of this representation of the span is equal to `billedBytes`. - example: traceId=2ff9c457b1aa00f4;spanId=97872e33215c4275;parentSpanId=98bcdfc5da874c40;operation=spanId-97872e33215c4275;startTimestamp=1603283111874000000;endTimestamp=1603283112268000000;service=ServiceA;status.code=ERROR;status.message=ERROR;kind=SERVER;custom-tag-2=value2;_sourcehost=127.0.0.1;http.url=/api/operation-x;message=Some error message;_sourcecategory=Http Input;custom-tag-1=value1;error=true;_sourcename=Http Input;error.kind=InvalidInput;_collector=trace-generator-collector;http.method=GET; - SpanQueryRequest: - required: - - queryRows - - timeRange - type: object - properties: - queryRows: - type: array - description: A list of span analytics queries. - items: - $ref: '#/components/schemas/SpanQueryRow' - timeRange: - $ref: '#/components/schemas/ResolvableTimeRange' - timeZone: - type: string - description: Time zone for the query time ranges. Follow the format in the [IANA Time Zone Database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). - example: America/Los_Angeles - default: UTC - SpanQueryResponse: + description: Span event containing all information (in particular attributes). required: - - queryId - - queryRows + - name + - timestamp type: object properties: - queryId: + timestamp: type: string - description: Id of the created query - queryRows: + description: Time when an event happened in the [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2021-04-19T17:36:57.476Z' + name: + type: string + description: Name of the event. + example: domContentLoadedEventStart + attributes: type: array - description: A list of row responses with details about individual queries. + description: Span event attributes. items: - $ref: '#/components/schemas/SpanQueryRowResponse' - hasErrors: - type: boolean - description: Indicates whether there was an error while executing the query. - example: true - default: false - timeRange: - $ref: '#/components/schemas/BeginBoundedTimeRange' + $ref: '#/components/schemas/SpanEventAttribute' + SpanLink: + required: + - spanId + - traceId + type: object + properties: + traceId: + type: string + description: Trace identifier of the linked span. + example: 00000000002317A9 + spanId: + type: string + description: Span identifier of the linked span. + example: 000000000003C7BE + description: Details of the linked span. SpanQueryRow: required: - queryString @@ -1675,62 +1756,25 @@ components: description: The executed query after rewriting example: _index=_trace_spans traceId=00000000002317A9 BeginBoundedTimeRange: - allOf: - - $ref: '#/components/schemas/ResolvableTimeRange' - - required: - - from - type: object - properties: - from: - $ref: '#/components/schemas/TimeRangeBoundary' - to: - $ref: '#/components/schemas/TimeRangeBoundary' - SpanQueryRowError: - required: - - code - - message - type: object - properties: - code: - type: string - description: The error code. - example: spanquery:query_validation_error - message: - type: string - description: Short description of the occured error. - example: Query A was invalid - details: - type: string - description: Details about the occured error. - example: '[1.78] failure: ''('' expected but '')'' found.' - TimeRangeBoundary: required: - type + - from type: object properties: type: type: string - description: 'Type of the time range boundary. Value must be from list: - `RelativeTimeRangeBoundary`, - `EpochTimeRangeBoundary`, - `Iso8601TimeRangeBoundary`, - `LiteralTimeRangeBoundary`.' - example: RelativeTimeRangeBoundary + description: Type of the time range. Value must be either `CompleteLiteralTimeRange` or `BeginBoundedTimeRange`. + from: + $ref: '#/components/schemas/TimeRangeBoundary' + to: + $ref: '#/components/schemas/TimeRangeBoundary' + example: + type: BeginBoundedTimeRange + from: + type: RelativeTimeRangeBoundary + relativeTime: '-15m' discriminator: propertyName: type - SpanQueryStatusResponse: - required: - - queryRows - - status - type: object - properties: - queryRows: - type: array - description: A list of span analytics queries. - items: - $ref: '#/components/schemas/SpanQueryRowStatus' - status: - pattern: ^(Processing|Finished|Error|Paused)$ - type: string - description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`' - example: Processing - x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. SpanQueryRowStatus: required: - count @@ -1766,20 +1810,6 @@ components: type: boolean description: Indicates whether facets calculation has completed. example: false - SpanQueryResultSpansResponse: - required: - - spanPage - type: object - properties: - spanPage: - type: array - description: List of trace spans. - items: - $ref: '#/components/schemas/SpanQuerySpanData' - next: - type: string - description: Next continuation token. - example: Mi93V0ZqTTBzaW89 SpanQuerySpanData: required: - duration @@ -1819,7 +1849,7 @@ components: type: string description: Date and time the span was started in [ISO 8601 / RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2019-11-22T09:00:00Z' + example: '2019-11-22T09:00:00.000Z' status: $ref: '#/components/schemas/TraceSpanStatus' kind: @@ -1834,87 +1864,275 @@ components: example: |- { "http.host":"http://example.com", - "http.method":"GET" + "http.request.method":"GET" } metadata: + maxProperties: 1000 type: object additionalProperties: type: string description: Metadata attached to the span. example: _sourceCategory: account-backend - SpanQueryResultFacetsResponse: + SpanQueryRowFacet: + required: + - cardinality + - dataType + - name + type: object + properties: + name: + type: string + description: Name of the field facet. + example: _sourceHost + cardinality: + type: integer + description: The number of unique values this field occured. + format: int32 + example: 3 + dataType: + pattern: ^(String|Int|Long|Double|Boolean)$ + type: string + description: Data type of the field. + example: String + x-pattern-message: Should be either `String`, `Int`, `Long`, `Double` or `Boolean`. + inSchema: + type: boolean + description: Indicates whether the field is available in the span schema. + example: false + valueFrequency: + maxProperties: 1000 + type: object + additionalProperties: + type: integer + format: int64 + description: Map of field value frequencies. + example: + _sourceHost: 34099 + SpanQueryAggregateResult: + required: + - series + - status + type: object + properties: + status: + pattern: ^(Processing|Finished|Error|Paused)$ + type: string + description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`.' + example: Processing + x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. + statusMessage: + type: string + description: Descriptive message of the status + example: Finished successfully + series: + type: array + description: The series returned from a search. + items: + $ref: '#/components/schemas/SpanQueryAggregateDataSeries' + SpanQueryFieldDetail: + required: + - field + - fieldType + - type + - inSchema + type: object + properties: + field: + type: string + description: Filter field name. + example: operation + fieldType: + pattern: ^(SpanAttribute|SpanEventAttribute)$ + type: string + description: 'Indicates the kind of a field. Possible values: `SpanAttribute`, `SpanEventAttribute`.' + example: SpanEventAttribute + default: SpanAttribute + x-pattern-message: 'Should be one of: `SpanAttribute`, `SpanEventAttribute`.' + valueListing: + type: boolean + description: Indicates whether values for this field can be listed. + example: false + description: + type: string + description: Short description of the field. + example: A piece of the workflow represented by a span + type: + type: string + description: 'The type the values of this field will have. Possible values: `DoubleTracingValue`, `IntegerTracingValue`, `StringTracingValue`, `DateTimeTracingValue`.' + example: StringTracingValue + noValuesReason: + $ref: '#/components/schemas/NoTraceFieldValuesReason' + inSchema: + type: boolean + description: Indicates whether the field is available in the schema. + example: false + ServiceMapNode: + required: + - isRemote + - lastSeenAt + - serviceName + - serviceType + type: object + properties: + serviceName: + type: string + description: Name of a service in a service map. + example: service_name_1 + serviceColor: + type: string + description: Color hex code assigned to the service. + example: '#fa41c6' + lastSeenAt: + type: string + description: The last time in UTC a service has been seen. Formatted as defined by date-time - RFC3339. + format: date-time + example: '2019-11-22T09:00:00.000Z' + isRemote: + type: boolean + description: Indicates whether node comes from inferred remote service or instrumented one. + example: true + serviceType: + $ref: '#/components/schemas/ServiceType' + ServiceMapEdge: + required: + - lastSeenAt + - source + - target + type: object + properties: + source: + type: string + description: Name of a source service. Edge is directed from source to target. + example: service_name_1 + target: + type: string + description: Name of a target service. Edge is directed from source to target. + example: service_name_2 + lastSeenAt: + type: string + description: The last time in UTC an edge has been seen. Formatted as defined by date-time - RFC3339. + format: date-time + example: '2019-11-22T09:00:00.000Z' + TraceQueryExpression: + required: + - type + type: object + properties: + type: + type: string + description: Expression type of the object model. + description: Base query expression object. + discriminator: + propertyName: type + OrderBy: + required: + - fieldName + - order + type: object + properties: + fieldName: + maxLength: 32 + minLength: 1 + type: string + description: 'Field based on which results should be sorted. When not provided, the default behavior is to sort by timestamp descending. Sortable fields values: `trace_id`, `start_timestamp`, `duration`, `spans_number`, `errors`, `status_code`.' + example: start_timestamp + order: + pattern: ^(Asc|Desc)$ + type: string + description: Type of sorting values - descending or ascending. + example: Asc + default: Desc + x-pattern-message: should be either 'Asc' or 'Desc' + NoTraceFieldValuesReason: required: - - facets + - code + - message type: object properties: - facets: - type: array - description: List of facets. - items: - $ref: '#/components/schemas/SpanQueryRowFacet' - SpanQueryRowFacet: + code: + pattern: ^(HighCardinalityField|AutocompleteDisabled)$ + type: string + description: 'A code uniquely identifying the reason for the lack of trace field values. Possible values: `HighCardinalityField`, `AutocompleteDisabled`.' + example: HighCardinalityField + x-pattern-message: Should be either `HighCardinalityField`, `AutocompleteDisabled`. + message: + type: string + description: A short English-language description of the reason. + example: Autocomplete has been disabled for this field due to high cardinality. + CriticalPathServiceBreakdownElementBase: required: - - cardinality - - dataType - - name + - duration type: object properties: - name: + service: type: string - description: Name of the field facet. - example: _sourceHost - cardinality: - type: integer - description: The number of unique values this field occured. - format: int32 - example: 3 - dataType: - pattern: ^(String|Int|Long|Double|Boolean)$ + description: The name of the service. + example: user-service + serviceColor: type: string - description: Data type of the field. - example: String - x-pattern-message: Should be either `String`, `Int`, `Long`, `Double` or `Boolean`. - inSchema: - type: boolean - description: Indicates whether the field is available in the span schema. - example: false - valueFrequency: - type: object - additionalProperties: - type: integer - format: int64 - description: Map of field value frequencies. - example: - _sourceHost: 34099 - SpanQueryAggregateResponse: + description: Color hex code assigned to the service. + example: '#fa41c6' + duration: + type: integer + description: Overall processing time in nanoseconds consumed by the spans belonging to this service in the critical path (a sum of the duration times of the spans' critical path segments). + format: int64 + example: 12957153 + ServiceType: + pattern: ^(Db|HTTP|MQ|Web|Mixed|Unknown|Cpp|DotNET|Erlang|Go|Java|NodeJS|Php|Python|Ruby|WebJS|Swift|MSSQL|MySQL|Oracle|Db2|PostgreSQL|Redshift|Hive|Cloudscape|HSQLDB|Progress|MaxDB|HANADB|Ingres|FirstSQL|EnterpriseDB|Cache|Adabas|Firebird|ApacheDerby|FileMaker|Informix|InstantDB|InterBase|MariaDB|Netezza|PervasivePSQL|PointBase|SQLite|Sybase|Teradata|Vertica|H2|ColdFusion|Cassandra|HBase|MongoDB|Redis|Couchbase|CouchDB|CosmosDB|DynamoDB|Neo4j|Geode|Elasticsearch|Memcached|CockroachDB|RPC|gRPC|JavaRMI|DotNETWCF|ApacheDubbo)$ + type: string + description: Defines type of service. + example: HTTP + x-pattern-message: Should be either `Db`, `HTTP`, `MQ`, `Web`, `Mixed`, `Unknown`, `Cpp`, `DotNET`, `Erlang`, `Go`, `Java`, `NodeJS`, `Php`, `Python`, `Ruby`, `WebJS`, `Swift`, `MSSQL`, `MySQL`, `Oracle`, `Db2`, `PostgreSQL`, `Redshift`, `Hive`, `Cloudscape`, `HSQLDB`, `Progress`, `MaxDB`, `HANADB`, `Ingres`, `FirstSQL`, `EnterpriseDB`, `Cache`, `Adabas`, `Firebird`, `ApacheDerby`, `FileMaker`, `Informix`, `InstantDB`, `InterBase`, `MariaDB`, `Netezza`, `PervasivePSQL`, `PointBase`, `SQLite`, `Sybase`, `Teradata`, `Vertica`, `H2`, `ColdFusion`, `Cassandra`, `HBase`, `MongoDB`, `Redis`, `Couchbase`, `CouchDB`, `CosmosDB`, `DynamoDB`, `Neo4j`, `Geode`, `Elasticsearch`, `Memcached`, `CockroachDB`, `RPC`, `gRPC`, `JavaRMI`, `DotNETWCF` or `ApacheDubbo` + TraceSpanInfo: required: - - result + - type type: object properties: - result: - $ref: '#/components/schemas/SpanQueryAggregateResult' - SpanQueryAggregateResult: + type: + type: string + description: 'Type of this span. Possible values: `TraceHttpSpanInfo`, `TraceDbSpanInfo`, `TraceMessageBusSpanInfo`.' + example: TraceHttpSpanInfo + discriminator: + propertyName: type + SpanEventAttribute: + type: object + properties: + attributeName: + type: string + description: Name of the attribute. + example: message_details + attributeValue: + $ref: '#/components/schemas/EventAttributeValue' + SpanQueryRowError: required: - - series - - status + - code + - message type: object properties: - status: - pattern: ^(Processing|Finished|Error|Paused)$ + code: type: string - description: 'Status of the query. Possible values: `Processing`, `Finished`, `Error`, `Paused`.' - example: Processing - x-pattern-message: Should be either `Processing`, `Finished`, `Error`, `Paused`. - statusMessage: + description: The error code. + example: spanquery:query_validation_error + message: type: string - description: Descriptive message of the status - example: Finished successfully - series: - type: array - description: The series returned from a search. - items: - $ref: '#/components/schemas/SpanQueryAggregateDataSeries' + description: Short description of the occured error. + example: Query A was invalid + details: + type: string + description: Details about the occured error. + example: '[1.78] failure: ''('' expected but '')'' found.' + TimeRangeBoundary: + required: + - type + type: object + properties: + type: + type: string + description: 'Type of the time range boundary. Value must be from list: - `RelativeTimeRangeBoundary`, - `EpochTimeRangeBoundary`, - `Iso8601TimeRangeBoundary`, - `LiteralTimeRangeBoundary`.' + example: RelativeTimeRangeBoundary + discriminator: + propertyName: type SpanQueryAggregateDataSeries: required: - dataPoints @@ -1963,6 +2181,18 @@ components: description: Type of the values in the series. example: DOUBLE x-pattern-message: Should be either `STRING`, `DOUBLE`. + EventAttributeValue: + required: + - type + properties: + type: + pattern: ^(BooleanEventAttributeValue|StringEventAttributeValue|DoubleEventAttributeValue|IntegerEventAttributeValue|BooleanArrayEventAttributeValue|StringArrayEventAttributeValue|DoubleArrayEventAttributeValue|IntegerArrayEventAttributeValue)$ + type: string + description: Type of the event attribute value. + example: BooleanAttributeValue + discriminator: + propertyName: type + type: object SpanQueryAggregatePointData: required: - 'y' @@ -1978,6 +2208,7 @@ components: description: Value that represents a point on the y axis. example: '12.3' xAxisValues: + maxProperties: 1000 type: object additionalProperties: type: string @@ -2031,6 +2262,7 @@ components: type: object properties: data: + maxProperties: 1000 type: object additionalProperties: type: string @@ -2040,838 +2272,488 @@ components: cluster: frontend instance: frontend-12 default: {} - SpanQueryFieldsResponse: - required: - - fields - type: object - properties: - fields: - type: array - description: List of span fields. - items: - $ref: '#/components/schemas/SpanQueryFieldDetail' - SpanQueryFieldDetail: - allOf: - - $ref: '#/components/schemas/TraceFieldDetail' - - required: - - inSchema - type: object - properties: - inSchema: - type: boolean - description: Indicates whether the field is available in the schema. - example: false - ServiceMapResponse: - required: - - edges - - nodes - type: object - properties: - nodes: - type: array - description: List of service map nodes. - items: - $ref: '#/components/schemas/ServiceMapNode' - edges: - type: array - description: List of service map edges. - items: - $ref: '#/components/schemas/ServiceMapEdge' - ServiceMapNode: - required: - - isRemote - - lastSeenAt - - serviceName - - serviceType - type: object - properties: - serviceName: - type: string - description: Name of a service in a service map. - example: service_name_1 - serviceColor: - type: string - description: Color hex code assigned to the service. - example: '#fa41c6' - lastSeenAt: - type: string - description: The last time in UTC a service has been seen. Formatted as defined by date-time - RFC3339. - format: date-time - example: '2019-11-22T09:00:00Z' - isRemote: - type: boolean - description: Indicates whether node comes from inferred remote service or instrumented one. - example: true - serviceType: - $ref: '#/components/schemas/ServiceType' - ServiceMapEdge: - required: - - lastSeenAt - - source - - target - type: object - properties: - source: - type: string - description: Name of a source service. Edge is directed from source to target. - example: service_name_1 - target: - type: string - description: Name of a target service. Edge is directed from source to target. - example: service_name_2 - lastSeenAt: - type: string - description: The last time in UTC an edge has been seen. Formatted as defined by date-time - RFC3339. - format: date-time - example: '2019-11-22T09:00:00Z' - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: - tracequery: - id: sumologic.tracing.tracequery - name: tracequery - title: Tracequery + trace_queries: + id: sumologic.tracing.trace_queries + name: trace_queries + title: Trace Queries methods: - createTraceQuery: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tracing~1tracequery/post' response: mediaType: application/json openAPIDocKey: '200' - cancelTraceQuery: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1{queryId}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/tracequery/methods/createTraceQuery' - update: [] - delete: [] - tracequery_status: - id: sumologic.tracing.tracequery_status - name: tracequery_status - title: Tracequery_status - methods: - getTraceQueryStatus: + openAPIDocKey: '204' + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1{queryId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_status/methods/getTraceQueryStatus' - insert: [] + - $ref: '#/components/x-stackQL-resources/trace_queries/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/trace_queries/methods/create' update: [] - delete: [] - tracequery_rows_traces: - id: sumologic.tracing.tracequery_rows_traces - name: tracequery_rows_traces - title: Tracequery_rows_traces + delete: + - $ref: '#/components/x-stackQL-resources/trace_queries/methods/delete' + replace: [] + trace_query_results: + id: sumologic.tracing.trace_query_results + name: trace_query_results + title: Trace Query Results methods: - getTraceQueryResult: + list: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1{queryId}~1rows~1{rowId}~1traces/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.results + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_rows_traces/methods/getTraceQueryResult' + - $ref: '#/components/x-stackQL-resources/trace_query_results/methods/list' insert: [] update: [] delete: [] + replace: [] metrics: id: sumologic.tracing.metrics name: metrics title: Metrics methods: - getMetrics: + list: operation: $ref: '#/paths/~1v1~1tracing~1metrics/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.metrics + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/metrics/methods/getMetrics' + - $ref: '#/components/x-stackQL-resources/metrics/methods/list' insert: [] update: [] delete: [] - tracequery_fields: - id: sumologic.tracing.tracequery_fields - name: tracequery_fields - title: Tracequery_fields + replace: [] + trace_query_fields: + id: sumologic.tracing.trace_query_fields + name: trace_query_fields + title: Trace Query Fields methods: - getTraceQueryFields: + list: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1fields/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fields + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_fields/methods/getTraceQueryFields' + - $ref: '#/components/x-stackQL-resources/trace_query_fields/methods/list' insert: [] update: [] delete: [] - tracequery_fields_values: - id: sumologic.tracing.tracequery_fields_values - name: tracequery_fields_values - title: Tracequery_fields_values + replace: [] + trace_query_field_values: + id: sumologic.tracing.trace_query_field_values + name: trace_query_field_values + title: Trace Query Field Values methods: - getTraceQueryFieldValues: + list: operation: $ref: '#/paths/~1v1~1tracing~1tracequery~1fields~1{field}~1values/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fieldValues + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/tracequery_fields_values/methods/getTraceQueryFieldValues' + - $ref: '#/components/x-stackQL-resources/trace_query_field_values/methods/list' insert: [] update: [] delete: [] + replace: [] traces: id: sumologic.tracing.traces name: traces title: Traces methods: - getTrace: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces/methods/getTrace' + - $ref: '#/components/x-stackQL-resources/traces/methods/get' insert: [] update: [] delete: [] - traces_exists: - id: sumologic.tracing.traces_exists - name: traces_exists - title: Traces_exists + replace: [] + trace_existence: + id: sumologic.tracing.trace_existence + name: trace_existence + title: Trace Existence methods: - traceExists: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1exists/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: - select: [] + select: + - $ref: '#/components/x-stackQL-resources/trace_existence/methods/get' insert: [] update: [] delete: [] - traces_spans: - id: sumologic.tracing.traces_spans - name: traces_spans - title: Traces_spans + replace: [] + spans: + id: sumologic.tracing.spans + name: spans + title: Spans methods: - getSpans: + list: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1spans/get' response: mediaType: application/json openAPIDocKey: '200' - getSpan: + objectKey: $.spanPage + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1spans~1{spanId}/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_spans/methods/getSpan' - - $ref: '#/components/x-stackQL-resources/traces_spans/methods/getSpans' + - $ref: '#/components/x-stackQL-resources/spans/methods/get' + - $ref: '#/components/x-stackQL-resources/spans/methods/list' insert: [] update: [] delete: [] - traces_trace_events: - id: sumologic.tracing.traces_trace_events - name: traces_trace_events - title: Traces_trace_events + replace: [] + trace_events: + id: sumologic.tracing.trace_events + name: trace_events + title: Trace Events methods: - getTraceLightEvents: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1traceEvents/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_trace_events/methods/getTraceLightEvents' + - $ref: '#/components/x-stackQL-resources/trace_events/methods/get' insert: [] update: [] delete: [] - traces_critical_path: - id: sumologic.tracing.traces_critical_path - name: traces_critical_path - title: Traces_critical_path + replace: [] + critical_paths: + id: sumologic.tracing.critical_paths + name: critical_paths + title: Critical Paths methods: - getCriticalPath: + list: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1criticalPath/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.segments + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_critical_path/methods/getCriticalPath' + - $ref: '#/components/x-stackQL-resources/critical_paths/methods/list' insert: [] update: [] delete: [] - traces_critical_path_breakdown_service: - id: sumologic.tracing.traces_critical_path_breakdown_service - name: traces_critical_path_breakdown_service - title: Traces_critical_path_breakdown_service + replace: [] + critical_path_service_breakdowns: + id: sumologic.tracing.critical_path_service_breakdowns + name: critical_path_service_breakdowns + title: Critical Path Service Breakdowns methods: - getCriticalPathServiceBreakdown: + list: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1criticalPath~1breakdown~1service/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.elements + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_critical_path_breakdown_service/methods/getCriticalPathServiceBreakdown' + - $ref: '#/components/x-stackQL-resources/critical_path_service_breakdowns/methods/list' insert: [] update: [] delete: [] - traces_spans_billing_info: - id: sumologic.tracing.traces_spans_billing_info - name: traces_spans_billing_info - title: Traces_spans_billing_info + replace: [] + span_billing_info: + id: sumologic.tracing.span_billing_info + name: span_billing_info + title: Span Billing Info methods: - getSpanBillingInfo: + get: operation: $ref: '#/paths/~1v1~1tracing~1traces~1{traceId}~1spans~1{spanId}~1billingInfo/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/traces_spans_billing_info/methods/getSpanBillingInfo' + - $ref: '#/components/x-stackQL-resources/span_billing_info/methods/get' insert: [] update: [] delete: [] - spanquery: - id: sumologic.tracing.spanquery - name: spanquery - title: Spanquery + replace: [] + span_queries: + id: sumologic.tracing.span_queries + name: span_queries + title: Span Queries methods: - createSpanQuery: + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1tracing~1spanquery/post' response: mediaType: application/json openAPIDocKey: '200' - cancelSpanQuery: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: '#/components/x-stackQL-resources/spanquery/methods/createSpanQuery' - update: [] - delete: [] - spanquery_status: - id: sumologic.tracing.spanquery_status - name: spanquery_status - title: Spanquery_status - methods: - getSpanQueryStatus: + openAPIDocKey: '204' + request: + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1status/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/spanquery_status/methods/getSpanQueryStatus' - insert: [] - update: [] - delete: [] - spanquery_pause: - id: sumologic.tracing.spanquery_pause - name: spanquery_pause - title: Spanquery_pause - methods: - pauseSpanQuery: + request: + nativeCasing: camel + pause: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1pause/put' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - spanquery_resume: - id: sumologic.tracing.spanquery_resume - name: spanquery_resume - title: Spanquery_resume - methods: - resumeSpanQuery: + openAPIDocKey: '204' + resume: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1resume/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] + select: + - $ref: '#/components/x-stackQL-resources/span_queries/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/span_queries/methods/create' update: [] - delete: [] - spanquery_rows_spans: - id: sumologic.tracing.spanquery_rows_spans - name: spanquery_rows_spans - title: Spanquery_rows_spans + delete: + - $ref: '#/components/x-stackQL-resources/span_queries/methods/delete' + replace: [] + span_query_results: + id: sumologic.tracing.span_query_results + name: span_query_results + title: Span Query Results methods: - getSpanQueryResult: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1rows~1{rowId}~1spans/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.spanPage + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_rows_spans/methods/getSpanQueryResult' + - $ref: '#/components/x-stackQL-resources/span_query_results/methods/list' insert: [] update: [] delete: [] - spanquery_rows_facets: - id: sumologic.tracing.spanquery_rows_facets - name: spanquery_rows_facets - title: Spanquery_rows_facets + replace: [] + span_query_facets: + id: sumologic.tracing.span_query_facets + name: span_query_facets + title: Span Query Facets methods: - getSpanQueryFacets: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1rows~1{rowId}~1facets/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.facets + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_rows_facets/methods/getSpanQueryFacets' + - $ref: '#/components/x-stackQL-resources/span_query_facets/methods/list' insert: [] update: [] delete: [] - spanquery_aggregates: - id: sumologic.tracing.spanquery_aggregates - name: spanquery_aggregates - title: Spanquery_aggregates + replace: [] + span_query_aggregates: + id: sumologic.tracing.span_query_aggregates + name: span_query_aggregates + title: Span Query Aggregates methods: - getSpanQueryAggregates: + get: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1{queryId}~1aggregates/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_aggregates/methods/getSpanQueryAggregates' + - $ref: '#/components/x-stackQL-resources/span_query_aggregates/methods/get' insert: [] update: [] delete: [] - spanquery_fields: - id: sumologic.tracing.spanquery_fields - name: spanquery_fields - title: Spanquery_fields + replace: [] + span_query_fields: + id: sumologic.tracing.span_query_fields + name: span_query_fields + title: Span Query Fields methods: - getSpanQueryFields: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1fields/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fields + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_fields/methods/getSpanQueryFields' + - $ref: '#/components/x-stackQL-resources/span_query_fields/methods/list' insert: [] update: [] delete: [] - spanquery_fields_values: - id: sumologic.tracing.spanquery_fields_values - name: spanquery_fields_values - title: Spanquery_fields_values + replace: [] + span_query_field_values: + id: sumologic.tracing.span_query_field_values + name: span_query_field_values + title: Span Query Field Values methods: - getSpanQueryFieldValues: + list: operation: $ref: '#/paths/~1v1~1tracing~1spanquery~1fields~1{field}~1values/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.fieldValues + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/spanquery_fields_values/methods/getSpanQueryFieldValues' + - $ref: '#/components/x-stackQL-resources/span_query_field_values/methods/list' insert: [] update: [] delete: [] + replace: [] service_map: id: sumologic.tracing.service_map name: service_map - title: Service_map + title: Service Map methods: - getServiceMap: + get: operation: $ref: '#/paths/~1v1~1tracing~1serviceMap/get' response: mediaType: application/json openAPIDocKey: '200' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/service_map/methods/getServiceMap' + - $ref: '#/components/x-stackQL-resources/service_map/methods/get' insert: [] update: [] delete: [] -openapi: 3.0.0 + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - tracing - description: tracing - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/transformation_rules.yaml b/providers/src/sumologic/v00.00.00000/services/transformation_rules.yaml index 4c195cb0..f23de1bb 100644 --- a/providers/src/sumologic/v00.00.00000/services/transformation_rules.yaml +++ b/providers/src/sumologic/v00.00.00000/services/transformation_rules.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Transformation Rules API + description: Metrics transformation rules. + version: 1.0.0 paths: /v1/transformationRules: get: @@ -183,41 +188,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - TransformationRuleResponse: - description: A generic response for transformation rule. - allOf: - - $ref: '#/components/schemas/TransformationRuleRequest' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the transformation rule. - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 TransformationRuleRequest: required: - enabled @@ -231,19 +201,29 @@ components: description: True if the rule is enabled. example: true description: A request for creating or updating a transformation rule. - MetadataModel: + TransformationRuleResponse: + type: object + description: A generic response for transformation rule. required: + - enabled + - ruleDefinition - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + ruleDefinition: + $ref: '#/components/schemas/TransformationRuleDefinition' + enabled: + type: boolean + description: True if the rule is enabled. + example: true createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -252,11 +232,38 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the transformation rule. + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 TransformationRuleDefinition: required: - name @@ -298,6 +305,32 @@ components: example: 8 default: 400 description: The properties that define a transformation rule. + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 DimensionTransformation: required: - transformationType @@ -309,391 +342,97 @@ components: description: Base class of all transformation types. discriminator: propertyName: transformationType - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} x-stackQL-resources: transformation_rules: id: sumologic.transformation_rules.transformation_rules name: transformation_rules - title: Transformation_rules + title: Transformation Rules methods: - getTransformationRules: + list: operation: $ref: '#/paths/~1v1~1transformationRules/get' response: mediaType: application/json openAPIDocKey: '200' - createRule: + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1transformationRules/post' response: mediaType: application/json openAPIDocKey: '200' - getTransformationRule: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1transformationRules~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateTransformationRule: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1transformationRules~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteRule: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1transformationRules~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/getTransformationRule' - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/getTransformationRules' + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/get' + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/list' insert: - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/createRule' - update: [] + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/update' delete: - - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/deleteRule' -openapi: 3.0.0 + - $ref: '#/components/x-stackQL-resources/transformation_rules/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - transformation_rules - description: transformationRules - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/sumologic/v00.00.00000/services/users.yaml b/providers/src/sumologic/v00.00.00000/services/users.yaml index 4307dc0a..a5fb6799 100644 --- a/providers/src/sumologic/v00.00.00000/services/users.yaml +++ b/providers/src/sumologic/v00.00.00000/services/users.yaml @@ -1,3 +1,8 @@ +openapi: 3.0.0 +info: + title: Sumo Logic Users API + description: Users and their lifecycle actions - unlock, password reset, email change, welcome email, MFA. + version: 1.0.0 paths: /v1/users: get: @@ -36,6 +41,12 @@ paths: schema: minLength: 1 type: string + - name: includeServiceAccounts + in: query + description: Include service accounts while listing users within the organization. + required: false + schema: + type: boolean responses: '200': description: A paginated list of users in the organization. @@ -276,6 +287,29 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /v1/users/{id}/resendWelcomeEmail: + post: + tags: + - userManagement + summary: Resend verification email. + description: Resend the welcome email to a user. + operationId: resendWelcomeEmail + parameters: + - name: id + in: path + description: Identifier of the user to resend the welcome email. + required: true + schema: + type: string + responses: + '204': + description: Welcome email was resent successfully. + default: + description: Operation failed with an error. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' components: schemas: ListUserModelsResponse: @@ -312,57 +346,6 @@ components: message: Your password did not contain any non-alphanumeric characters items: $ref: '#/components/schemas/ErrorDescription' - UserModel: - allOf: - - $ref: '#/components/schemas/CreateUserDefinition' - - $ref: '#/components/schemas/MetadataModel' - - required: - - id - properties: - id: - type: string - description: Unique identifier for the user. - example: 000000000FE20FE2 - isActive: - type: boolean - description: True if the user is active. - example: true - isLocked: - type: boolean - description: This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. - example: false - isMfaEnabled: - type: boolean - description: True if multi factor authentication is enabled for the user. - example: false - lastLoginTimestamp: - type: string - description: Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. - format: date-time - ErrorDescription: - required: - - code - - message - type: object - properties: - code: - type: string - description: An error code describing the type of error. - example: auth:password_too_short - message: - type: string - description: A short English-language description of the error. - example: Your password was too short. - detail: - type: string - description: An optional fuller English-language description of the error. - example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. - meta: - type: object - description: An optional list of metadata about the error. - example: - minLength: 12 - actualLength: 5 CreateUserDefinition: required: - email @@ -397,19 +380,50 @@ components: - 00000000000002D2 items: type: string - MetadataModel: + UserModel: + type: object required: + - email + - firstName + - lastName + - roleIds - createdAt - createdBy - modifiedAt - modifiedBy - type: object + - id properties: + firstName: + maxLength: 128 + minLength: 1 + type: string + description: First name of the user. + example: John + lastName: + maxLength: 128 + minLength: 0 + type: string + description: Last name of the user. + example: Doe + email: + maxLength: 255 + type: string + description: Email address of the user. + format: email + example: johndoe@acme.com + roleIds: + type: array + description: List of roleIds associated with the user. + example: + - 00000000000001DF + - 00000000000002D2 + items: + type: string createdAt: type: string description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' createdBy: type: string description: Identifier of the user who created the resource. @@ -418,38 +432,56 @@ components: type: string description: Last modification timestamp in UTC. format: date-time - example: '2018-10-16T09:10:00Z' + example: '2018-10-16T09:10:00.000Z' modifiedBy: type: string description: Identifier of the user who last modified the resource. example: 0000000006743FE8 + id: + type: string + description: Unique identifier for the user. + example: 000000000FE20FE2 + isActive: + type: boolean + description: True if the user is active. + example: true + isLocked: + type: boolean + description: This has the value `true` if the user's account has been locked. If a user tries to log into their account several times and fails, his or her account will be locked for security reasons. + example: false + isMfaEnabled: + type: boolean + description: True if multi factor authentication is enabled for the user. + example: false + lastLoginTimestamp: + type: string + description: Timestamp of the last login for the user in UTC. Will be null if the user has never logged in. + format: date-time UpdateUserDefinition: required: - firstName - - isActive - lastName - - roleIds type: object properties: firstName: maxLength: 128 minLength: 1 type: string - description: First name of the user. + description: First name of the user. If the caller has `manageUsersAndRoles` capability, this field can be updated for any user. If the caller does NOT have `manageUsersAndRoles` capability, then only the calling user's firstName can be updated. example: John lastName: maxLength: 128 minLength: 0 type: string - description: Last name of the user. + description: Last name of the user. If the caller has `manageUsersAndRoles` capability, this field can be updated for any user. If the caller does NOT have `manageUsersAndRoles` capability, then only the calling user's lastName can be updated. example: Doe isActive: type: boolean - description: This has the value `true` if the user is active and `false` if they have been deactivated. + description: This has the value `true` if the user is active and `false` if they have been deactivated. To modify this field you must have the `manageUserAndRoles` capability. example: true roleIds: type: array - description: List of role identifiers associated with the user. + description: List of role identifiers associated with the user. To modify this field you must have the `manageUserAndRoles` capability. example: - 00000000000001DF - 00000000000002D2 @@ -481,456 +513,189 @@ components: password: type: string description: Password of user whose mfa is being disabled. - parameters: {} - responses: {} - securitySchemes: {} - callbacks: {} - examples: {} - requestBodies: {} - headers: {} - links: {} + ErrorDescription: + required: + - code + - message + type: object + properties: + code: + type: string + description: An error code describing the type of error. + example: auth:password_too_short + message: + type: string + description: A short English-language description of the error. + example: Your password was too short. + detail: + type: string + description: An optional fuller English-language description of the error. + example: Your password was 5 characters long, the minimum length is 12 characters. See http://example.com/password for more information. + meta: + type: string + description: An optional list of metadata about the error. (opaque JSON object) + example: + minLength: 12 + actualLength: 5 + MetadataModel: + required: + - createdAt + - createdBy + - modifiedAt + - modifiedBy + type: object + properties: + createdAt: + type: string + description: Creation timestamp in UTC in [RFC3339](https://tools.ietf.org/html/rfc3339) format. + format: date-time + example: '2018-10-16T09:10:00.000Z' + createdBy: + type: string + description: Identifier of the user who created the resource. + example: 0000000006743FDD + modifiedAt: + type: string + description: Last modification timestamp in UTC. + format: date-time + example: '2018-10-16T09:10:00.000Z' + modifiedBy: + type: string + description: Identifier of the user who last modified the resource. + example: 0000000006743FE8 x-stackQL-resources: users: id: sumologic.users.users name: users title: Users methods: - listUsers: + list: operation: $ref: '#/paths/~1v1~1users/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.data - createUser: + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users/post' response: mediaType: application/json openAPIDocKey: '200' - getUser: + request: + mediaType: application/json + nativeCasing: camel + get: operation: $ref: '#/paths/~1v1~1users~1{id}/get' response: mediaType: application/json openAPIDocKey: '200' - updateUser: + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users~1{id}/put' response: mediaType: application/json openAPIDocKey: '200' - deleteUser: + request: + mediaType: application/json + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1users~1{id}/delete' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/getUser' - - $ref: '#/components/x-stackQL-resources/users/methods/listUsers' - insert: - - $ref: '#/components/x-stackQL-resources/users/methods/createUser' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/users/methods/deleteUser' - email_request_change: - id: sumologic.users.email_request_change - name: email_request_change - title: Email_request_change - methods: - requestChangeEmail: + openAPIDocKey: '204' + request: + nativeCasing: camel + request_change_email: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users~1{id}~1email~1requestChange/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - password_reset: - id: sumologic.users.password_reset - name: password_reset - title: Password_reset - methods: - resetPassword: + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + reset_password: operation: $ref: '#/paths/~1v1~1users~1{id}~1password~1reset/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - unlock: - id: sumologic.users.unlock - name: unlock - title: Unlock - methods: - unlockUser: + openAPIDocKey: '204' + unlock: operation: $ref: '#/paths/~1v1~1users~1{id}~1unlock/post' response: mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - mfa_disable: - id: sumologic.users.mfa_disable - name: mfa_disable - title: Mfa_disable - methods: - disableMfa: + openAPIDocKey: '204' + disable_mfa: + config: + requestBodyTranslate: + algorithm: naive operation: $ref: '#/paths/~1v1~1users~1{id}~1mfa~1disable/put' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' + request: + mediaType: application/json + nativeCasing: camel + resend_welcome_email: + operation: + $ref: '#/paths/~1v1~1users~1{id}~1resendWelcomeEmail/post' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] -openapi: 3.0.0 + select: + - $ref: '#/components/x-stackQL-resources/users/methods/get' + - $ref: '#/components/x-stackQL-resources/users/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/users/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/users/methods/delete' + replace: [] servers: - url: https://api.{region}.sumologic.com/api + description: Sumo Logic deployment API endpoint variables: region: - description: SumoLogic region + description: Sumo Logic deployment (au, ca, ch, de, eu, fed, in, jp, kr, us1, us2). Resolved from the SUMOLOGIC_ENVIRONMENT environment variable when it is set (x-stackQL-envVar, the same variable the Terraform provider reads); otherwise defaults to us2. A WHERE region = '...' value always takes precedence. enum: - - us2 - au - ca + - ch - de - eu - fed - in - jp + - kr + - us1 + - us2 default: us2 - description: The SumoLogic regional endpoint -security: - - basicAuth: [] -tags: - - name: accountManagement - description: | - Account Management API. - - Manage the custom subdomain for the URL used to access your Sumo Logic account. For more information see [Manage Organization](https://help.sumologic.com/Manage/01Account_Usage/05Manage_Organization). - x-displayName: Account - - name: appManagement - description: | - App installation API. - - View and install Sumo Logic Applications that deliver out-of-the-box dashboards, saved searches, and field extraction for popular data sources. For more information see [Sumo Logic Apps](https://help.sumologic.com/07Sumo-Logic-Apps). - x-displayName: Apps (Beta) - - name: connectionManagement - description: | - Connection management API. - - Set up connections to send alerts to other tools. For more information see [Connections and Integrations](https://help.sumologic.com/?cid=1044). - x-displayName: Connections - - name: contentManagement - description: | - Content management API. - - You can export, import, delete and copy content in your organization’s Library. For more information see [Library](https://help.sumologic.com/?cid=5173). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). -

- ### Example - The following example uses API endpoints in the US1 deployment. Sumo Logic has several deployments that are assigned depending on the geographic location and the date an account is created. For details determining your account's deployment see [API endpoints](https://help.sumologic.com/?cid=3011). - The [Content Import API](#operation/beginAsyncImport) can be used to create or update a Search, Scheduled Search, or Dashboard. Here is an example creating a Scheduled Search: - 1. Get the identifier of your `Personal` folder. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/personal - ``` - - Find the identifier of your `Personal` folder in the response. - ```json - { - ... - "id": "0000000006A2E86F", <---- - "name": "Personal", - "itemType": "Folder", - ... - } - ``` - - You can use [getFolder](#operation/getFolder), [getAdminRecommededFolder](#operation/getAdminRecommendedFolderAsync), - or [getGlobalFolder](#operation/getGlobalFolderAsync) endpoints to traverse the content tree and find the identifier of any - folder you want to manage. - - 2. Use the [Content Import API](#operation/beginAsyncImport) to create a new Scheduled Search inside your - `Personal` folder. - ```bash - curl -X POST -u ":" -H "Content-Type: application/json" -d @search.json https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import - ``` - - The data file `search.json` in the above command has the following `SavedSearchWithScheduleSyncDefinition` object. - ```json - // file: search.json - { - "type": "SavedSearchWithScheduleSyncDefinition", - "name": "demo-scheduled-search", - "description": "Runs every hour with timerange of 15m and sends email notifications", - "search": { - "queryText": "\"error\" and \"warn\"", - "defaultTimeRange": "-15m", - "byReceiptTime": false, - "viewName": "", - "viewStartTime": null, - "queryParameters": [] - }, - "searchSchedule": { - "cronExpression": "0 0/15 * * * ? *", - "displayableTimeRange": "-15m", - "parseableTimeRange": { - "from": { - "relativeTime": "-15m", - "type": "RelativeTimeRangeBoundary" - }, - "to": null, - "type": "BeginBoundedTimeRange" - }, - "timeZone": "America/Los_Angeles", - "threshold": null, - "notification": { - "taskType": "EmailSearchNotificationSyncDefinition", - "toList": [ - "ops@acme.org" - ], - "subjectTemplate": "Search Results: {{SearchName}}", - "includeQuery": true, - "includeResultSet": true, - "includeHistogram": true, - "includeCsvAttachment": false - }, - "muteErrorEmails": false, - "scheduleType": "1Hour", - "parameters": [] - } - } - ``` - - The response of above request will have the job identifier that you can use to track the status of the import job. - ```json - { - "id": "74DC17FA765C7443" - } - ``` - - 3. Use the job identifier from the import request to get the [status](#operation/getAsyncImportStatus) of the - import job. - ```bash - curl -X GET -u ":" https://api.sumologic.com/api/v2/content/folders/0000000006A2E86F/import/74DC17FA765C7443/status - ``` - - If you are importing a large item, you might have to wait for the import job to finish. The following is an - example response from a completed job. - ```json - { - "status": "Success", - "statusMessage": null, - "error": null - } - ``` - x-displayName: Content - - name: contentPermissions - description: | - Content permissions API. - - You can share your folders, searches, and dashboards with specific users or roles. For more information see [Share Content](https://help.sumologic.com/?cid=8675309). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Permissions - - name: dashboardManagement - description: | - Dashboard (New) management API. - - Dashboard (New) allows you to analyze metric and log data on the same dashboard, in a seamless view. This gives you control over the visual display of metric and log data. Dashboard (New) streamlines dashboard configurations and on-the-fly analytic visualizations with its new templating features. For more information see [Dashboard (New)](https://help.sumologic.com/?cid=5500). - x-displayName: Dashboard (New) - - name: dynamicParsingRuleManagement - description: | - Dynamic Parsing management API. - - Dynamic Parsing allows automatic field extraction from your log messages when you run a search. This allows you to view fields from logs without having to manually specify parsing logic. For more information see [Dynamic Parsing](https://help.sumologic.com/?cid=20011). - x-displayName: Dynamic Parsing - - name: extractionRuleManagement - description: | - Field Extraction Rule management API. - - Field Extraction Rules allow you to parse fields from your log messages at the time the messages are ingested eliminating the need to parse fields in your query. For more information see [Manage Field Extraction](https://help.sumologic.com/?cid=5313). - x-displayName: Field Extraction Rules - - name: fieldManagementV1 - description: | - Field management API. - - Fields allow you to reference log data based on meaningful associations. They act as metadata tags that are assigned to your logs so you can search with them. Each field contains a key-value pair, where the field name is the key. Fields may be referred to as Log Metadata Fields. For more information see [Fields](https://help.sumologic.com/?cid=10116). - x-displayName: Field Management - - name: folderManagement - description: | - Folder management API. - - You can add folders and subfolders to the Library in order to organize your content for easy access or to share content. For more information see [Add Folders to the Library](https://help.sumologic.com/?cid=5020). You can perform the request as a Content Administrator by using the `isAdminMode` parameter. For more information see [Admin Mode](https://help.sumologic.com/Manage/Content_Sharing/Admin_Mode). - x-displayName: Folders - - name: ingestBudgetManagementV1 - description: | - Ingest Budget management API. - - Ingest Budgets allow you to control the capacity of daily ingestion volume sent to Sumo Logic from Collectors. For more information see [Ingest Budgets](https://help.sumologic.com/?cid=5235). - x-displayName: Ingest Budgets - - name: ingestBudgetManagementV2 - description: | - Ingest Budget management API V2. - - Ingest Budgets V2 provide you the ability to create and assign budgets to your log data by Fields instead of using a Field Value. For more information see [Metadata Ingest Budgets](https://help.sumologic.com/?cid=52352). - x-displayName: Ingest Budgets V2 - - name: partitionManagement - description: | - Partition management API. - - Creating a Partition allows you to improve search performance by searching over a smaller number of messages. For more information see [Manage Partitions](https://help.sumologic.com/?cid=5231). - x-displayName: Partitions - - name: logsDataForwardingManagement - description: | - Logs Data Forwarding management API. - - Logs Data Forwarding allows you to forward log data from a Partition or Scheduled View to an S3 bucket. For more information see [Forwarding Data to S3](https://help.sumologic.com/Manage/Data-Forwarding/Configure-Data-Forwarding-from-Sumo-Logic-to-S3). - x-displayName: Logs Data Forwarding - - name: roleManagement - description: | - Role management API. - - Roles determine the functions that users are able to perform in Sumo Logic. To manage roles, you must have an administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Roles](https://help.sumologic.com/?cid=5234). - x-displayName: Roles - - name: lookupManagement - description: | - Lookup Table management API. - - A Lookup Table is a table of data hosted on Sumo Logic that you can use to enrich the log and event data received by Sumo Logic. You must create a table schema before you can populate the table. For more information see [Lookup Tables](https://help.sumologic.com/?cid=10109). - x-displayName: Lookup Tables - - name: scheduledViewManagement - description: | - Scheduled View management API. - - Scheduled Views speed the search process for small and historical subsets of your data by functioning as a pre-aggregated index. For more information see [Manage Scheduled Views](https://help.sumologic.com/?cid=5128). - x-displayName: Scheduled Views - - name: tokensLibraryManagement - description: | - Tokens management API. - - Tokens are associated with your organization to authorize specific operations. Currently, we support collector registration tokens, which can be used to register Installed Collectors. Managing tokens requires the Manage Tokens role capability. For more information see [Installation Tokens](https://help.sumologic.com/?cid=0100). - x-displayName: Tokens - - name: transformationRuleManagement - description: | - Transformation Rule management API. - Metrics Transformation Rules allow you control how long raw metrics are retained. You can also aggregate metrics at collection time and specify a separate retention period for the aggregated metrics. For more information see [Metrics Transformation Rules](https://help.sumologic.com/?cid=10117). - x-displayName: Transformation Rules (Beta) - - name: userManagement - description: | - User management API. - - To manage users, you must have the administrator role or your role must have been assigned the manage users and roles capability. For more information see [Manage Users](https://help.sumologic.com/?cid=1006). - x-displayName: Users - - name: metricsSearchesManagement - description: | - Metrics Search management API. - - Save metrics searches in the content library and organize them in a folder hierarchy. Share useful queries with users in your organization. For more information see [Sharing Metric Charts](https://help.sumologic.com/Metrics/03-Metric-Charts/Share_a_Metric_Chart). - x-displayName: Metrics Searches (Beta) - - name: metricsQuery - description: | - Metrics Query API. - - The Metrics Query API allows you to execute queries on various metrics and retrieve multiple time-series (data-points) over time range(s). For more information see [Metrics - Classic](https://help.sumologic.com/?cid=1079). - x-displayName: Metrics Query - - name: accessKeyManagement - description: | - Access Key management API. - - Access Keys allow you to securely register new Collectors and access Sumo Logic APIs. For more information see [Access Keys](https://help.sumologic.com/?cid=6690). - x-displayName: Access Keys - - name: samlConfigurationManagement - description: | - SAML configuration management API - - Organizations with Enterprise accounts can provision Security Assertion Markup Language (SAML) 2.0 to enable Single Sign-On (SSO) for user access to Sumo Logic. For more information see [SAML Configuration](https://help.sumologic.com/?cid=4016). - x-displayName: SAML Configuration - - name: serviceAllowlistManagement - description: | - Service Allowlist management API - - Service Allowlist Settings allow you to explicitly grant access to specific IP addresses and/or CIDR notations for logins, APIs, and dashboard access. For more information see [Service Allowlist Settings](https://help.sumologic.com/?cid=5454). - x-displayName: Service Allowlist - - name: healthEvents - description: | - Health Events management API. - - Health Events allow you to keep track of the health of your Collectors and Sources. You can use them to find and investigate common errors and warnings that are known to cause collection issues. For more information see [Health Events](https://help.sumologic.com/?cid=0020). - x-displayName: Health Events - - name: archiveManagement - description: |- - Archive Ingestion Management API. - - Archive Ingestion allows you to ingest data from Archive destinations. You can use this API to ingest data from your Archive with an existing AWS S3 Archive Source. You need the Manage or View Collectors role capability to manage or view ingestion jobs. For more information see [Archive](https://help.sumologic.com/?cid=10011). - x-displayName: Archive Ingestion Management - - name: logSearchesEstimatedUsage - description: | - Log Search Estimated Usage API. - - Gets the estimated volume of data that would be scanned for a given log search in the Infrequent data tier, over a particular time range. In the Infrequent Data Tier, you pay per query, based on the amount data scanned. You can use this endpoint to get an estimate of the total data that would be scanned before running a query, and refine your query to scan less data, as necessary. For more information see [Infrequent data tier](https://help.sumologic.com/?cid=11987). - x-displayName: Log Search Estimated Usage - - name: passwordPolicy - description: | - Password Policy Management API - - The password policy controls how user passwords are managed. The "Manage Password Policy" role capability is required to update the password policy. For more information see [how to set a password policy](https://help.sumologic.com/?cid=8595). - x-displayName: Password Policy - - name: policiesManagement - description: | - Policies management API. - - Policies control the security and share settings of your organization. For more information see [Security](https://help.sumologic.com/?cid=4041). - x-displayName: Policies - - name: traces - description: | - Traces API - - The Traces API allows you to browse traces collected in the system. You can execute queries to find traces matching provided search criteria as well as gather detailed information about individual traces and spans. For more information see [View and investigate traces](https://help.sumologic.com/Traces/View_and_investigate_traces). - x-displayName: Traces - - name: spanAnalytics - description: | - Span Analytics API - - The Span Analytics API allows you to browse spans collected in the system. You can execute queries to find individual spans matching provided search criteria as well as run aggregated span queries and retrieve their results. For more information see [Spans](https://help.sumologic.com/Traces/Spans). - x-displayName: Span Analytics - - name: serviceMap - description: | - Service Map API - - The Service Map API allows you to fetch a graph representation of the Service Map, which is a high-level view of your application environment, automatically derived from tracing data. For more information see [Service Map](https://help.sumologic.com/Traces/Service_Map_and_Dashboards#service-map). - x-displayName: Service Map - - name: slosLibraryManagement - description: | - SLO Management API. - - SLOs are used to monitor and alert on KPIs for your most important services or user experience. - x-displayName: SLOs - - name: monitorsLibraryManagement - description: | - Monitor Management API. - - - Monitors continuously query your data to monitor and send notifications when specific events occur. - For more information see [Monitors](https://help.sumologic.com/?cid=10020). - x-displayName: Monitors -info: - title: Sumo Logic API - users - description: users - version: 1.0.0 - x-logo: - url: ./sumologic_logo.png + x-stackQL-envVar: SUMOLOGIC_ENVIRONMENT +x-stackQL-config: + pagination: + requestToken: + key: token + location: query + responseToken: + key: next + location: body diff --git a/providers/src/vercel/v00.00.00000/provider.yaml b/providers/src/vercel/v00.00.00000/provider.yaml index 0211e870..5a3a6949 100644 --- a/providers/src/vercel/v00.00.00000/provider.yaml +++ b/providers/src/vercel/v00.00.00000/provider.yaml @@ -2,178 +2,350 @@ id: vercel name: vercel version: v00.00.00000 providerServices: + access_groups: + id: access_groups:v00.00.00000 + name: access_groups + preferred: true + service: + $ref: vercel/v00.00.00000/services/access_groups.yaml + title: access_groups API + version: v00.00.00000 + description: vercel access_groups API + ai_gateway: + id: ai_gateway:v00.00.00000 + name: ai_gateway + preferred: true + service: + $ref: vercel/v00.00.00000/services/ai_gateway.yaml + title: ai_gateway API + version: v00.00.00000 + description: vercel ai_gateway API aliases: - id: 'aliases:v00.00.00000' + id: aliases:v00.00.00000 name: aliases preferred: true service: $ref: vercel/v00.00.00000/services/aliases.yaml - title: Vercel API - Aliases + title: aliases API version: v00.00.00000 - description: Aliases + description: vercel aliases API artifacts: - id: 'artifacts:v00.00.00000' + id: artifacts:v00.00.00000 name: artifacts preferred: true service: $ref: vercel/v00.00.00000/services/artifacts.yaml - title: Vercel API - Artifacts + title: artifacts API version: v00.00.00000 - description: Artifacts + description: vercel artifacts API authentication: - id: 'authentication:v00.00.00000' + id: authentication:v00.00.00000 name: authentication preferred: true service: $ref: vercel/v00.00.00000/services/authentication.yaml - title: Vercel API - Authentication + title: authentication API version: v00.00.00000 - description: Authentication - billing_settings: - id: 'billing_settings:v00.00.00000' - name: billing_settings + description: vercel authentication API + billing: + id: billing:v00.00.00000 + name: billing preferred: true service: - $ref: vercel/v00.00.00000/services/billing_settings.yaml - title: Vercel API - Billing Settings + $ref: vercel/v00.00.00000/services/billing.yaml + title: billing API version: v00.00.00000 - description: Billing Settings - cache: - id: 'cache:v00.00.00000' - name: cache + description: vercel billing API + bulk_redirects: + id: bulk_redirects:v00.00.00000 + name: bulk_redirects preferred: true service: - $ref: vercel/v00.00.00000/services/cache.yaml - title: Vercel API - Cache + $ref: vercel/v00.00.00000/services/bulk_redirects.yaml + title: bulk_redirects API version: v00.00.00000 - description: Cache + description: vercel bulk_redirects API certs: - id: 'certs:v00.00.00000' + id: certs:v00.00.00000 name: certs preferred: true service: $ref: vercel/v00.00.00000/services/certs.yaml - title: Vercel API - Certs + title: certs API version: v00.00.00000 - description: Certs + description: vercel certs API checks: - id: 'checks:v00.00.00000' + id: checks:v00.00.00000 name: checks preferred: true service: $ref: vercel/v00.00.00000/services/checks.yaml - title: Vercel API - Checks + title: checks API + version: v00.00.00000 + description: vercel checks API + connect: + id: connect:v00.00.00000 + name: connect + preferred: true + service: + $ref: vercel/v00.00.00000/services/connect.yaml + title: connect API version: v00.00.00000 - description: Checks + description: vercel connect API deployments: - id: 'deployments:v00.00.00000' + id: deployments:v00.00.00000 name: deployments preferred: true service: $ref: vercel/v00.00.00000/services/deployments.yaml - title: Vercel API - Deployments + title: deployments API version: v00.00.00000 - description: Deployments + description: vercel deployments API dns: - id: 'dns:v00.00.00000' + id: dns:v00.00.00000 name: dns preferred: true service: $ref: vercel/v00.00.00000/services/dns.yaml - title: Vercel API - Dns + title: dns API version: v00.00.00000 - description: Dns + description: vercel dns API domains: - id: 'domains:v00.00.00000' + id: domains:v00.00.00000 name: domains preferred: true service: $ref: vercel/v00.00.00000/services/domains.yaml - title: Vercel API - Domains + title: domains API + version: v00.00.00000 + description: vercel domains API + domains_registrar: + id: domains_registrar:v00.00.00000 + name: domains_registrar + preferred: true + service: + $ref: vercel/v00.00.00000/services/domains_registrar.yaml + title: domains_registrar API + version: v00.00.00000 + description: vercel domains_registrar API + drains: + id: drains:v00.00.00000 + name: drains + preferred: true + service: + $ref: vercel/v00.00.00000/services/drains.yaml + title: drains API + version: v00.00.00000 + description: vercel drains API + edge_cache: + id: edge_cache:v00.00.00000 + name: edge_cache + preferred: true + service: + $ref: vercel/v00.00.00000/services/edge_cache.yaml + title: edge_cache API version: v00.00.00000 - description: Domains + description: vercel edge_cache API edge_config: - id: 'edge_config:v00.00.00000' + id: edge_config:v00.00.00000 name: edge_config preferred: true service: $ref: vercel/v00.00.00000/services/edge_config.yaml - title: Vercel API - Edge Config + title: edge_config API + version: v00.00.00000 + description: vercel edge_config API + environments: + id: environments:v00.00.00000 + name: environments + preferred: true + service: + $ref: vercel/v00.00.00000/services/environments.yaml + title: environments API + version: v00.00.00000 + description: vercel environments API + feature_flags: + id: feature_flags:v00.00.00000 + name: feature_flags + preferred: true + service: + $ref: vercel/v00.00.00000/services/feature_flags.yaml + title: feature_flags API version: v00.00.00000 - description: Edge-Config + description: vercel feature_flags API integrations: - id: 'integrations:v00.00.00000' + id: integrations:v00.00.00000 name: integrations preferred: true service: $ref: vercel/v00.00.00000/services/integrations.yaml - title: Vercel API - Integrations + title: integrations API version: v00.00.00000 - description: Integrations + description: vercel integrations API + kms: + id: kms:v00.00.00000 + name: kms + preferred: true + service: + $ref: vercel/v00.00.00000/services/kms.yaml + title: kms API + version: v00.00.00000 + description: vercel kms API log_drains: - id: 'log_drains:v00.00.00000' + id: log_drains:v00.00.00000 name: log_drains preferred: true service: $ref: vercel/v00.00.00000/services/log_drains.yaml - title: Vercel API - Log Drains + title: log_drains API version: v00.00.00000 - description: LogDrains - projects: - id: 'projects:v00.00.00000' - name: projects + description: vercel log_drains API + marketplace: + id: marketplace:v00.00.00000 + name: marketplace preferred: true service: - $ref: vercel/v00.00.00000/services/projects.yaml - title: Vercel API - Projects + $ref: vercel/v00.00.00000/services/marketplace.yaml + title: marketplace API version: v00.00.00000 - description: Projects + description: vercel marketplace API + microfrontends: + id: microfrontends:v00.00.00000 + name: microfrontends + preferred: true + service: + $ref: vercel/v00.00.00000/services/microfrontends.yaml + title: microfrontends API + version: v00.00.00000 + description: vercel microfrontends API + networking: + id: networking:v00.00.00000 + name: networking + preferred: true + service: + $ref: vercel/v00.00.00000/services/networking.yaml + title: networking API + version: v00.00.00000 + description: vercel networking API + observability: + id: observability:v00.00.00000 + name: observability + preferred: true + service: + $ref: vercel/v00.00.00000/services/observability.yaml + title: observability API + version: v00.00.00000 + description: vercel observability API project_members: - id: 'project_members:v00.00.00000' + id: project_members:v00.00.00000 name: project_members preferred: true service: $ref: vercel/v00.00.00000/services/project_members.yaml - title: Vercel API - Project Members + title: project_members API + version: v00.00.00000 + description: vercel project_members API + project_routes: + id: project_routes:v00.00.00000 + name: project_routes + preferred: true + service: + $ref: vercel/v00.00.00000/services/project_routes.yaml + title: project_routes API + version: v00.00.00000 + description: vercel project_routes API + projects: + id: projects:v00.00.00000 + name: projects + preferred: true + service: + $ref: vercel/v00.00.00000/services/projects.yaml + title: projects API version: v00.00.00000 - description: ProjectMembers - secrets: - id: 'secrets:v00.00.00000' - name: secrets + description: vercel projects API + rolling_release: + id: rolling_release:v00.00.00000 + name: rolling_release preferred: true service: - $ref: vercel/v00.00.00000/services/secrets.yaml - title: Vercel API - Secrets + $ref: vercel/v00.00.00000/services/rolling_release.yaml + title: rolling_release API version: v00.00.00000 - description: Secrets + description: vercel rolling_release API + sandboxes: + id: sandboxes:v00.00.00000 + name: sandboxes + preferred: true + service: + $ref: vercel/v00.00.00000/services/sandboxes.yaml + title: sandboxes API + version: v00.00.00000 + description: vercel sandboxes API + security: + id: security:v00.00.00000 + name: security + preferred: true + service: + $ref: vercel/v00.00.00000/services/security.yaml + title: security API + version: v00.00.00000 + description: vercel security API + storage: + id: storage:v00.00.00000 + name: storage + preferred: true + service: + $ref: vercel/v00.00.00000/services/storage.yaml + title: storage API + version: v00.00.00000 + description: vercel storage API teams: - id: 'teams:v00.00.00000' + id: teams:v00.00.00000 name: teams preferred: true service: $ref: vercel/v00.00.00000/services/teams.yaml - title: Vercel API - Teams + title: teams API version: v00.00.00000 - description: Teams + description: vercel teams API user: - id: 'user:v00.00.00000' + id: user:v00.00.00000 name: user preferred: true service: $ref: vercel/v00.00.00000/services/user.yaml - title: Vercel API - User + title: user API + version: v00.00.00000 + description: vercel user API + vcr: + id: vcr:v00.00.00000 + name: vcr + preferred: true + service: + $ref: vercel/v00.00.00000/services/vcr.yaml + title: vcr API + version: v00.00.00000 + description: vercel vcr API + web_analytics: + id: web_analytics:v00.00.00000 + name: web_analytics + preferred: true + service: + $ref: vercel/v00.00.00000/services/web_analytics.yaml + title: web_analytics API version: v00.00.00000 - description: User + description: vercel web_analytics API webhooks: - id: 'webhooks:v00.00.00000' + id: webhooks:v00.00.00000 name: webhooks preferred: true service: $ref: vercel/v00.00.00000/services/webhooks.yaml - title: Vercel API - Webhooks + title: webhooks API version: v00.00.00000 - description: Webhooks + description: vercel webhooks API config: auth: type: bearer credentialsenvvar: VERCEL_API_TOKEN + snake_case_aliases: true diff --git a/providers/src/vercel/v00.00.00000/services/access_groups.yaml b/providers/src/vercel/v00.00.00000/services/access_groups.yaml new file mode 100644 index 00000000..c8673827 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/access_groups.yaml @@ -0,0 +1,1389 @@ +openapi: 3.0.3 +info: + title: access_groups API + description: vercel access_groups API + version: 0.0.1 +paths: + /v1/access-groups/{id_or_name}: + get: + description: Allows to read an access group + operationId: readAccessGroup + security: + - bearerToken: [] + summary: Reads an access group + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + type: array + entitlements: + items: + type: string + enum: + - v0 + type: array + isDsyncManaged: + type: boolean + enum: + - false + - true + name: + type: string + description: The name of this access group. + example: my-access-group + createdAt: + type: string + description: Timestamp in milliseconds when the access group was created. + example: 1588720733602 + teamId: + type: string + description: ID of the team that this access group belongs to. + example: team_123a6c5209bc3778245d011443644c8d27dc2c50 + updatedAt: + type: string + description: Timestamp in milliseconds when the access group was last updated. + example: 1588720733602 + accessGroupId: + type: string + description: ID of the access group. + example: ag_123a6c5209bc3778245d011443644c8d27dc2c50 + membersCount: + type: number + description: Number of members in the access group. + example: 5 + projectsCount: + type: number + description: Number of projects in the access group. + example: 2 + teamRoles: + items: + type: string + type: array + description: Roles that the team has in the access group. + example: + - DEVELOPER + - BILLING + required: + - accessGroupId + - createdAt + - isDsyncManaged + - membersCount + - name + - projectsCount + - teamId + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - read + - get + parameters: + - name: id_or_name + in: path + required: true + schema: + type: string + x-vercel-cli: + kind: argument + examples: + id: + summary: Access group ID + value: ag_1a2b3c4d5e6f7g8h9i0j + name: + summary: Access group name + value: My Access Group + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Allows to update an access group metadata + operationId: updateAccessGroup + security: + - bearerToken: [] + summary: Update an access group + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + entitlements: + items: + type: string + enum: + - v0 + type: array + name: + type: string + description: The name of this access group. + example: my-access-group + createdAt: + type: string + description: Timestamp in milliseconds when the access group was created. + example: 1588720733602 + teamId: + type: string + description: ID of the team that this access group belongs to. + example: team_123a6c5209bc3778245d011443644c8d27dc2c50 + updatedAt: + type: string + description: Timestamp in milliseconds when the access group was last updated. + example: 1588720733602 + accessGroupId: + type: string + description: ID of the access group. + example: ag_123a6c5209bc3778245d011443644c8d27dc2c50 + membersCount: + type: number + description: Number of members in the access group. + example: 5 + projectsCount: + type: number + description: Number of projects in the access group. + example: 2 + teamRoles: + items: + type: string + type: array + description: Roles that the team has in the access group. + example: + - DEVELOPER + - BILLING + teamPermissions: + items: + type: string + type: array + description: Permissions that the team has in the access group. + example: + - CreateProject + required: + - accessGroupId + - createdAt + - entitlements + - membersCount + - name + - projectsCount + - teamId + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the access group + maxLength: 50 + pattern: ^[A-z0-9_ -]+$ + example: My access group + projects: + type: array + items: + type: object + additionalProperties: false + required: + - role + - projectId + properties: + projectId: + type: string + maxLength: 256 + example: prj_ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the project. + role: + type: string + example: ADMIN + description: The project role that will be added to this Access Group. "null" will remove this project level role. + nullable: true + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + - null + membersToAdd: + description: List of members to add to the access group. + type: array + items: + type: string + example: + - usr_1a2b3c4d5e6f7g8h9i0j + - usr_2b3c4d5e6f7g8h9i0j1k + membersToRemove: + description: List of members to remove from the access group. + type: array + items: + type: string + example: + - usr_1a2b3c4d5e6f7g8h9i0j + - usr_2b3c4d5e6f7g8h9i0j1k + required: true + delete: + description: Allows to delete an access group + operationId: deleteAccessGroup + security: + - bearerToken: [] + summary: Deletes an access group + tags: + - access-groups + responses: + '200': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/access-groups/{id_or_name}/members: + get: + description: List members of an access group + operationId: listAccessGroupMembers + security: + - bearerToken: [] + summary: List members of an access group + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + members: + items: + properties: + avatar: + type: string + email: + type: string + uid: + type: string + username: + type: string + name: + type: string + createdAt: + type: string + teamRole: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + required: + - email + - teamRole + - uid + - username + type: object + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - members + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The ID or name of the Access Group. + in: path + required: true + schema: + type: string + description: The ID or name of the Access Group. + example: ag_pavWOn1iLObbXLRiwVvzmPrTWyTf + - name: limit + description: Limit how many access group members should be returned. + in: query + required: false + schema: + description: Limit how many access group members should be returned. + example: 20 + type: integer + minimum: 1 + maximum: 100 + - name: next + description: Continuation cursor to retrieve the next page of results. + in: query + required: false + schema: + description: Continuation cursor to retrieve the next page of results. + type: string + - name: search + description: Search project members by their name, username, and email. + in: query + required: false + schema: + description: Search project members by their name, username, and email. + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/access-groups: + get: + description: List access groups + operationId: listAccessGroups + security: + - bearerToken: [] + summary: List access groups for a team, project or member + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + accessGroups: + items: + properties: + members: + items: + type: string + type: array + projects: + items: + type: string + type: array + entitlements: + items: + type: string + type: array + teamPermissions: + items: + type: string + type: array + isDsyncManaged: + type: boolean + enum: + - false + - true + name: + type: string + description: The name of this access group. + example: my-access-group + createdAt: + type: string + description: Timestamp in milliseconds when the access group was created. + example: 1588720733602 + teamId: + type: string + description: ID of the team that this access group belongs to. + example: team_123a6c5209bc3778245d011443644c8d27dc2c50 + updatedAt: + type: string + description: Timestamp in milliseconds when the access group was last updated. + example: 1588720733602 + accessGroupId: + type: string + description: ID of the access group. + example: ag_123a6c5209bc3778245d011443644c8d27dc2c50 + membersCount: + type: number + description: Number of members in the access group. + example: 5 + projectsCount: + type: number + description: Number of projects in the access group. + example: 2 + teamRoles: + items: + type: string + type: array + description: Roles that the team has in the access group. + example: + - DEVELOPER + - BILLING + required: + - accessGroupId + - createdAt + - isDsyncManaged + - membersCount + - name + - projectsCount + - teamId + - updatedAt + type: object + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - accessGroups + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - list + parameters: + - name: projectId + description: Filter access groups by project. + in: query + schema: + description: Filter access groups by project. + example: prj_pavWOn1iLObbx3RowVvzmPrTWyTf + type: string + - name: search + description: Search for access groups by name. + in: query + schema: + description: Search for access groups by name. + example: example + type: string + - name: membersLimit + description: Number of members to include in the response. + in: query + schema: + description: Number of members to include in the response. + example: 20 + type: integer + minimum: 1 + maximum: 100 + - name: projectsLimit + description: Number of projects to include in the response. + in: query + schema: + description: Number of projects to include in the response. + example: 20 + type: integer + minimum: 1 + maximum: 100 + - name: limit + description: Limit how many access group should be returned. + in: query + schema: + description: Limit how many access group should be returned. + example: 20 + type: integer + minimum: 1 + maximum: 100 + - name: next + description: Continuation cursor to retrieve the next page of results. + in: query + schema: + description: Continuation cursor to retrieve the next page of results. + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Allows to create an access group + operationId: createAccessGroup + security: + - bearerToken: [] + summary: Creates an access group + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + entitlements: + items: + type: string + enum: + - v0 + type: array + membersCount: + type: number + projectsCount: + type: number + name: + type: string + description: The name of this access group. + example: my-access-group + createdAt: + type: string + description: Timestamp in milliseconds when the access group was created. + example: 1588720733602 + teamId: + type: string + description: ID of the team that this access group belongs to. + example: team_123a6c5209bc3778245d011443644c8d27dc2c50 + updatedAt: + type: string + description: Timestamp in milliseconds when the access group was last updated. + example: 1588720733602 + accessGroupId: + type: string + description: ID of the access group. + example: ag_123a6c5209bc3778245d011443644c8d27dc2c50 + teamRoles: + items: + type: string + type: array + description: Roles that the team has in the access group. + example: + - DEVELOPER + - BILLING + teamPermissions: + items: + type: string + type: array + description: Permissions that the team has in the access group. + example: + - CreateProject + required: + - accessGroupId + - createdAt + - entitlements + - membersCount + - name + - projectsCount + - teamId + - updatedAt + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - name + properties: + name: + type: string + description: The name of the access group + maxLength: 50 + pattern: ^[A-z0-9_ -]+$ + example: My access group + projects: + type: array + items: + type: object + additionalProperties: false + required: + - role + - projectId + properties: + projectId: + type: string + maxLength: 256 + example: prj_ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the project. + role: + type: string + example: ADMIN + description: The project role that will be added to this Access Group. "null" will remove this project level role. + nullable: true + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + - null + membersToAdd: + description: List of members to add to the access group. + type: array + items: + type: string + example: + - usr_1a2b3c4d5e6f7g8h9i0j + - usr_2b3c4d5e6f7g8h9i0j1k + required: true + /v1/access-groups/{id_or_name}/projects: + get: + description: List projects of an access group + operationId: listAccessGroupProjects + security: + - bearerToken: [] + summary: List projects of an access group + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + projects: + items: + properties: + projectId: + type: string + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + createdAt: + type: string + updatedAt: + type: string + project: + properties: + name: + type: string + framework: + nullable: true + type: string + latestDeploymentId: + type: string + type: object + required: + - createdAt + - project + - projectId + - role + - updatedAt + type: object + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - pagination + - projects + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The ID or name of the Access Group. + in: path + required: true + schema: + type: string + description: The ID or name of the Access Group. + example: ag_pavWOn1iLObbXLRiwVvzmPrTWyTf + - name: limit + description: Limit how many access group projects should be returned. + in: query + required: false + schema: + description: Limit how many access group projects should be returned. + example: 20 + type: integer + minimum: 1 + maximum: 100 + - name: next + description: Continuation cursor to retrieve the next page of results. + in: query + required: false + schema: + description: Continuation cursor to retrieve the next page of results. + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/access-groups/{access_group_id_or_name}/projects: + post: + description: Allows creation of an access group project + operationId: createAccessGroupProject + security: + - bearerToken: [] + summary: Create an access group project + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + teamId: + type: string + accessGroupId: + type: string + projectId: + type: string + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + createdAt: + type: string + updatedAt: + type: string + required: + - accessGroupId + - createdAt + - projectId + - role + - teamId + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: access_group_id_or_name + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - role + - projectId + properties: + projectId: + type: string + maxLength: 256 + example: prj_ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the project. + role: + type: string + example: ADMIN + description: The project role that will be added to this Access Group. + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + required: true + /v1/access-groups/{access_group_id_or_name}/projects/{project_id}: + get: + description: Allows reading an access group project + operationId: readAccessGroupProject + security: + - bearerToken: [] + summary: Reads an access group project + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + teamId: + type: string + accessGroupId: + type: string + projectId: + type: string + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + createdAt: + type: string + updatedAt: + type: string + required: + - accessGroupId + - createdAt + - projectId + - role + - teamId + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: access_group_id_or_name + in: path + required: true + schema: + type: string + examples: + id: + summary: Access group ID + value: ag_1a2b3c4d5e6f7g8h9i0j + name: + summary: Access group name + value: My Access Group + - name: project_id + in: path + required: true + schema: + type: string + example: prj_ndlgr43fadlPyCtREAqxxdyFK + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Allows update of an access group project + operationId: updateAccessGroupProject + security: + - bearerToken: [] + summary: Update an access group project + tags: + - access-groups + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + teamId: + type: string + accessGroupId: + type: string + projectId: + type: string + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + createdAt: + type: string + updatedAt: + type: string + required: + - accessGroupId + - createdAt + - projectId + - role + - teamId + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: access_group_id_or_name + in: path + required: true + schema: + type: string + examples: + id: + summary: Access group ID + value: ag_1a2b3c4d5e6f7g8h9i0j + name: + summary: Access group name + value: My Access Group + - name: project_id + in: path + required: true + schema: + type: string + example: prj_ndlgr43fadlPyCtREAqxxdyFK + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - role + properties: + role: + type: string + example: ADMIN + description: The project role that will be added to this Access Group. + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + - null + required: true + delete: + description: Allows deletion of an access group project + operationId: deleteAccessGroupProject + security: + - bearerToken: [] + summary: Delete an access group project + tags: + - access-groups + responses: + '200': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: access_group_id_or_name + in: path + required: true + schema: + type: string + examples: + id: + summary: Access group ID + value: ag_1a2b3c4d5e6f7g8h9i0j + name: + summary: Access group name + value: My Access Group + - name: project_id + in: path + required: true + schema: + type: string + example: prj_ndlgr43fadlPyCtREAqxxdyFK + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + access_groups: + id: vercel.access_groups.access_groups + name: access_groups + title: Access Groups + methods: + get: + operation: + $ref: '#/paths/~1v1~1access-groups~1{id_or_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1access-groups~1{id_or_name}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1access-groups~1{id_or_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1access-groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.accessGroups + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: next + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1access-groups/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_groups/methods/get' + - $ref: '#/components/x-stackQL-resources/access_groups/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/access_groups/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/access_groups/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/access_groups/methods/delete' + replace: [] + access_group_members: + id: vercel.access_groups.access_group_members + name: access_group_members + title: Access Group Members + methods: + list: + operation: + $ref: '#/paths/~1v1~1access-groups~1{id_or_name}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.members + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: next + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_group_members/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + access_group_projects: + id: vercel.access_groups.access_group_projects + name: access_group_projects + title: Access Group Projects + methods: + list: + operation: + $ref: '#/paths/~1v1~1access-groups~1{id_or_name}~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.projects + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: next + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1access-groups~1{access_group_id_or_name}~1projects/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1access-groups~1{access_group_id_or_name}~1projects~1{project_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1access-groups~1{access_group_id_or_name}~1projects~1{project_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1access-groups~1{access_group_id_or_name}~1projects~1{project_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_group_projects/methods/get' + - $ref: '#/components/x-stackQL-resources/access_group_projects/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/access_group_projects/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/access_group_projects/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/access_group_projects/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/ai_gateway.yaml b/providers/src/vercel/v00.00.00000/services/ai_gateway.yaml new file mode 100644 index 00000000..d3356a69 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/ai_gateway.yaml @@ -0,0 +1,1244 @@ +openapi: 3.0.3 +info: + title: ai_gateway API + description: vercel ai_gateway API + version: 0.0.1 +paths: + /v1/ai-gateway/virtual-model-configs: + post: + description: Create a virtual model config (VMC) + operationId: createAiGatewayVirtualModelConfig + security: + - bearerToken: [] + summary: Create virtual model config + tags: + - api-ai-gateway + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayVirtualModelConfig' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + get: + description: Get a virtual model config + operationId: getAiGatewayVirtualModelConfig + security: + - bearerToken: [] + summary: Get virtual model config + tags: + - api-ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + ownerId: + type: string + description: Team (owner) that owns this VMC. + virtualModelSlug: + type: string + description: Client-facing alias used as the model slug in Gateway calls. + displayName: + type: string + description: Human-readable name for UI. + description: + type: string + description: Optional description for UI. + deleted: + type: boolean + enum: + - false + - true + description: Whether this VMC is soft-deleted. + status: + type: string + description: 'UI lifecycle status: draft, active, or archived.' + visibility: + type: string + description: 'Visibility in listings: public, internal, or stealth.' + updatedBy: + type: string + description: User id that last updated this VMC. + kind: + type: string + description: 'VMC kind: alias, relay, or router.' + baseUrl: + type: string + description: 'For kind=relay: URL the gateway forwards requests to as a transparent proxy.' + instanceId: + type: string + description: The concrete model-provider instance this VMC resolves to. + providerOrder: + items: + type: string + type: array + description: Ordered list of providers to try as fallbacks on failure. + providerOnly: + items: + type: string + type: array + description: Restrict routing to only these providers. + providerOptions: + additionalProperties: + $ref: '#/components/schemas/AiGatewayProviderOptionBag' + type: object + description: Arbitrary per-provider AI SDK options, keyed by gateway provider slug. + inferenceRegion: + properties: + providers: + additionalProperties: + nullable: true + properties: + scope: + type: string + enum: + - global + - specific + - zone + description: 'Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`.' + geoRegion: + type: string + description: Geo zone (e.g. "us", "eu"). + providerRegion: + type: string + description: Provider-specific region identifier. + type: object + description: Per-provider region overrides keyed by provider slug. + type: object + description: Per-provider region overrides keyed by provider slug. + scope: + type: string + enum: + - global + - specific + - zone + description: 'Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`.' + geoRegion: + type: string + description: Geo zone (e.g. "us", "eu"). + providerRegion: + type: string + description: Provider-specific region identifier. + type: object + description: Region pinned on the VMC for system-credential routing (alias/router only). + modelSlug: + type: string + description: Canonical model slug this VMC maps to (e.g. "creator/model"). Not used by kind=router. + models: + items: + type: string + type: array + description: 'For kind=router: ordered candidates, model slugs or router references. Otherwise: fallback models.' + selector: + type: string + enum: + - cost + - priority + - tps + - ttft + description: 'For kind=router: how to order candidates.' + requires: + items: + type: string + type: array + description: 'For kind=router: capability tags a candidate must have.' + byokCredentialIds: + items: + type: string + type: array + description: BYOK credential IDs allowed for this VMC. + observabilityTags: + items: + type: string + type: array + description: Observability tags attached to requests through this VMC. + sort: + type: string + enum: + - cost + - latency + - price + - throughput + - tps + - ttft + description: Rank eligible providers by an attribute. + has: + items: + type: string + enum: + - implicit-caching + - vision + description: Limit providers to those with these features. + type: array + description: Limit providers to those with these features. + caching: + type: string + enum: + - auto + description: Use caching if available. + serviceTier: + type: string + enum: + - fast + - flex + - priority + description: Service tier for providers that support it. + providerTimeouts: + properties: + byok: + additionalProperties: + type: number + type: object + type: object + description: Per-request provider timeouts in ms, keyed by provider slug for BYOK credentials. + zeroDataRetention: + type: boolean + enum: + - false + - true + description: Only use providers with zero data retention. + hipaaCompliant: + type: boolean + enum: + - false + - true + description: Only use HIPAA-compliant providers. + disallowPromptTraining: + type: boolean + enum: + - false + - true + description: Only use providers that will not train on your prompts. + speed: + type: string + enum: + - fast + description: Only use fastest providers with short timeouts. + allowFallbackFromFast: + type: boolean + enum: + - false + - true + description: Allow fallback from fast to standard providers on failure. + createdAt: + type: number + description: Creation timestamp (epoch ms). + updatedAt: + type: number + description: Last update timestamp (epoch ms). + virtualModelConfigs: + items: + $ref: '#/components/schemas/AiGatewayVirtualModelConfig' + type: array + description: The page of VMCs. + cursor: + nullable: true + type: string + description: Cursor for the next page, or null when no more pages remain. + required: + - createdAt + - deleted + - kind + - ownerId + - status + - updatedAt + - virtualModelSlug + - cursor + - virtualModelConfigs + type: object + description: Public response shape for virtual model configs. Used so OpenAPI generation can avoid ElectroDB's recursive EntityItem types. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: ownerId + in: query + schema: + type: string + - name: virtualModelSlug + in: query + schema: + type: string + - name: limit + in: query + schema: + type: integer + minimum: 1 + - name: cursor + in: query + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update a virtual model config + operationId: updateAiGatewayVirtualModelConfig + security: + - bearerToken: [] + summary: Update virtual model config + tags: + - api-ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayVirtualModelConfig' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Delete a virtual model config (soft delete) + operationId: deleteAiGatewayVirtualModelConfig + security: + - bearerToken: [] + summary: Delete virtual model config + tags: + - api-ai-gateway + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: ownerId + in: query + required: false + schema: + type: string + - name: virtualModelSlug + in: query + required: true + schema: + type: string + - name: updatedBy + in: query + required: false + schema: + type: string + - name: actingIp + in: query + required: false + schema: + type: string + - name: actingUserAgent + in: query + required: false + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/ai-gateway/virtual-model-configs/list: + get: + description: List virtual model configs. With `ownerId`, returns all of that team's VMCs. Without it, pages through VMCs across all teams (newest-first, `limit`/`cursor`). + operationId: listAiGatewayVirtualModelConfigs + security: + - bearerToken: [] + summary: List virtual model configs + tags: + - api-ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayVirtualModelConfigList' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: ownerId + in: query + schema: + type: string + - name: limit + in: query + schema: + type: integer + minimum: 1 + - name: cursor + in: query + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/ai-gateway/virtual-model-configs/{vmc_slug}: + get: + description: Get a virtual model config by path slug + operationId: getAiGatewayVirtualModelConfigBySlug + security: + - bearerToken: [] + summary: Get virtual model config + tags: + - api-ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayVirtualModelConfig' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: ownerId + in: query + required: false + schema: + type: string + - name: vmc_slug + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update a virtual model config by path slug + operationId: updateAiGatewayVirtualModelConfigBySlug + security: + - bearerToken: [] + summary: Update virtual model config + tags: + - api-ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayVirtualModelConfig' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: vmc_slug + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Delete a virtual model config by path slug (soft delete) + operationId: deleteAiGatewayVirtualModelConfigBySlug + security: + - bearerToken: [] + summary: Delete virtual model config + tags: + - api-ai-gateway + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: ownerId + in: query + required: false + schema: + type: string + - name: vmc_slug + in: path + required: true + schema: + type: string + - name: updatedBy + in: query + required: false + schema: + type: string + - name: actingIp + in: query + required: false + schema: + type: string + - name: actingUserAgent + in: query + required: false + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/ai-gateway/rules: + post: + description: Create a routing rule + operationId: createAiGatewayRule + security: + - bearerToken: [] + summary: Create rule + tags: + - ai-gateway + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayRule' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + get: + description: List the authenticated team's routing rules + operationId: listAiGatewayRules + security: + - bearerToken: [] + summary: List rules + tags: + - ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayRuleList' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: includeDisabled + in: query + schema: + type: string + enum: + - 'true' + - 'false' + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update a routing rule (enabled, action, or description) + operationId: updateAiGatewayRule + security: + - bearerToken: [] + summary: Update rule + tags: + - ai-gateway + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AiGatewayRule' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Delete a routing rule (soft delete) + operationId: deleteAiGatewayRule + security: + - bearerToken: [] + summary: Delete rule + tags: + - ai-gateway + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: ruleId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + AiGatewayVirtualModelConfig: + properties: + ownerId: + type: string + description: Team (owner) that owns this VMC. + virtualModelSlug: + type: string + description: Client-facing alias used as the model slug in Gateway calls. + displayName: + type: string + description: Human-readable name for UI. + description: + type: string + description: Optional description for UI. + deleted: + type: boolean + enum: + - false + - true + description: Whether this VMC is soft-deleted. + status: + type: string + description: 'UI lifecycle status: draft, active, or archived.' + visibility: + type: string + description: 'Visibility in listings: public, internal, or stealth.' + updatedBy: + type: string + description: User id that last updated this VMC. + kind: + type: string + description: 'VMC kind: alias, relay, or router.' + baseUrl: + type: string + description: 'For kind=relay: URL the gateway forwards requests to as a transparent proxy.' + instanceId: + type: string + description: The concrete model-provider instance this VMC resolves to. + providerOrder: + items: + type: string + type: array + description: Ordered list of providers to try as fallbacks on failure. + providerOnly: + items: + type: string + type: array + description: Restrict routing to only these providers. + providerOptions: + additionalProperties: + $ref: '#/components/schemas/AiGatewayProviderOptionBag' + type: object + description: Arbitrary per-provider AI SDK options, keyed by gateway provider slug. + inferenceRegion: + properties: + providers: + additionalProperties: + nullable: true + properties: + scope: + type: string + enum: + - global + - specific + - zone + description: 'Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`.' + geoRegion: + type: string + description: Geo zone (e.g. "us", "eu"). + providerRegion: + type: string + description: Provider-specific region identifier. + type: object + description: Per-provider region overrides keyed by provider slug. + type: object + description: Per-provider region overrides keyed by provider slug. + scope: + type: string + enum: + - global + - specific + - zone + description: 'Pin scope: `specific` (one provider region), `zone` (geo zone), or `global`.' + geoRegion: + type: string + description: Geo zone (e.g. "us", "eu"). + providerRegion: + type: string + description: Provider-specific region identifier. + type: object + description: Region pinned on the VMC for system-credential routing (alias/router only). + modelSlug: + type: string + description: Canonical model slug this VMC maps to (e.g. "creator/model"). Not used by kind=router. + models: + items: + type: string + type: array + description: 'For kind=router: ordered candidates, model slugs or router references. Otherwise: fallback models.' + selector: + type: string + enum: + - cost + - priority + - tps + - ttft + description: 'For kind=router: how to order candidates.' + requires: + items: + type: string + type: array + description: 'For kind=router: capability tags a candidate must have.' + byokCredentialIds: + items: + type: string + type: array + description: BYOK credential IDs allowed for this VMC. + observabilityTags: + items: + type: string + type: array + description: Observability tags attached to requests through this VMC. + sort: + type: string + enum: + - cost + - latency + - price + - throughput + - tps + - ttft + description: Rank eligible providers by an attribute. + has: + items: + type: string + enum: + - implicit-caching + - vision + description: Limit providers to those with these features. + type: array + description: Limit providers to those with these features. + caching: + type: string + enum: + - auto + description: Use caching if available. + serviceTier: + type: string + enum: + - fast + - flex + - priority + description: Service tier for providers that support it. + providerTimeouts: + properties: + byok: + additionalProperties: + type: number + type: object + type: object + description: Per-request provider timeouts in ms, keyed by provider slug for BYOK credentials. + zeroDataRetention: + type: boolean + enum: + - false + - true + description: Only use providers with zero data retention. + hipaaCompliant: + type: boolean + enum: + - false + - true + description: Only use HIPAA-compliant providers. + disallowPromptTraining: + type: boolean + enum: + - false + - true + description: Only use providers that will not train on your prompts. + speed: + type: string + enum: + - fast + description: Only use fastest providers with short timeouts. + allowFallbackFromFast: + type: boolean + enum: + - false + - true + description: Allow fallback from fast to standard providers on failure. + createdAt: + type: number + description: Creation timestamp (epoch ms). + updatedAt: + type: number + description: Last update timestamp (epoch ms). + required: + - createdAt + - deleted + - kind + - ownerId + - status + - updatedAt + - virtualModelSlug + type: object + description: Public response shape for virtual model configs. Used so OpenAPI generation can avoid ElectroDB's recursive EntityItem types. + AiGatewayVirtualModelConfigList: + properties: + virtualModelConfigs: + items: + $ref: '#/components/schemas/AiGatewayVirtualModelConfig' + type: array + description: The page of VMCs. + cursor: + nullable: true + type: string + description: Cursor for the next page, or null when no more pages remain. + required: + - cursor + - virtualModelConfigs + type: object + AiGatewayRule: + properties: + ownerId: + type: string + ruleId: + type: string + type: + type: string + enum: + - deny + - rewrite + match: + properties: + model: + type: string + type: object + action: + properties: + rewriteModel: + type: string + reason: + type: string + type: object + enabled: + type: boolean + enum: + - false + - true + deleted: + type: boolean + enum: + - false + - true + description: + type: string + createdBy: + type: string + updatedBy: + type: string + createdAt: + type: number + updatedAt: + type: number + required: + - createdAt + - enabled + - ownerId + - ruleId + - type + - updatedAt + type: object + description: Public response shape for AI Gateway routing rules. Used so OpenAPI generation can avoid ElectroDB's recursive EntityItem types. + AiGatewayRuleList: + properties: + rules: + items: + $ref: '#/components/schemas/AiGatewayRule' + type: array + required: + - rules + type: object + AiGatewayProviderOptionBag: + additionalProperties: true + type: object + description: Arbitrary per-provider AI SDK options, keyed by gateway provider slug. + x-stackQL-resources: + virtual_model_configs: + id: vercel.ai_gateway.virtual_model_configs + name: virtual_model_configs + title: Virtual Model Configs + methods: + create: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + get_by_query: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs~1list/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.virtualModelConfigs + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.cursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get_by_slug: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs~1{vmc_slug}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_by_slug: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs~1{vmc_slug}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_slug: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1virtual-model-configs~1{vmc_slug}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/get_by_slug' + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/update_by_slug' + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/delete_by_slug' + - $ref: '#/components/x-stackQL-resources/virtual_model_configs/methods/delete' + replace: [] + rules: + id: vercel.ai_gateway.rules + name: rules + title: Rules + methods: + create: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1rules/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1rules/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rules + request: + nativeCasing: camel + update: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1rules/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1ai-gateway~1rules/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rules/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/rules/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/rules/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/rules/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/aliases.yaml b/providers/src/vercel/v00.00.00000/services/aliases.yaml index 8736f64b..fe1a538d 100644 --- a/providers/src/vercel/v00.00.00000/services/aliases.yaml +++ b/providers/src/vercel/v00.00.00000/services/aliases.yaml @@ -1,134 +1,21 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: aliases API + description: vercel aliases API version: 0.0.1 - title: Vercel API - aliases - description: aliases -components: - schemas: - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - aliases: - id: vercel.aliases.aliases - name: aliases - title: Aliases - methods: - list_aliases: - operation: - $ref: '#/paths/~1v4~1aliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.aliases - _list_aliases: - operation: - $ref: '#/paths/~1v4~1aliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_alias: - operation: - $ref: '#/paths/~1v4~1aliases~1{idOrAlias}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_alias: - operation: - $ref: '#/paths/~1v2~1aliases~1{aliasId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/aliases/methods/get_alias' - - $ref: '#/components/x-stackQL-resources/aliases/methods/list_aliases' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/aliases/methods/delete_alias' - deployments: - id: vercel.aliases.deployments - name: deployments - title: Deployments - methods: - list_deployment_aliases: - operation: - $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.aliases - _list_deployment_aliases: - operation: - $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/get' - response: - mediaType: application/json - openAPIDocKey: '200' - assign_alias: - operation: - $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/deployments/methods/list_deployment_aliases' - insert: [] - update: [] - delete: [] paths: - /v4/aliases: + /v2/deployments/{id}/aliases: get: - description: 'Retrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases.' - operationId: listAliases + description: Retrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment. + operationId: listDeploymentAliases security: - bearerToken: [] - summary: List aliases + summary: List Deployment Aliases tags: - aliases responses: '200': - description: The paginated list of aliases + description: The list of aliases assigned to the deployment content: application/json: schema: @@ -136,92 +23,23 @@ paths: aliases: items: properties: + uid: + type: string + description: The unique identifier of the alias + example: 2WjyKQmM8ZnGcJsPWMrHRHrE alias: type: string - description: 'The alias name, it could be a `.vercel.app` subdomain or a custom domain' + description: The alias name, it could be a `.vercel.app` subdomain or a custom domain example: my-alias.vercel.app created: type: string format: date-time description: The date when the alias was created example: '2017-04-26T23:00:34.232Z' - createdAt: - type: number - description: The date when the alias was created in milliseconds since the UNIX epoch - example: 1540095775941 - creator: - properties: - uid: - type: string - description: ID of the user who created the alias - example: 96SnxkFiMyVKsK3pnoHfx3Hz - email: - type: string - description: Email of the user who created the alias - example: john-doe@gmail.com - username: - type: string - description: Username of the user who created the alias - example: john-doe - required: - - uid - - email - - username - type: object - description: Information of the user who created the alias - deletedAt: - type: number - description: The date when the alias was deleted in milliseconds since the UNIX epoch - example: 1540095775941 - deployment: - properties: - id: - type: string - description: The deployment unique identifier - example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx - url: - type: string - description: The deployment unique URL - example: my-instant-deployment-3ij3cxz9qr.now.sh - meta: - type: string - description: The deployment metadata - example: {} - required: - - id - - url - type: object - description: 'A map with the deployment ID, URL and metadata' - deploymentId: - nullable: true - type: string - description: The deployment ID - example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx - projectId: - nullable: true - type: string - description: The unique identifier of the project - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB redirect: nullable: true type: string description: Target destination domain for redirect when the alias is a redirect - redirectStatusCode: - nullable: true - type: number - enum: - - 301 - - 302 - - 307 - - 308 - description: Status code to be used on redirect - uid: - type: string - description: The unique identifier of the alias - updatedAt: - type: number - description: The date when the alias was updated in milliseconds since the UNIX epoch - example: 1540095775941 protectionBypass: additionalProperties: oneOf: @@ -234,6 +52,8 @@ paths: type: string enum: - shareable-link + expires: + type: number required: - createdAt - createdBy @@ -250,17 +70,17 @@ paths: access: type: string enum: - - requested - granted + - requested scope: type: string enum: - user required: + - access - createdAt - lastUpdatedAt - lastUpdatedBy - - access - scope type: object description: The protection bypass for the alias @@ -279,111 +99,548 @@ paths: - scope type: object description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + scope: + type: string + enum: + - email_invite + required: + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - scope + type: object + description: The protection bypass for the alias type: object description: The protection bypass for the alias required: - alias - created - - deploymentId - - projectId - uid type: object + description: A list of the aliases assigned to the deployment type: array - pagination: - $ref: '#/components/schemas/Pagination' + description: A list of the aliases assigned to the deployment required: - aliases - - pagination type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': + description: The deployment was not found + '410': description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - for-deployment parameters: - - name: domain - description: Get only aliases of the given domain name - in: query - schema: - description: Get only aliases of the given domain name - example: my-test-domain.com - items: - type: string - maxItems: 20 - oneOf: - - type: array - - type: string - - name: from - description: Get only aliases created after the provided timestamp - in: query - schema: - deprecated: true - description: Get only aliases created after the provided timestamp - example: 1540095775951 - type: number - - name: limit - description: Maximum number of aliases to list from a request - in: query - schema: - description: Maximum number of aliases to list from a request - example: 10 - type: number - - name: projectId - description: Filter aliases from the given `projectId` - in: query + - name: id + description: The ID of the deployment the aliases should be listed for + in: path + required: true schema: - description: Filter aliases from the given `projectId` - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa + description: The ID of the deployment the aliases should be listed for type: string - - name: since - description: Get aliases created after this JavaScript timestamp - in: query - schema: - description: Get aliases created after this JavaScript timestamp - example: 1540095775941 - type: number - - name: until - description: Get aliases created before this JavaScript timestamp - in: query - schema: - description: Get aliases created before this JavaScript timestamp - example: 1540095775951 - type: number - - name: rollbackDeploymentId - description: Get aliases that would be rolled back for the given deployment + - description: The Team identifier to perform the request on behalf of. in: query + name: teamId schema: - description: Get aliases that would be rolled back for the given deployment - example: dpl_XXX type: string - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string - '/v4/aliases/{idOrAlias}': - get: - description: Retrieves an Alias for the given host name or alias ID. - operationId: getAlias + example: my-team-url-slug + post: + description: Creates a new alias for the deployment resolved from the given deployment or alias ID or URL. The authenticated user or team must own this deployment. If the desired alias is already assigned to another deployment, then it will be removed from the old deployment and assigned to the new one. + operationId: assignAlias security: - bearerToken: [] - summary: Get an Alias + summary: Assign an Alias tags: - aliases responses: '200': - description: The alias information + description: The alias was successfully assigned to the deployment content: application/json: schema: properties: - alias: + uid: type: string - description: 'The alias name, it could be a `.vercel.app` subdomain or a custom domain' + description: The unique identifier of the alias + example: 2WjyKQmM8ZnGcJsPWMrHRHrE + alias: + type: string + description: The assigned alias name + example: my-alias.vercel.app + created: + type: string + format: date-time + description: The date when the alias was created + example: '2017-04-26T23:00:34.232Z' + oldDeploymentId: + nullable: true + type: string + description: The unique identifier of the previously aliased deployment, only received when the alias was used before + example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa + required: + - alias + - created + - uid + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The cert for the provided alias is not ready + The deployment is not READY and can not be aliased + The supplied alias is invalid + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + If no .vercel.app alias exists then we fail (nothing to mirror) + '404': + description: |- + The domain used for the alias was not found + The deployment was not found + '409': + description: |- + The provided alias is already assigned to the given deployment + The domain is not allowed to be used + '410': + description: '' + parameters: + - name: id + description: The deployment or alias ID or URL to assign from + in: path + required: true + schema: + description: The deployment or alias ID or URL to assign from + example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa + oneOf: + - type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + alias: + description: The alias we want to assign to the deployment defined in the URL + example: my-alias.vercel.app + type: string + redirect: + description: The redirect property will take precedence over the deployment id from the URL and consists of a hostname (like test.com) to which the alias should redirect using status code 307 + example: null + type: string + nullable: true + type: object + required: true + /v4/aliases: + get: + description: Retrieves a list of aliases for the authenticated User or Team. When `domain` is provided, only aliases for that domain will be returned. When `projectId` is provided, it will only return the given project aliases. + operationId: listAliases + security: + - bearerToken: [] + summary: List aliases + tags: + - aliases + responses: + '200': + description: The paginated list of aliases + content: + application/json: + schema: + properties: + aliases: + items: + properties: + alias: + type: string + description: The alias name, it could be a `.vercel.app` subdomain or a custom domain + example: my-alias.vercel.app + created: + type: string + format: date-time + description: The date when the alias was created + example: '2017-04-26T23:00:34.232Z' + createdAt: + type: number + description: The date when the alias was created in milliseconds since the UNIX epoch + example: 1540095775941 + creator: + properties: + uid: + type: string + description: ID of the user who created the alias + example: 96SnxkFiMyVKsK3pnoHfx3Hz + email: + type: string + description: Email of the user who created the alias + example: john-doe@gmail.com + username: + type: string + description: Username of the user who created the alias + example: john-doe + required: + - uid + type: object + description: Information of the user who created the alias + deletedAt: + type: number + description: The date when the alias was deleted in milliseconds since the UNIX epoch + example: 1540095775941 + nullable: true + deployment: + properties: + id: + type: string + description: The deployment unique identifier + example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx + url: + type: string + description: The deployment unique URL + example: my-instant-deployment-3ij3cxz9qr.now.sh + meta: + type: string + description: The deployment metadata + example: {} + required: + - id + type: object + description: A map with the deployment ID, URL and metadata + deploymentId: + nullable: true + type: string + description: The deployment ID + example: dpl_5m8CQaRBm3FnWRW1od3wKTpaECPx + projectId: + nullable: true + type: string + description: The unique identifier of the project + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + redirect: + nullable: true + type: string + description: Target destination domain for redirect when the alias is a redirect + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + description: Status code to be used on redirect + uid: + type: string + description: The unique identifier of the alias + updatedAt: + type: number + description: The date when the alias was updated in milliseconds since the UNIX epoch + example: 1540095775941 + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - shareable-link + expires: + type: number + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + access: + type: string + enum: + - granted + - requested + scope: + type: string + enum: + - user + required: + - access + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - alias-protection-override + required: + - createdAt + - createdBy + - scope + type: object + description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + scope: + type: string + enum: + - email_invite + required: + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - scope + type: object + description: The protection bypass for the alias + type: object + description: The protection bypass for the alias + microfrontends: + properties: + defaultApp: + properties: + projectId: + type: string + required: + - projectId + type: object + applications: + oneOf: + - items: + properties: + fallbackHost: + type: string + description: This is always set. In production it is used as a pointer to each apps production deployment. For pre-production, it's used as the fallback if there is no deployment for the branch. + projectId: + type: string + description: The project ID of the microfrontends application. + required: + - fallbackHost + - projectId + type: object + description: A list of the deployment routing information for each project. + type: array + description: A list of the deployment routing information for each project. + - items: + properties: + fallbackHost: + type: string + description: This is always set. For branch aliases, it's used as the fallback if there is no deployment for the branch. + branchAlias: + type: string + description: Could point to a branch without a deployment if the project was never deployed. The proxy will fallback to the fallbackHost if there is no deployment. + projectId: + type: string + description: The project ID of the microfrontends application. + required: + - branchAlias + - fallbackHost + - projectId + type: object + description: A list of the deployment routing information for each project. + type: array + description: A list of the deployment routing information for each project. + - items: + properties: + deploymentId: + type: string + description: This is the deployment for the same commit, it could be a cancelled deployment. The proxy will fallback to the branchDeploymentId and then the fallbackDeploymentId. + branchDeploymentId: + type: string + description: This is the latest non-cancelled deployment of the branch alias at the time the commit alias was created. It is possible there is no deployment for the branch, or this was set before the deployment was canceled, in which case this will point to a cancelled deployment, in either case the proxy will fallback to the fallbackDeploymentId. + fallbackDeploymentId: + type: string + description: This is the deployment of the fallback host at the time the commit alias was created. It is possible for this to be a deleted deployment, in which case the proxy will show that the deployment is deleted. It will not use the fallbackHost, as a future deployment on the fallback host could be invalid for this deployment, and it could lead to confusion / incorrect behavior for the commit alias. + fallbackHost: + type: string + description: Temporary for backwards compatibility. Can remove when metadata change is released + branchAlias: + type: string + projectId: + type: string + description: The project ID of the microfrontends application. + required: + - projectId + type: object + description: A list of the deployment routing information for each project. + type: array + description: A list of the deployment routing information for each project. + required: + - applications + - defaultApp + type: object + description: The microfrontends for the alias including the routing configuration + required: + - alias + - created + - deploymentId + - projectId + - uid + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - aliases + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - list + parameters: + - name: domain + description: Get only aliases of the given domain name + in: query + schema: + description: Get only aliases of the given domain name + example: my-test-domain.com + maxItems: 20 + oneOf: + - type: array + items: + type: string + - type: string + - name: from + description: Get only aliases created after the provided timestamp + in: query + schema: + deprecated: true + description: Get only aliases created after the provided timestamp + example: 1540095775951 + type: number + - name: limit + description: Maximum number of aliases to list from a request + in: query + schema: + description: Maximum number of aliases to list from a request + example: 10 + type: number + - name: projectId + description: Filter aliases from the given `projectId` + in: query + schema: + description: Filter aliases from the given `projectId` + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + type: string + - name: since + description: Get aliases created after this JavaScript timestamp + in: query + schema: + description: Get aliases created after this JavaScript timestamp + example: 1540095775941 + type: number + - name: until + description: Get aliases created before this JavaScript timestamp + in: query + schema: + description: Get aliases created before this JavaScript timestamp + example: 1540095775951 + type: number + - name: rollbackDeploymentId + description: Get aliases that would be rolled back for the given deployment + in: query + schema: + description: Get aliases that would be rolled back for the given deployment + example: dpl_XXX + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v4/aliases/{id_or_alias}: + get: + description: Retrieves an Alias for the given host name or alias ID. + operationId: getAlias + security: + - bearerToken: [] + summary: Get an Alias + tags: + - aliases + responses: + '200': + description: The alias information + content: + application/json: + schema: + properties: + alias: + type: string + description: The alias name, it could be a `.vercel.app` subdomain or a custom domain example: my-alias.vercel.app created: type: string @@ -394,6 +651,7 @@ paths: type: number description: The date when the alias was created in milliseconds since the UNIX epoch example: 1540095775941 + nullable: true creator: properties: uid: @@ -410,14 +668,13 @@ paths: example: john-doe required: - uid - - email - - username type: object description: Information of the user who created the alias deletedAt: type: number description: The date when the alias was deleted in milliseconds since the UNIX epoch example: 1540095775941 + nullable: true deployment: properties: id: @@ -434,9 +691,8 @@ paths: example: {} required: - id - - url type: object - description: 'A map with the deployment ID, URL and metadata' + description: A map with the deployment ID, URL and metadata deploymentId: nullable: true type: string @@ -459,6 +715,7 @@ paths: - 302 - 307 - 308 + - null description: Status code to be used on redirect uid: type: string @@ -467,6 +724,7 @@ paths: type: number description: The date when the alias was updated in milliseconds since the UNIX epoch example: 1540095775941 + nullable: true protectionBypass: additionalProperties: oneOf: @@ -479,6 +737,8 @@ paths: type: string enum: - shareable-link + expires: + type: number required: - createdAt - createdBy @@ -495,17 +755,17 @@ paths: access: type: string enum: - - requested - granted + - requested scope: type: string enum: - user required: + - access - createdAt - lastUpdatedAt - lastUpdatedBy - - access - scope type: object description: The protection bypass for the alias @@ -524,8 +784,101 @@ paths: - scope type: object description: The protection bypass for the alias + - properties: + createdAt: + type: number + lastUpdatedAt: + type: number + lastUpdatedBy: + type: string + scope: + type: string + enum: + - email_invite + required: + - createdAt + - lastUpdatedAt + - lastUpdatedBy + - scope + type: object + description: The protection bypass for the alias type: object description: The protection bypass for the alias + microfrontends: + properties: + defaultApp: + properties: + projectId: + type: string + required: + - projectId + type: object + applications: + oneOf: + - items: + properties: + fallbackHost: + type: string + description: This is always set. In production it is used as a pointer to each apps production deployment. For pre-production, it's used as the fallback if there is no deployment for the branch. + projectId: + type: string + description: The project ID of the microfrontends application. + required: + - fallbackHost + - projectId + type: object + description: A list of the deployment routing information for each project. + type: array + description: A list of the deployment routing information for each project. + - items: + properties: + fallbackHost: + type: string + description: This is always set. For branch aliases, it's used as the fallback if there is no deployment for the branch. + branchAlias: + type: string + description: Could point to a branch without a deployment if the project was never deployed. The proxy will fallback to the fallbackHost if there is no deployment. + projectId: + type: string + description: The project ID of the microfrontends application. + required: + - branchAlias + - fallbackHost + - projectId + type: object + description: A list of the deployment routing information for each project. + type: array + description: A list of the deployment routing information for each project. + - items: + properties: + deploymentId: + type: string + description: This is the deployment for the same commit, it could be a cancelled deployment. The proxy will fallback to the branchDeploymentId and then the fallbackDeploymentId. + branchDeploymentId: + type: string + description: This is the latest non-cancelled deployment of the branch alias at the time the commit alias was created. It is possible there is no deployment for the branch, or this was set before the deployment was canceled, in which case this will point to a cancelled deployment, in either case the proxy will fallback to the fallbackDeploymentId. + fallbackDeploymentId: + type: string + description: This is the deployment of the fallback host at the time the commit alias was created. It is possible for this to be a deleted deployment, in which case the proxy will show that the deployment is deleted. It will not use the fallbackHost, as a future deployment on the fallback host could be invalid for this deployment, and it could lead to confusion / incorrect behavior for the commit alias. + fallbackHost: + type: string + description: Temporary for backwards compatibility. Can remove when metadata change is released + branchAlias: + type: string + projectId: + type: string + description: The project ID of the microfrontends application. + required: + - projectId + type: object + description: A list of the deployment routing information for each project. + type: array + description: A list of the deployment routing information for each project. + required: + - applications + - defaultApp + type: object + description: The microfrontends for the alias including the routing configuration required: - alias - created @@ -536,11 +889,13 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: The alias was not found + '410': + description: '' parameters: - name: from description: Get the alias only if it was created after the provided timestamp @@ -551,7 +906,7 @@ paths: description: Get the alias only if it was created after the provided timestamp example: 1540095775951 type: number - - name: idOrAlias + - name: id_or_alias description: The alias or alias ID to be retrieved in: path required: true @@ -583,277 +938,308 @@ paths: description: Get the alias only if it was created before this JavaScript timestamp example: 1540095775951 type: number - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v2/aliases/{aliasId}': - delete: - description: Delete an Alias with the specified ID. - operationId: deleteAlias - security: - - bearerToken: [] - summary: Delete an Alias - tags: - - aliases - responses: - '200': - description: The alias was successfully removed - content: - application/json: - schema: - properties: - status: - type: string - enum: - - SUCCESS - required: - - status - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - '404': - description: The alias was not found - parameters: - - name: aliasId - description: The ID or alias that will be removed - in: path - required: true - schema: - example: 2WjyKQmM8ZnGcJsPWMrHRHrE - description: The ID or alias that will be removed - oneOf: - - type: string - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug schema: type: string - '/v2/deployments/{id}/aliases': - get: - description: Retrieves all Aliases for the Deployment with the given ID. The authenticated user or team must own the deployment. - operationId: listDeploymentAliases + example: my-team-url-slug + /v2/aliases/{alias_id}: + delete: + description: Delete an Alias with the specified ID. + operationId: deleteAlias security: - bearerToken: [] - summary: List Deployment Aliases + summary: Delete an Alias tags: - aliases responses: '200': - description: The list of aliases assigned to the deployment + description: The alias was successfully removed content: application/json: schema: properties: - aliases: - items: - properties: - uid: - type: string - description: The unique identifier of the alias - example: 2WjyKQmM8ZnGcJsPWMrHRHrE - alias: - type: string - description: 'The alias name, it could be a `.vercel.app` subdomain or a custom domain' - example: my-alias.vercel.app - created: - type: string - format: date-time - description: The date when the alias was created - example: '2017-04-26T23:00:34.232Z' - redirect: - nullable: true - type: string - description: Target destination domain for redirect when the alias is a redirect - protectionBypass: - additionalProperties: - oneOf: - - properties: - createdAt: - type: number - createdBy: - type: string - scope: - type: string - enum: - - shareable-link - required: - - createdAt - - createdBy - - scope - type: object - description: The protection bypass for the alias - - properties: - createdAt: - type: number - lastUpdatedAt: - type: number - lastUpdatedBy: - type: string - access: - type: string - enum: - - requested - - granted - scope: - type: string - enum: - - user - required: - - createdAt - - lastUpdatedAt - - lastUpdatedBy - - access - - scope - type: object - description: The protection bypass for the alias - - properties: - createdAt: - type: number - createdBy: - type: string - scope: - type: string - enum: - - alias-protection-override - required: - - createdAt - - createdBy - - scope - type: object - description: The protection bypass for the alias - type: object - description: The protection bypass for the alias - required: - - uid - - alias - - created - type: object - description: A list of the aliases assigned to the deployment - type: array - description: A list of the aliases assigned to the deployment + status: + type: string + enum: + - SUCCESS required: - - aliases + - status type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': - description: The deployment was not found + description: The alias was not found + '410': + description: '' parameters: - - name: id - description: The ID of the deployment the aliases should be listed for + - name: alias_id + description: The ID or alias that will be removed in: path required: true schema: - example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa - description: The ID of the deployment the aliases should be listed for - type: string - - description: The Team identifier or slug to perform the request on behalf of. + example: 2WjyKQmM8ZnGcJsPWMrHRHrE + description: The ID or alias that will be removed + oneOf: + - type: string + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - post: - description: 'Creates a new alias for the deployment with the given deployment ID. The authenticated user or team must own this deployment. If the desired alias is already assigned to another deployment, then it will be removed from the old deployment and assigned to the new one.' - operationId: assignAlias + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /aliases/{id}/protection-bypass: + patch: + description: Update the protection bypass for the alias or deployment URL (used for user access & comment access for deployments). Used as shareable links and user scoped access for Vercel Authentication and also to allow external (logged in) people to comment on previews for Preview Comments (next-live-mode). + operationId: patchUrlProtectionBypass security: - bearerToken: [] - summary: Assign an Alias + summary: Update the protection bypass for a URL tags: - aliases responses: '200': - description: The alias was successfully assigned to the deployment + description: '' content: application/json: schema: - properties: - uid: - type: string - description: The unique identifier of the alias - example: 2WjyKQmM8ZnGcJsPWMrHRHrE - alias: - type: string - description: The assigned alias name - example: my-alias.vercel.app - created: - type: string - format: date-time - description: The date when the alias was created - example: '2017-04-26T23:00:34.232Z' - oldDeploymentId: - nullable: true - type: string - description: 'The unique identifier of the previously aliased deployment, only received when the alias was used before' - example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa - required: - - uid - - alias - - created + additionalProperties: true type: object '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. - The cert for the provided alias is not ready - The deployment is not READY and can not be aliased - The supplied alias is invalid '401': - description: '' - '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The request is not authorized. '403': - description: |- - You do not have permission to access this resource. - If no .vercel.app alias exists then we fail (nothing to mirror) + description: You do not have permission to access this resource. '404': - description: |- - The domain used for the alias was not found - The deployment was not found + description: '' '409': - description: The provided alias is already assigned to the given deployment + description: '' + '410': + description: '' + '428': + description: '' parameters: - name: id - description: The ID of the deployment the aliases should be listed for + description: The alias or deployment ID in: path required: true schema: - description: The ID of the deployment the aliases should be listed for - example: dpl_FjvFJncQHQcZMznrUm9EoB8sFuPa - oneOf: - - type: string - - description: The Team identifier or slug to perform the request on behalf of. + type: string + description: The alias or deployment ID + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: - properties: - alias: - description: The alias we want to assign to the deployment defined in the URL - example: my-alias.vercel.app - type: string - redirect: - description: The redirect property will take precedence over the deployment id from the URL and consists of a hostname (like test.com) to which the alias should redirect using status code 307 - example: null - type: string - nullable: true type: object + properties: + ttl: + description: Optional time the shareable link is valid for in seconds. If not provided, the shareable link will never expire. + type: number + maximum: 63072000 + revoke: + description: Optional instructions for revoking and regenerating a shareable link + type: object + properties: + secret: + description: Sharebale link to revoked + type: string + regenerate: + description: Whether or not a new shareable link should be created after the provided secret is revoked + type: boolean + required: + - secret + - regenerate + scope: + description: Instructions for creating a user scoped protection bypass + type: object + properties: + userId: + type: string + description: Specified user id for the scoped bypass. + email: + type: string + format: email + description: Specified email for the scoped bypass. + access: + enum: + - denied + - granted + description: Invitation status for the user scoped bypass. + anyOf: + - required: + - userId + - required: + - email + required: + - access + override: + type: object + properties: + scope: + enum: + - alias-protection-override + action: + enum: + - create + - revoke + required: + - scope + - action + additionalProperties: false + required: + - scope + - override +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + x-stackQL-resources: + deployment_aliases: + id: vercel.aliases.deployment_aliases + name: deployment_aliases + title: Deployment Aliases + methods: + list: + operation: + $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.aliases + request: + nativeCasing: camel + assign: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1deployments~1{id}~1aliases/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployment_aliases/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/deployment_aliases/methods/assign' + update: [] + delete: [] + replace: [] + aliases: + id: vercel.aliases.aliases + name: aliases + title: Aliases + methods: + list: + operation: + $ref: '#/paths/~1v4~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.aliases + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v4~1aliases~1{id_or_alias}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1aliases~1{alias_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_protection_bypass: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1aliases~1{id}~1protection-bypass/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/aliases/methods/get' + - $ref: '#/components/x-stackQL-resources/aliases/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/aliases/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/artifacts.yaml b/providers/src/vercel/v00.00.00000/services/artifacts.yaml index aff39073..dd1e07db 100644 --- a/providers/src/vercel/v00.00.00000/services/artifacts.yaml +++ b/providers/src/vercel/v00.00.00000/services/artifacts.yaml @@ -1,77 +1,8 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: artifacts API + description: vercel artifacts API version: 0.0.1 - title: Vercel API - artifacts - description: artifacts -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - artifacts: - id: vercel.artifacts.artifacts - name: artifacts - title: Artifacts - methods: - record_events: - operation: - $ref: '#/paths/~1v8~1artifacts~1events/post' - response: - mediaType: application/json - openAPIDocKey: '200' - status: - operation: - $ref: '#/paths/~1v8~1artifacts~1status/get' - response: - mediaType: application/json - openAPIDocKey: '200' - upload_artifact: - operation: - $ref: '#/paths/~1v8~1artifacts~1{hash}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - download_artifact: - operation: - $ref: '#/paths/~1v8~1artifacts~1{hash}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - artifact_exists: - operation: - $ref: '#/paths/~1v8~1artifacts~1{hash}/head' - response: - mediaType: application/json - openAPIDocKey: '200' - artifact_query: - operation: - $ref: '#/paths/~1v8~1artifacts/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] paths: /v8/artifacts/events: post: @@ -90,17 +21,17 @@ paths: One of the provided values in the request body is invalid. One of the provided values in the headers is invalid '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: |- - You do not have permission to access this resource. The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + You do not have permission to access this resource. + '410': + description: '' parameters: - in: header description: The continuous integration or delivery environment where this artifact is downloaded. @@ -119,12 +50,18 @@ paths: minimum: 0 maximum: 1 name: x-artifact-client-interactive - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query - required: true name: teamId schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -162,9 +99,10 @@ paths: type: number description: The time taken to generate the artifact. This should be sent as a body parameter on `HIT` events. example: 400 + required: true /v8/artifacts/status: get: - description: 'Check the status of Remote Caching for this principal. Returns a JSON-encoded status indicating if Remote Caching is enabled, disabled, or disabled due to usage limits.' + description: Check the status of Remote Caching for this principal. Returns a JSON-encoded status indicating if Remote Caching is enabled, disabled, or disabled due to usage limits. operationId: status security: - bearerToken: [] @@ -180,32 +118,33 @@ paths: properties: status: type: string - enum: - - disabled - - enabled - - over_limit - - paused required: - status type: object '400': description: '' '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query - required: true name: teamId schema: type: string - '/v8/artifacts/{hash}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v8/artifacts/{hash}: put: description: Uploads a cache artifact identified by the `hash` specified on the path. The cache artifact can then be downloaded with the provided `hash`. operationId: uploadArtifact @@ -227,7 +166,7 @@ paths: type: array description: Array of URLs where the artifact was updated example: - - 'https://api.vercel.com/v2/now/artifact/12HKQaOmR5t5Uy6vdcQsNIiZgHGB' + - https://api.vercel.com/v2/now/artifact/12HKQaOmR5t5Uy6vdcQsNIiZgHGB required: - urls type: object @@ -237,17 +176,17 @@ paths: One of the provided values in the headers is invalid File size is not valid '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: |- - You do not have permission to access this resource. The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + You do not have permission to access this resource. + '410': + description: '' parameters: - in: header description: The artifact size in bytes @@ -292,6 +231,22 @@ paths: example: Tc0BmHvJYMIYJ62/zx87YqO0Flxk+5Ovip25NY825CQ= maxLength: 600 name: x-artifact-tag + - in: header + description: The SHA of the source control revision that generated this artifact. + required: false + schema: + type: string + description: The SHA of the source control revision that generated this artifact. + maxLength: 200 + name: x-artifact-sha + - in: header + description: A hash representing uncommitted changes in the working directory when this artifact was generated. + required: false + schema: + type: string + description: A hash representing uncommitted changes in the working directory when this artifact was generated. + maxLength: 200 + name: x-artifact-dirty-hash - name: hash description: The artifact hash in: path @@ -300,18 +255,25 @@ paths: example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB description: The artifact hash type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/octet-stream: schema: - type: string - format: binary + $ref: '#/components/schemas/StackqlOctetStreamBody' + required: true + x-speakeasy-test: false get: description: Downloads a cache artifact indentified by its `hash` specified on the request path. The artifact is downloaded as an octet-stream. The client should verify the content-length header and response body. operationId: downloadArtifact @@ -334,19 +296,19 @@ paths: One of the provided values in the request query is invalid. One of the provided values in the headers is invalid '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: |- - You do not have permission to access this resource. The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + You do not have permission to access this resource. '404': description: The artifact was not found + '410': + description: '' parameters: - in: header description: The continuous integration or delivery environment where this artifact is downloaded. @@ -373,12 +335,18 @@ paths: example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB description: The artifact hash type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug head: description: Check that a cache artifact with the given `hash` exists. This request returns response headers only and is equivalent to a `GET` request to this endpoint where the response contains no body. operationId: artifactExists @@ -393,19 +361,19 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: |- - You do not have permission to access this resource. The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + You do not have permission to access this resource. '404': description: The artifact was not found + '410': + description: '' parameters: - name: hash description: The artifact hash @@ -415,12 +383,18 @@ paths: example: 12HKQaOmR5t5Uy6vdcQsNIiZgHGB description: The artifact hash type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug /v8/artifacts: post: description: Query information about an array of artifacts. @@ -446,6 +420,10 @@ paths: type: number tag: type: string + sha: + type: string + dirtyHash: + type: string required: - size - taskDurationMs @@ -465,24 +443,30 @@ paths: '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: |- - You do not have permission to access this resource. The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. + You do not have permission to access this resource. + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -496,3 +480,151 @@ paths: type: string description: artifact hashes type: array + example: + - 12HKQaOmR5t5Uy6vdcQsNIiZgHGB + - 34HKQaOmR5t5Uy6vasdasdasdasd + required: true + delete: + description: Deletes all cache artifacts stored for the authenticated team or user, clearing the Remote Cache. Subsequent builds will re-populate the cache. + operationId: deleteAllArtifacts + security: + - bearerToken: [] + summary: Delete all cache artifacts + tags: + - artifacts + responses: + '200': + description: Success. All cache artifacts for the account were deleted. + content: + application/json: + schema: + properties: + deletedCount: + type: number + required: + - deletedCount + type: object + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + artifacts: + id: vercel.artifacts.artifacts + name: artifacts + title: Artifacts + methods: + record_events: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v8~1artifacts~1events/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + upload: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v8~1artifacts~1{hash}/put' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + mediaType: application/octet-stream + required: + - value + schema_override: + $ref: '#/components/schemas/StackqlOctetStreamBody' + transform: + type: golang_template_json_v0.1.0 + body: '{{ .value }}' + nativeCasing: camel + download: + operation: + $ref: '#/paths/~1v8~1artifacts~1{hash}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + query: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v8~1artifacts/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_all: + operation: + $ref: '#/paths/~1v8~1artifacts/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/artifacts/methods/delete_all' + replace: [] + artifact_status: + id: vercel.artifacts.artifact_status + name: artifact_status + title: Artifact Status + methods: + get: + operation: + $ref: '#/paths/~1v8~1artifacts~1status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/artifact_status/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + schemas: + StackqlOctetStreamBody: + type: object + description: 'Raw request body for octet-stream uploads: the text in `value` is sent verbatim as the request body.' + properties: + value: + type: string + description: Raw body content (sent as-is). + required: + - value +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/authentication.yaml b/providers/src/vercel/v00.00.00000/services/authentication.yaml index 5b3871d4..025753fe 100644 --- a/providers/src/vercel/v00.00.00000/services/authentication.yaml +++ b/providers/src/vercel/v00.00.00000/services/authentication.yaml @@ -1,205 +1,180 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: authentication API + description: vercel authentication API version: 0.0.1 - title: Vercel API - authentication - description: authentication -components: - schemas: - AuthToken: - properties: - id: - type: string - description: The unique identifier of the token. - example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 - name: - type: string - description: The human-readable name of the token. - type: - type: string - description: The type of the token. - example: oauth2-token - origin: - type: string - description: The origin of how the token was created. - example: github - scopes: - items: - oneOf: - - properties: - type: - type: string - enum: - - user - origin: +paths: + /api-keys: + post: + description: '' + operationId: createApiKeys + security: [] + tags: [] + responses: + '200': + description: Successfully created an API key. + content: + application/json: + schema: + type: object + properties: + apiKeyString: + description: The API key's actual value. This value is only provided in this response, and can never be retrieved again in the future. Be sure to save it somewhere safe! + example: uRKJSTt0L4RaSkiMj41QTkxM type: string - enum: - - saml - - github - - gitlab - - bitbucket - - email - - manual - createdAt: - type: number - expiresAt: - type: number + apiKey: + $ref: '#/components/schemas/APIKey' required: - - type - - origin - - createdAt + - apiKeyString + - apiKey + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + content: + application/json: + schema: type: object - description: The access scopes granted to the token. - - properties: - type: - type: string - enum: - - team - teamId: - type: string - origin: - type: string - enum: - - saml - - github - - gitlab - - bitbucket - - email - - manual - createdAt: - type: number - expiresAt: - type: number + properties: + error: + type: object + properties: + code: + type: string + message: + type: string + required: + - code + - message required: - - type - - teamId - - origin - - createdAt + - error + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: type: object - description: The access scopes granted to the token. - type: array - description: The access scopes granted to the token. - expiresAt: - type: number - description: Timestamp (in milliseconds) of when the token expires. - example: 1632816536002 - activeAt: - type: number - description: Timestamp (in milliseconds) of when the token was most recently used. - example: 1632816536002 - createdAt: - type: number - description: Timestamp (in milliseconds) of when the token was created. - example: 1632816536002 - required: - - id - - name - - type - - activeAt - - createdAt - type: object - description: Authentication token metadata. - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - user_tokens: - id: vercel.authentication.user_tokens - name: user_tokens - title: User Tokens - methods: - list_auth_tokens: - operation: - $ref: '#/paths/~1v5~1user~1tokens/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.tokens - _list_auth_tokens: - operation: - $ref: '#/paths/~1v5~1user~1tokens/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_auth_token: - operation: - $ref: '#/paths/~1v3~1user~1tokens/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_auth_token: - operation: - $ref: '#/paths/~1v5~1user~1tokens~1{tokenId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_auth_token: - operation: - $ref: '#/paths/~1v3~1user~1tokens~1{tokenId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - verify_token: - operation: - $ref: '#/paths/~1registration~1verify/get' - response: - mediaType: application/json - openAPIDocKey: '200' - email_login: - operation: - $ref: '#/paths/~1registration/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/user_tokens/methods/get_auth_token' - - $ref: '#/components/x-stackQL-resources/user_tokens/methods/list_auth_tokens' - insert: - - $ref: '#/components/x-stackQL-resources/user_tokens/methods/create_auth_token' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/user_tokens/methods/delete_auth_token' -paths: - /v5/user/tokens: + properties: + error: + type: object + properties: + code: + type: string + message: + type: string + required: + - code + - message + required: + - error + '409': + description: '' + '410': + description: '' + '429': + description: '' + content: + application/json: + schema: + type: object + properties: + error: + type: object + properties: + code: + type: string + name: + type: string + message: + type: string + limit: + type: number + required: + - code + - name + - message + - limit + required: + - error + '500': + description: '' + content: + application/json: + schema: + type: object + properties: + error: + type: object + properties: + code: + type: string + message: + type: string + required: + - code + - message + required: + - error + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + required: + - purpose + properties: + purpose: + type: string + description: The API key's purpose, which restricts how it can be used. + projectId: + type: string + description: An optional project to restrict the API key to. + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + name: + type: string + description: An optional name for the API key. + example: API Key for App 123 + expiresAt: + type: number + description: The API key's expiration, expressed as a UNIX timestamp in milliseconds. + aiGatewayQuota: + type: object + description: Optional AI Gateway quota configuration for the API key. + properties: + limitAmount: + type: number + minimum: 1 + description: The quota limit amount. + includeByokInQuota: + type: boolean + default: false + description: Whether to include BYOK (Bring Your Own Key) usage in the quota. + refreshPeriod: + type: string + enum: + - daily + - weekly + - monthly + - none + default: none + description: How often the quota refreshes. + alertThresholds: + type: array + items: + type: number + enum: + - 50 + - 75 + - 100 + description: Spend percentages (a subset of [50, 75, 100]) at which to send a spend alert. + required: + - limitAmount + metadata: + type: object + description: Optional generic metadata for the API key. The accepted shape depends on the key's `purpose` and is validated on creation; for `ai-gateway` keys this accepts `environment`. + additionalProperties: true + /v6/user/tokens: get: description: Retrieve a list of the current User's authentication tokens. operationId: listAuthTokens @@ -219,24 +194,42 @@ paths: items: $ref: '#/components/schemas/AuthToken' type: array - testingToken: - $ref: '#/components/schemas/AuthToken' pagination: - $ref: '#/components/schemas/Pagination' + properties: + count: + type: number + next: + nullable: true + type: string + prev: + nullable: true + type: string + required: + - count + - next + - prev + type: object required: - - tokens - pagination + - tokens type: object '400': description: '' '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - list parameters: [] /v3/user/tokens: post: - description: 'Creates and returns a new authentication token for the currently authenticated User. The `bearerToken` property is only provided once, in the response body, so be sure to save it on the client for use with API requests.' + description: Creates and returns a new authentication token for the currently authenticated User. The `bearerToken` property is only provided once, in the response body, so be sure to save it on the client for use with API requests. operationId: createAuthToken security: - bearerToken: [] @@ -254,60 +247,54 @@ paths: $ref: '#/components/schemas/AuthToken' bearerToken: type: string - description: 'The authentication token''s actual value. This token is only provided in this response, and can never be retrieved again in the future. Be sure to save it somewhere safe!' + description: The authentication token's actual value. This token is only provided in this response, and can never be retrieved again in the future. Be sure to save it somewhere safe! example: uRKJSTt0L4RaSkiMj41QTkxM required: - - token - bearerToken + - token type: object description: Successful response. '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: - oneOf: - - type: object - additionalProperties: false - required: - - name - properties: - name: - type: string - expiresAt: - type: number - - type: object - additionalProperties: false - required: - - type - - name - properties: - type: - enum: - - oauth2-token - name: - type: string - clientId: - type: string - installationId: - type: string - expiresAt: - type: number - '/v5/user/tokens/{tokenId}': + type: object + additionalProperties: false + required: + - name + properties: + name: + type: string + expiresAt: + type: number + projectId: + type: string + description: The ID of the project to scope this token to + required: true + /v5/user/tokens/{token_id}: get: description: Retrieve metadata about an authentication token belonging to the currently authenticated User. operationId: getAuthToken @@ -331,22 +318,26 @@ paths: description: Successful response. '400': description: One of the provided values in the request query is invalid. + '401': + description: '' '403': description: You do not have permission to access this resource. '404': description: Token not found with the requested `tokenId`. + '410': + description: '' parameters: - - name: tokenId - description: 'The identifier of the token to retrieve. The special value \"current\" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with.' + - name: token_id + description: The identifier of the token to retrieve. The special value "current" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with. in: path required: true schema: type: string - description: 'The identifier of the token to retrieve. The special value \"current\" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with.' + description: The identifier of the token to retrieve. The special value "current" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with. example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 - '/v3/user/tokens/{tokenId}': + /v3/user/tokens/{token_id}: delete: - description: 'Invalidate an authentication token, such that it will no longer be valid for future HTTP requests.' + description: Invalidate an authentication token, such that it will no longer be valid for future HTTP requests. operationId: deleteAuthToken security: - bearerToken: [] @@ -376,157 +367,403 @@ paths: description: You do not have permission to access this resource. '404': description: Token not found with the requested `tokenId`. + '410': + description: '' parameters: - - name: tokenId - description: 'The identifier of the token to invalidate. The special value \"current\" may be supplied, which invalidates the token that the HTTP request was authenticated with.' + - name: token_id + description: The identifier of the token to invalidate. The special value "current" may be supplied, which invalidates the token that the HTTP request was authenticated with. in: path required: true schema: type: string - description: 'The identifier of the token to invalidate. The special value \"current\" may be supplied, which invalidates the token that the HTTP request was authenticated with.' + description: The identifier of the token to invalidate. The special value "current" may be supplied, which invalidates the token that the HTTP request was authenticated with. example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 - /registration/verify: - get: - description: Verify the user accepted the login request and get a authentication token. The user email address and the token received after requesting the login must be added to the URL as a query string with the names `email` and `token`. - operationId: verifyToken - security: [] - summary: Verify a login request to get an authentication token - tags: - - authentication - responses: - '200': - description: The verification was successful. - content: - application/json: - schema: - properties: - token: - type: string - description: The user authentication token that can be used to perform API requests. - example: 1ioXyz9Ue4xdCYGROet1dlKd - email: +components: + schemas: + APIKey: + description: Information about the newly created API key. + type: object + properties: + id: + description: The unique identifier of the API key. + example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 + type: string + name: + description: The human-readable name of the API key. + example: API Key for AI Gateway + type: string + partialKey: + description: The last few characters of the API key string, for helping identify the API key. + example: t7V + type: string + teamId: + description: The ID of the team that the API key grants access to. + example: team_123a6c5209bc3778245d011443644c8d27dc2c50 + type: string + purpose: + description: The API key's purpose, i.e. what resources it can be used with. + example: ai-gateway + type: string + projectId: + description: |- + The ID of the project that this API key grants access to. + + When this is unset, the API key grants access to all projects in the team. + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + type: string + nullable: true + expiresAt: + description: Timestamp (in milliseconds) of when the API key expires. + example: 1632816536002 + type: number + nullable: true + activeAt: + description: Timestamp (in milliseconds) of when the API key was most recently used. + example: 1632816536002 + type: number + createdAt: + description: Timestamp (in milliseconds) of when the API key was created. + example: 1632816536002 + type: number + createdBy: + description: The ID of the user who created the API key. + example: ZspSRT4ljIEEmMHgoDwKWDei + type: string + leakedAt: + description: Timestamp (in milliseconds) of when the API key was marked as leaked. + example: 1632816536002 + type: number + nullable: true + leakedUrl: + description: URL where the API key was discovered as leaked. + type: string + nullable: true + createdByAppId: + description: The ID of the app that created the API key, if any + type: string + nullable: true + quota: + $ref: '#/components/schemas/APIKeyQuota' + metadata: + description: |- + Generic metadata attached to the API key. + + The accepted shape depends on the key's `purpose` and is validated when the key is created. For `ai-gateway` keys this carries `environment` and `spendAttribution`. + type: object + patternProperties: + ^(.*)$: {} + required: + - id + - name + - partialKey + - teamId + - purpose + - projectId + - expiresAt + - activeAt + - createdAt + - createdBy + - leakedAt + - leakedUrl + - createdByAppId + AuthToken: + properties: + id: + type: string + description: The unique identifier of the token. + example: 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391 + name: + type: string + description: The human-readable name of the token. + type: + type: string + description: The type of the token. + example: oauth2-token + prefix: + type: string + description: The token's prefix, for identification purposes. + example: vcp_ + suffix: + type: string + description: The last few characters of the token, for identification purposes. + example: abc123 + origin: + type: string + description: The origin of how the token was created. + example: github + scopes: + items: + oneOf: + - properties: + type: type: string - description: Email address of the authenticated user. - example: amy@example.com - teamId: + enum: + - user + sudo: + properties: + origin: + type: string + enum: + - email-otp + - otp + - recovery-code + - totp + - webauthn + description: Possible step-up auth origins + verifiedAt: + type: number + expiresAt: + type: number + required: + - expiresAt + - origin + type: object + origin: type: string - description: 'When completing SAML Single Sign-On authentication, this will be the ID of the Team that was authenticated for.' - example: team_LLHUOMOoDlqOp8wPE4kFo9pE + enum: + - app + - apple + - bitbucket + - chatgpt + - email + - emu + - github + - github-webhook + - gitlab + - google + - invite + - manual + - otp + - passkey + - saml + - sms + - token-exchange-oidc + createdAt: + type: number + expiresAt: + type: number required: - - token - - email + - createdAt + - type type: object - '400': - description: |- - One of the provided values in the request query is invalid. - The slug is already in use - The provided token exists but is not yet confirmed - '403': - description: |- - You do not have permission to access this resource. - The verification sso token is invalid or not found - The verification token is invalid or not found - '404': - description: '' - parameters: - - name: email - description: Email to verify the login. - in: query - required: false - schema: - type: string - description: Email to verify the login. - - name: token - description: The token returned when the login was requested. - in: query - required: true - schema: - type: string - description: The token returned when the login was requested. - - name: tokenName - description: The desired name for the token. It will be displayed on the user account details. - in: query - required: false - schema: - type: string - example: Your Client App Name - description: The desired name for the token. It will be displayed on the user account details. - - name: ssoUserId - description: 'The SAML Profile ID, when connecting a SAML Profile to a Team member for the first time.' - in: query - required: false - schema: - type: string - description: 'The SAML Profile ID, when connecting a SAML Profile to a Team member for the first time.' - - name: teamName - description: The name of this user's team. - in: query - required: false - schema: - type: string - description: The name of this user's team. - - name: teamSlug - description: The slug for this user's team. - in: query - required: false - schema: - type: string - description: The slug for this user's team. - - name: teamPlan - description: The plan for this user's team (pro or hobby). - in: query - required: false - schema: - type: string - enum: - - pro - - hobby - description: The plan for this user's team (pro or hobby). - /registration: - post: - description: Request a new login for a user to get a token. This will respond with a verification token and send an email to confirm the request. Once confirmed you can use the verification token to get an authentication token. - operationId: emailLogin - security: [] - summary: Login with email - tags: - - authentication - responses: - '200': - description: The request was successful and an email was sent - content: - application/json: - schema: - properties: - token: + description: The access scopes granted to the token. + - properties: + type: + type: string + enum: + - team + teamId: type: string - description: The token used to verify the user accepted the login request - example: T1dmvPu36nmyYisXAs7IRzcR - securityCode: + origin: type: string - description: The code the user is going to receive on the email. **Must** be displayed to the user so they can verify the request is the correct. - example: Practical Saola + enum: + - app + - apple + - bitbucket + - chatgpt + - email + - emu + - github + - github-webhook + - gitlab + - google + - invite + - manual + - otp + - passkey + - saml + - sms + - token-exchange-oidc + createdAt: + type: number + expiresAt: + type: number required: - - token - - securityCode + - createdAt + - teamId + - type type: object - '400': - description: |- - One of the provided values in the request body is invalid. - The provided email is invalid because the owner is blocked - parameters: [] - requestBody: - content: - application/json: - schema: - properties: - email: - example: user@mail.com - description: The user email. - type: string - tokenName: - example: Your Client App Name - description: The desired name for the token. It will be displayed on the user account details. - type: string - required: - - email - type: object + description: The access scopes granted to the token. + type: array + description: The access scopes granted to the token. + createdAt: + type: number + description: Timestamp (in milliseconds) of when the token was created. + example: 1632816536002 + activeAt: + type: number + description: Timestamp (in milliseconds) of when the token was most recently used. + example: 1632816536002 + expiresAt: + type: number + description: Timestamp (in milliseconds) of when the token expires. + example: 1632816536002 + revokedAt: + type: number + description: Timestamp (in milliseconds) of when the token was revoked. + example: 1632816536002 + leakedAt: + type: number + description: Timestamp (in milliseconds) of when the token was marked as leaked. + example: 1632816536002 + leakedUrl: + type: string + description: URL where the token was discovered as leaked. + required: + - activeAt + - createdAt + - id + - name + - type + type: object + description: Authentication token metadata. + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + APIKeyQuota: + description: AI Gateway quota associated with an API key. + type: object + properties: + quotaEntityId: + description: The unique identifier for the quota. + type: string + limitAmount: + description: The quota limit amount. + type: number + currentSpend: + description: The current amount spent against the quota. + type: number + currentByokSpend: + description: The current BYOK spend (tracked separately). + type: number + includeByokInQuota: + description: Whether BYOK (Bring Your Own Key) spend counts against the quota. + type: boolean + refreshPeriod: + description: How often the quota refreshes. + type: string + active: + description: Whether the quota is currently active. + type: boolean + archived: + description: Whether the quota has been archived. + type: boolean + alertThresholds: + description: Spend percentages (a subset of [50, 75, 100]) at which to send a spend alert. Empty or undefined disables alerts. + type: array + items: + type: number + createdAt: + description: Timestamp (in milliseconds) of when the quota was created. + type: number + updatedAt: + description: Timestamp (in milliseconds) of when the quota was last updated. + type: number + required: + - quotaEntityId + - limitAmount + - currentSpend + - currentByokSpend + - includeByokInQuota + - refreshPeriod + - active + - archived + - createdAt + - updatedAt + x-stackQL-resources: + api_keys: + id: vercel.authentication.api_keys + name: api_keys + title: Api Keys + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1api-keys/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/api_keys/methods/create' + update: [] + delete: [] + replace: [] + tokens: + id: vercel.authentication.tokens + name: tokens + title: Tokens + methods: + list: + operation: + $ref: '#/paths/~1v6~1user~1tokens/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tokens + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1user~1tokens/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v5~1user~1tokens~1{token_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.token + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v3~1user~1tokens~1{token_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tokens/methods/get' + - $ref: '#/components/x-stackQL-resources/tokens/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/tokens/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/tokens/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/billing.yaml b/providers/src/vercel/v00.00.00000/services/billing.yaml new file mode 100644 index 00000000..05b91774 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/billing.yaml @@ -0,0 +1,1571 @@ +openapi: 3.0.3 +info: + title: billing API + description: vercel billing API + version: 0.0.1 +paths: + /v1/billing/charges: + get: + description: 'Returns the billing charge data in FOCUS v1.3 JSONL format for a specified Vercel team, within a date range specified by `from` and `to` query parameters. Supports 1-day granularity with a maximum date range of 1 year. The response is streamed as newline-delimited JSON (JSONL) and can be optionally compressed with gzip if the `Accept-Encoding: gzip` header is provided. This is only available for Owner, Member, Developer, Security, Billing, and Enterprise Viewer roles for the supplied team.' + operationId: listBillingCharges + security: + - bearerToken: [] + summary: List FOCUS billing charges + tags: + - billing + responses: + '200': + description: '' + content: + application/jsonl: + schema: + properties: + BilledCost: + type: number + description: Charge amount serving as the basis for invoicing + BillingCurrency: + type: string + enum: + - USD + description: Currency used for billing (ISO 4217) + ChargeCategory: + type: string + enum: + - Adjustment + - Credit + - Purchase + - Tax + - Usage + description: Classification of the charge + ChargePeriodStart: + type: string + description: Inclusive start of the charge period (ISO 8601 UTC) + ChargePeriodEnd: + type: string + description: Exclusive end of the charge period (ISO 8601 UTC) - Required in v1.3 + ConsumedQuantity: + nullable: true + type: number + description: Volume of resource consumed. Null when a charge does not involve measurable consumption quantity. + ConsumedUnit: + nullable: true + type: string + description: Unit of measurement for consumed quantity. Null when the charge is not measured in units. + EffectiveCost: + type: number + description: Amortized cost representation including discounts, pre-commitment credit purchase amount, etc. + RegionId: + type: string + description: Provider-assigned region identifier + RegionName: + type: string + description: Display name for the region + ServiceName: + type: string + description: Display name for the service/product + ServiceCategory: + type: string + enum: + - AI and Machine Learning + - Analytics + - Business Applications + - Compute + - Databases + - Developer Tools + - Identity + - Integration + - Internet of Things + - Management and Governance + - Media + - Migration + - Mobile + - Multicloud + - Networking + - Other + - Security + - Storage + - Web + description: High-level category of the service + ServiceProviderName: + type: string + description: Entity making the resource/service available for purchase (v1.3) + Tags: + additionalProperties: + type: string + type: object + description: Charge metadata including the Vercel ProjectId and ProjectName information + PricingCategory: + type: string + enum: + - Committed + - Dynamic + - Other + - Standard + description: Pricing model used for the charge. + PricingCurrency: + type: string + enum: + - USD + PricingQuantity: + type: number + PricingUnit: + type: string + required: + - BilledCost + - BillingCurrency + - ChargeCategory + - ChargePeriodEnd + - ChargePeriodStart + - ConsumedQuantity + - ConsumedUnit + - EffectiveCost + - PricingCategory + - PricingCurrency + - PricingQuantity + - PricingUnit + - ServiceName + - ServiceProviderName + - Tags + type: object + description: Extension of the base schema for Focus charges. Includes pricing information for all customers. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + '503': + description: '' + parameters: + - name: from + description: Inclusive start of the date range as an ISO 8601 date-time string in UTC. + in: query + required: true + schema: + type: string + description: Inclusive start of the date range as an ISO 8601 date-time string in UTC. + example: '2025-01-01T00:00:00.000Z' + - name: to + description: Exclusive end of the date range as an ISO 8601 date-time string in UTC. + in: query + required: true + schema: + type: string + description: Exclusive end of the date range as an ISO 8601 date-time string in UTC. + example: '2025-01-31T00:00:00.000Z' + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + x-codeSamples: + - lang: curl + label: cURL + source: | + curl -N --request GET \ + --url 'https://api.vercel.com/v1/billing/charges?teamId=&from=&to=' \ + --header 'Authorization: Bearer ' \ + --header 'Accept-Encoding: gzip' \ + --compressed + /v1/billing/contract-commitments: + get: + description: Returns commitment allocations per contract period in FOCUS v1.3 JSONL format for a specified Vercel team. The response is streamed as newline-delimited JSON (JSONL). This endpoint is only applicable to Enterprise Vercel customers. An empty response is returned for non-Enterprise (Pro/Flex) customers. + operationId: listContractCommitments + security: + - bearerToken: [] + summary: List FOCUS contract commitments + tags: + - billing + responses: + '200': + description: '' + content: + application/jsonl: + schema: + properties: + ContractCommitmentCategory: + type: string + enum: + - Spend + - Usage + description: Highest-level classification of the contract commitment. 'Spend' for Pro ($20/month), 'Usage' for Enterprise (MIU allocation). + ContractCommitmentCost: + type: number + description: 'Monetary value of the contract commitment (in BillingCurrency). Required when ContractCommitmentCategory is ''Spend''. For Pro: 20 (USD)' + ContractCommitmentDescription: + type: string + description: Self-contained summary of the contract commitment's terms + ContractCommitmentId: + type: string + description: Unique identifier for a single contract term within a contract. Maps to specific commitment period or allocation ID. + ContractCommitmentPeriodStart: + type: string + description: Inclusive start of the commitment term period (ISO 8601 UTC) + ContractCommitmentPeriodEnd: + type: string + description: Exclusive end of the commitment term period (ISO 8601 UTC) + ContractCommitmentQuantity: + type: number + description: 'Amount associated with the commitment (in ContractCommitmentUnit). Required when ContractCommitmentCategory is ''Usage''. For Enterprise: MIU allocation amount.' + ContractCommitmentType: + type: string + description: Service-provider-assigned name identifying the commitment type. 'Pro' or 'Enterprise' for Vercel. + ContractCommitmentUnit: + type: string + description: Measurement unit for ContractCommitmentQuantity. 'MIUs' for Enterprise, 'USD' for Pro spend commitments. + ContractId: + type: string + description: Service-provider-assigned identifier for a contract. Maps to Orb Subscription ID for Vercel. + ContractPeriodStart: + type: string + description: Inclusive start of the overall contract period (ISO 8601 UTC) + ContractPeriodEnd: + type: string + description: Exclusive end of the overall contract period (ISO 8601 UTC) + BillingCurrency: + type: string + required: + - BillingCurrency + - ContractCommitmentCategory + - ContractCommitmentId + - ContractCommitmentPeriodEnd + - ContractCommitmentPeriodStart + - ContractCommitmentType + - ContractCommitmentUnit + - ContractId + - ContractPeriodEnd + - ContractPeriodStart + type: object + description: 'Contract commitment information describing terms within a contract. New in FOCUS v1.3 - tracks commitment terms separate from cost/usage rows. For Vercel: - Pro: $20 monthly spend commitment - Enterprise: MIU allocation per period (usage commitment)' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/billing/buy: + post: + description: Purchases credits for a Vercel team using the default payment method on file. The purchase is charged immediately via Stripe invoice. Supported credit types are `v0`, `gateway`, and `agent`. The `amount` field specifies the number of credits to purchase and must be a positive integer. An optional `source` query parameter can be provided to identify the caller. Defaults to `api` if not specified. This is only available for Owner, Member, Developer, Security, and Billing roles for the supplied team. + operationId: buyCredits + security: + - bearerToken: [] + summary: Purchase credits + tags: + - billing + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + checkoutSessionId: + type: string + checkoutSessionUrl: + type: string + purchaseIntent: + properties: + id: + type: string + description: The unique ID of a Purchase Intent. Uses the format `pur_*` + configuration: + oneOf: + - properties: + options: + properties: + amount: + type: string + description: The amount of currency to buy + currency: + type: string + enum: + - ai_credits + - ai_gateway_credits + - copper_test_units + - v0_user_credits + - vercel_agent_credits + description: The currency being purchased + expirationDate: + type: string + description: The expiration date of the credits being purchased + required: + - amount + - currency + type: object + description: Purchase configuration specific options + output: + nullable: true + type: + type: string + enum: + - credit_topup + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + - properties: + options: + properties: + items: + items: + properties: + name: + type: string + subtotal: + type: string + description: The subtotal of the domain name purchase + type: + type: string + enum: + - purchase + - renewal + - transfer + years: + type: number + description: The number of years to purchase + required: + - name + - subtotal + - type + - years + type: object + type: array + orderId: + type: string + description: The order ID of the domain name purchase + required: + - items + - orderId + type: object + output: + nullable: true + type: + type: string + enum: + - domain_name + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + - properties: + options: + properties: + effectiveDate: + oneOf: + - type: string + description: The effective date of the plan change (opaque JSON object) + - type: string + enum: + - end_of_subscription_term + - immediate + orbSubscriptionId: + type: string + description: The ID of the Orb subscription to change + alignBillingWithPlanChangeDate: + type: boolean + enum: + - false + - true + description: Whether or not to reset the billing cycle + couponRedemptionCode: + type: string + description: The coupon redemption code to apply to the plan change + externalPlanId: + type: string + description: The ID of the external plan to change to + replacePrices: + items: + properties: + fixedPriceQuantity: + type: number + description: The quantity for the fixed price + replacesPriceId: + type: string + description: The ID of the price to replace + required: + - fixedPriceQuantity + - replacesPriceId + type: object + description: The prices to replace in the subscription + type: array + description: The prices to replace in the subscription + required: + - effectiveDate + - orbSubscriptionId + type: object + output: + properties: + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change + required: + - pendingSubscriptionChangeId + type: object + type: + type: string + enum: + - orb_plan_change + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + - properties: + options: + type: string + description: (opaque JSON object) + output: + properties: + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change + required: + - pendingSubscriptionChangeId + type: object + type: + type: string + enum: + - orb_price_interval + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + - properties: + options: + properties: + externalPlanId: + type: string + description: The external plan ID of the Orb plan to subscribe to + addPrices: + items: + oneOf: + - properties: + priceId: + type: string + description: The ID of the price to add + required: + - priceId + type: object + description: The prices to add to the subscription + - type: string + description: The prices to add to the subscription (opaque JSON object) + type: array + description: The prices to add to the subscription + alignBillingWithSubscriptionStartDate: + type: boolean + enum: + - false + - true + description: Whether to align the subscription start date with the billing subscription start date + couponRedemptionCode: + type: string + description: The coupon redemption code to apply to the subscription + initialPhaseOrder: + type: number + description: The initial phase order to use for the subscription + metadata: + additionalProperties: + nullable: true + type: string + description: Optional metadata to associate with the subscription + type: object + description: Optional metadata to associate with the subscription + removePrices: + items: + properties: + priceId: + type: string + description: The ID of the price to remove + required: + - priceId + type: object + description: The prices to remove in the subscription + type: array + description: The prices to remove in the subscription + replacePrices: + items: + properties: + fixedPriceQuantity: + type: number + description: The quantity for the fixed price + replacesPriceId: + type: string + description: The ID of the price to replace + required: + - fixedPriceQuantity + - replacesPriceId + type: object + description: The prices to replace in the subscription + type: array + description: The prices to replace in the subscription + startDate: + type: string + description: The start date of the subscription + required: + - externalPlanId + type: object + output: + properties: + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change + required: + - pendingSubscriptionChangeId + type: object + type: + type: string + enum: + - orb_subscription + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + - properties: + options: + properties: + orbCustomerId: + type: string + description: The ID of the Orb customer to create + orbExternalCustomerId: + type: string + description: The external ID of the Orb customer to create + orbExternalPlanId: + type: string + description: The external ID of the Orb plan to create + orbPlanId: + type: string + description: The ID of the Orb plan to create + orbSubscriptionId: + type: string + description: The ID of the Orb subscription to create + lineItems: + items: + properties: + id: + type: string + description: The ID of the line item + description: + type: string + description: The description of the line item + name: + type: string + description: The name of the line item + productId: + type: string + description: The ID of the product being purchased + quantity: + type: string + description: The quantity of the line item + unitAmount: + type: string + description: The unit amount of the line item + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata for the line item + productAlias: + type: string + description: The alias of the product being purchased + refund: + type: string + description: The amount of the line item that has been refunded + required: + - description + - id + - name + - productId + - quantity + - unitAmount + type: object + description: The line items that make up the Purchase Intent. + type: array + description: The line items that make up the Purchase Intent. + orbPendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change + required: + - orbCustomerId + - orbExternalCustomerId + - orbExternalPlanId + - orbPlanId + - orbSubscriptionId + type: object + output: + properties: + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change + type: object + type: + type: string + enum: + - orb_subscription_intent + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + - properties: + options: + properties: + planId: + type: string + description: The ID of the plan to subscribe to + fromPlan: + properties: + currentCycleEndDate: + type: string + description: The end of the current plan billing cycle + orbSubscriptionId: + type: string + description: The Orb subscription ID currently active for the owner on the source plan + planId: + type: string + description: The ID of the plan currently assigned + planItemQuantities: + items: + properties: + planItemId: + type: string + description: The ID of the current plan item to set the quantity for + quantity: + type: number + description: The nonnegative integer quantity for the current plan item + resourceIds: + items: + type: string + type: array + description: The resource IDs associated with the current plan item quantity + required: + - planItemId + - quantity + type: object + description: The current plan item quantities + type: array + description: The current plan item quantities + rateVariantKey: + type: string + description: The rate variant currently assigned + required: + - currentCycleEndDate + - orbSubscriptionId + - planId + type: object + description: The current plan being replaced by this purchase + planItemQuantities: + items: + properties: + planItemId: + type: string + description: The ID of the plan item to set the quantity for + quantity: + type: number + description: The nonnegative integer quantity for the plan item + resourceIds: + items: + type: string + type: array + description: The resource IDs to associate with the plan item quantity + required: + - planItemId + - quantity + type: object + description: The plan item quantities to set for the subscription + type: array + description: The plan item quantities to set for the subscription + rateVariantKey: + type: string + description: The rate variant key to apply to the subscription + required: + - planId + type: object + description: Purchase configuration specific options + output: + properties: + planChangeId: + type: string + description: The committed Plan revision used to calculate the purchase price + type: object + type: + type: string + enum: + - subscription + required: + - options + - output + - type + type: object + description: The configuration for a credit purchase + createdAt: + type: string + description: The datetime when the Purchase Intent was created. + currency: + type: string + enum: + - miu + - usd + description: The currency for the purchase intent + ownerId: + type: string + description: The ID of the owner of the Purchase Intent. + provider: + properties: + resourceId: + type: string + description: Provider resource id + type: + type: string + enum: + - apple_in_app_purchase + - orb_ledger + - stripe_elements + - stripe_hosted + - stripe_invoice_deferred + - stripe_invoice_elements + - stripe_invoice_immediate + - tackle_aws_marketplace + description: The type of the purchase provider + currencyConversionRate: + type: string + description: The currency conversion rate used by the provider + stripeSharedPaymentTokenUsed: + type: boolean + enum: + - false + - true + description: Whether a Stripe Shared Payment Token was used for this purchase. Only applicable when type is stripe_invoice_immediate. + required: + - resourceId + - type + type: object + status: + type: string + enum: + - failed + - pending + - succeeded + description: The status of the Purchase Intent. + subtotal: + type: string + description: The subtotal of the Purchase Intent. + tax: + type: string + description: The tax due on the Purchase Intent. + total: + type: string + description: The total balance due on the Purchase Intent. + updatedAt: + type: string + description: The datetime when the Purchase Intent was last updated. + dispute: + properties: + id: + type: string + description: The unique ID of the dispute entity. + amount: + type: string + description: The disputed amount. + createdAt: + type: string + description: When the dispute was first recorded. + currency: + type: string + description: The dispute currency. + providerId: + type: string + description: The external provider dispute ID (e.g. Stripe dispute ID). + reason: + nullable: true + type: string + description: The dispute reason. + status: + type: string + description: The dispute status. + updatedAt: + type: string + description: When the dispute was last updated. + required: + - amount + - createdAt + - currency + - id + - providerId + - reason + - status + - updatedAt + type: object + description: The dispute details, if any. + lineItems: + items: + properties: + id: + type: string + description: The ID of the line item + description: + type: string + description: The description of the line item + name: + type: string + description: The name of the line item + productId: + type: string + description: The ID of the product being purchased + quantity: + type: string + description: The quantity of the line item + unitAmount: + type: string + description: The unit amount of the line item + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata for the line item + productAlias: + type: string + description: The alias of the product being purchased + refund: + type: string + description: The amount of the line item that has been refunded + required: + - description + - id + - name + - productId + - quantity + - unitAmount + type: object + description: The line items that make up the Purchase Intent. + type: array + description: The line items that make up the Purchase Intent. + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata associated with the purchase intent + refund: + type: string + description: The amount of the purchase intent that has been refunded + returnUrl: + type: string + description: The URL to redirect to after the purchase is complete + required: + - configuration + - createdAt + - currency + - id + - ownerId + - provider + - status + - subtotal + - tax + - total + - updatedAt + type: object + description: The created purchase intent + orbSubscriptionIntent: + properties: + id: + type: string + description: The ID of the Orb subscription intent with the format `orbsubint_`. + configuration: + oneOf: + - properties: + options: + properties: + productAlias: + type: string + description: The alias of the product to set quantity for. + quantity: + type: number + description: The quantity to set for the plan item. + resourceIds: + items: + type: string + type: array + description: The resource IDs for the plan item. Only set if SKU requires resource entitlements. + required: + - productAlias + - quantity + type: object + description: Configuration input options for setting plan item quantity. + output: + properties: + effectiveBehavior: + type: string + enum: + - end_of_term + - immediate + description: When the subscription change should take effect. + orbPriceId: + type: string + description: The Orb price ID for the subscription item being modified. + pricingSource: + type: string + enum: + - copper + - orb + description: The source used as the authoritative price for this intent. + productId: + type: string + description: The product ID associated with this intent. + changedResources: + items: + properties: + productAlias: + type: string + description: The alias of the product that was changed. + productId: + type: string + description: The ID of the product that was changed. + quantity: + type: number + description: The resulting quantity after this change. + addedResourceIds: + items: + type: string + type: array + description: Resource IDs that were added. + effectiveAt: + type: string + description: When this resource change should take effect for downstream consumers. + removedResourceIds: + items: + type: string + type: array + description: Resource IDs that were removed. + resourceIds: + items: + type: string + type: array + description: The full set of resource IDs after the change. + required: + - productAlias + - productId + - quantity + type: object + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + type: array + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata associated with the intent to update the Orb subscription with. + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change if there is one. + required: + - effectiveBehavior + - orbPriceId + - pricingSource + - productId + type: object + description: Output returned after configuring an OrbSubscriptionIntent. + type: + type: string + enum: + - set_plan_item_quantity + required: + - options + - output + - type + type: object + description: Configuration for the Orb subscription intent. + - properties: + options: + properties: + productAlias: + type: string + description: The alias of the product to increase quantity for. + resourceIds: + items: + type: string + type: array + description: The resource IDs to incrementally add. The quantity of the plan item will be increased by the number of resource IDs. + required: + - productAlias + - resourceIds + type: object + description: Configuration input options for increasing plan item quantity. + output: + properties: + effectiveBehavior: + type: string + enum: + - end_of_term + - immediate + description: When the subscription change should take effect. + orbPriceId: + type: string + description: The Orb price ID for the subscription item being modified. + pricingSource: + type: string + enum: + - copper + - orb + description: The source used as the authoritative price for this intent. + productId: + type: string + description: The product ID associated with this intent. + changedResources: + items: + properties: + productAlias: + type: string + description: The alias of the product that was changed. + productId: + type: string + description: The ID of the product that was changed. + quantity: + type: number + description: The resulting quantity after this change. + addedResourceIds: + items: + type: string + type: array + description: Resource IDs that were added. + effectiveAt: + type: string + description: When this resource change should take effect for downstream consumers. + removedResourceIds: + items: + type: string + type: array + description: Resource IDs that were removed. + resourceIds: + items: + type: string + type: array + description: The full set of resource IDs after the change. + required: + - productAlias + - productId + - quantity + type: object + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + type: array + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata associated with the intent to update the Orb subscription with. + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change if there is one. + required: + - effectiveBehavior + - orbPriceId + - pricingSource + - productId + type: object + description: Output returned after configuring an OrbSubscriptionIntent. + type: + type: string + enum: + - increase_plan_item_quantity + required: + - options + - output + - type + type: object + description: Configuration for the Orb subscription intent. + - properties: + options: + properties: + productAlias: + type: string + description: The alias of the product to decrease quantity for. + resourceIds: + items: + type: string + type: array + description: The resource IDs to decrementally remove. The quantity of the plan item will be decreased by the number of resource IDs. + required: + - productAlias + - resourceIds + type: object + description: Configuration input options for decreasing plan item quantity. + output: + properties: + effectiveBehavior: + type: string + enum: + - end_of_term + - immediate + description: When the subscription change should take effect. + orbPriceId: + type: string + description: The Orb price ID for the subscription item being modified. + pricingSource: + type: string + enum: + - copper + - orb + description: The source used as the authoritative price for this intent. + productId: + type: string + description: The product ID associated with this intent. + changedResources: + items: + properties: + productAlias: + type: string + description: The alias of the product that was changed. + productId: + type: string + description: The ID of the product that was changed. + quantity: + type: number + description: The resulting quantity after this change. + addedResourceIds: + items: + type: string + type: array + description: Resource IDs that were added. + effectiveAt: + type: string + description: When this resource change should take effect for downstream consumers. + removedResourceIds: + items: + type: string + type: array + description: Resource IDs that were removed. + resourceIds: + items: + type: string + type: array + description: The full set of resource IDs after the change. + required: + - productAlias + - productId + - quantity + type: object + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + type: array + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata associated with the intent to update the Orb subscription with. + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change if there is one. + required: + - effectiveBehavior + - orbPriceId + - pricingSource + - productId + type: object + description: Output returned after configuring an OrbSubscriptionIntent. + type: + type: string + enum: + - decrease_plan_item_quantity + required: + - options + - output + - type + type: object + description: Configuration for the Orb subscription intent. + - properties: + options: + properties: + addedResourceIds: + items: + type: string + type: array + description: The resource IDs to incrementally add. The quantity of the plan item will be increased by the number of resource IDs. + productAlias: + type: string + description: The alias of the product to adjust quantity for. + removedResourceIds: + items: + type: string + type: array + description: The resource IDs to incrementally remove. The quantity of the plan item will be decreased by the number of resource IDs. + required: + - addedResourceIds + - productAlias + - removedResourceIds + type: object + description: Configuration input options for adjusting plan item quantity. + output: + properties: + effectiveBehavior: + type: string + enum: + - end_of_term + - immediate + description: When the subscription change should take effect. + orbPriceId: + type: string + description: The Orb price ID for the subscription item being modified. + pricingSource: + type: string + enum: + - copper + - orb + description: The source used as the authoritative price for this intent. + productId: + type: string + description: The product ID associated with this intent. + changedResources: + items: + properties: + productAlias: + type: string + description: The alias of the product that was changed. + productId: + type: string + description: The ID of the product that was changed. + quantity: + type: number + description: The resulting quantity after this change. + addedResourceIds: + items: + type: string + type: array + description: Resource IDs that were added. + effectiveAt: + type: string + description: When this resource change should take effect for downstream consumers. + removedResourceIds: + items: + type: string + type: array + description: Resource IDs that were removed. + resourceIds: + items: + type: string + type: array + description: The full set of resource IDs after the change. + required: + - productAlias + - productId + - quantity + type: object + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + type: array + description: Resources that were changed as part of this intent. Tracks all logical changes including the primary change and any side effects. + metadata: + additionalProperties: + type: string + type: object + description: Optional metadata associated with the intent to update the Orb subscription with. + pendingSubscriptionChangeId: + type: string + description: The ID of the pending subscription change if there is one. + required: + - effectiveBehavior + - orbPriceId + - pricingSource + - productId + type: object + description: Output returned after configuring an OrbSubscriptionIntent. + type: + type: string + enum: + - adjust_plan_item_quantity + required: + - options + - output + - type + type: object + description: Configuration for the Orb subscription intent. + createdAt: + type: string + description: The ISO 8601 date-time that the intent was created. + orbSubscriptionId: + type: string + description: The Orb subscription ID this intent is associated with. + orbUpdate: + oneOf: + - properties: + mode: + type: string + enum: + - sync + required: + - mode + type: object + description: How the subscription change is applied to Orb. + - properties: + mode: + type: string + enum: + - async + status: + type: string + enum: + - canceled + - failed + - pending + - running + required: + - mode + - status + type: object + description: How the subscription change is applied to Orb. + - properties: + appliedAt: + type: string + description: The ISO 8601 date-time that the subscription change was applied to Orb. + mode: + type: string + enum: + - async + status: + type: string + enum: + - succeeded + required: + - appliedAt + - mode + - status + type: object + description: How the subscription change is applied to Orb. + ownerId: + type: string + description: The owner ID for this intent (e.g., team or user ID). + status: + type: string + enum: + - failed + - pending + - succeeded + description: The status of the Orb subscription intent. + updatedAt: + type: string + description: The ISO 8601 date-time that the intent was last updated. + purchaseIntentId: + type: string + description: Optional purchase intent ID if this is associated with a purchase. + required: + - configuration + - createdAt + - id + - orbSubscriptionId + - orbUpdate + - ownerId + - status + - updatedAt + type: object + required: + - checkoutSessionId + - checkoutSessionUrl + - purchaseIntent + - orbSubscriptionIntent + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: source + description: The source of the purchase request. Defaults to `api` if not specified. + in: query + schema: + type: string + description: The source of the purchase request. Defaults to `api` if not specified. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - item + properties: + item: + type: object + required: + - type + - creditType + - amount + properties: + type: + type: string + enum: + - credits + description: The type of item to purchase. + creditType: + type: string + enum: + - v0 + - gateway + - agent + description: The type of credits to purchase. + amount: + type: integer + minimum: 1 + description: The amount of credits to purchase. + x-codeSamples: + - lang: curl + label: cURL + source: | + curl --request POST \ + --url 'https://api.vercel.com/v1/billing/buy?teamId=' \ + --header 'Authorization: Bearer ' \ + --header 'Content-Type: application/json' \ + --data '{"item":{"type":"credits","creditType":"v0","amount":100}}' +components: + x-stackQL-resources: + charges: + id: vercel.billing.charges + name: charges + title: Charges + methods: + list: + operation: + $ref: '#/paths/~1v1~1billing~1charges/get' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/charges/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + contract_commitments: + id: vercel.billing.contract_commitments + name: contract_commitments + title: Contract Commitments + methods: + list: + operation: + $ref: '#/paths/~1v1~1billing~1contract-commitments/get' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/contract_commitments/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + credits: + id: vercel.billing.credits + name: credits + title: Credits + methods: + buy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1billing~1buy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + schemas: + StackqlTextResponse: + type: object + description: 'Wrapper for non-JSON response bodies (jsonl, ndjson, streamed json, octet-stream): one row carrying the raw body text.' + properties: + items: + type: array + items: + type: object + properties: + contents: + type: string + description: Raw response body. +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/billing_settings.yaml b/providers/src/vercel/v00.00.00000/services/billing_settings.yaml deleted file mode 100644 index 1a3d05b4..00000000 --- a/providers/src/vercel/v00.00.00000/services/billing_settings.yaml +++ /dev/null @@ -1,79 +0,0 @@ -openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API -info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' - version: 0.0.1 - title: Vercel API - billing_settings - description: billing_settings -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - data_cache: - id: vercel.billing_settings.data_cache - name: data_cache - title: Data Cache - methods: - enable_excess_billing: - operation: - $ref: '#/paths/~1data-cache~1billing-settings/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] -paths: - /data-cache/billing-settings: - patch: - description: '' - operationId: enableExcessBilling - security: [] - tags: - - billing_settings - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - excessBillingEnabled: - type: boolean - type: object - '400': - description: One of the provided values in the request body is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - '404': - description: '' - parameters: [] - requestBody: - content: - application/json: - schema: - type: object - properties: - excessBillingEnabled: - type: boolean diff --git a/providers/src/vercel/v00.00.00000/services/bulk_redirects.yaml b/providers/src/vercel/v00.00.00000/services/bulk_redirects.yaml new file mode 100644 index 00000000..485211da --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/bulk_redirects.yaml @@ -0,0 +1,983 @@ +openapi: 3.0.3 +info: + title: bulk_redirects API + description: vercel bulk_redirects API + version: 0.0.1 +paths: + /v1/bulk-redirects: + put: + description: Stages new redirects for a project and returns the new version. + operationId: stageRedirects + security: + - bearerToken: [] + summary: Stages new redirects for a project. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + alias: + nullable: true + type: string + version: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + required: + - alias + - version + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - projectId + - teamId + properties: + projectId: + type: string + teamId: + type: string + overwrite: + type: boolean + name: + type: string + maxLength: 256 + redirects: + type: array + default: [] + items: + type: object + required: + - source + - destination + properties: + source: + type: string + maxLength: 2048 + destination: + type: string + maxLength: 2048 + statusCode: + oneOf: + - type: number + - type: string + permanent: + type: boolean + caseSensitive: + type: boolean + query: + type: boolean + preserveQueryParams: + type: boolean + get: + description: Get the version history for a project's bulk redirects + operationId: getRedirects + security: + - bearerToken: [] + summary: Gets project-level redirects. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + redirects: + items: + properties: + statusCode: + type: number + permanent: + type: boolean + enum: + - false + - true + sensitive: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + query: + type: boolean + enum: + - false + - true + preserveQueryParams: + type: boolean + enum: + - false + - true + destination: + type: string + source: + type: string + required: + - destination + - source + type: object + type: array + pagination: + properties: + page: + type: number + per_page: + type: number + numPages: + type: number + required: + - numPages + - page + - per_page + type: object + required: + - pagination + - redirects + - version + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - name: versionId + in: query + required: false + schema: + type: string + - name: q + in: query + required: false + schema: + type: string + - name: diff + in: query + required: false + schema: + oneOf: + - type: boolean + - type: string + enum: + - only + - name: page + in: query + required: false + schema: + type: integer + minimum: 1 + - name: per_page + in: query + required: false + schema: + type: integer + minimum: 10 + maximum: 250 + - name: sort_by + in: query + required: false + schema: + type: string + enum: + - source + - destination + - statusCode + - name: sort_order + in: query + required: false + schema: + type: string + enum: + - asc + - desc + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Deletes the provided redirects from the latest version of the projects' bulk redirects. Stages a new change with the new redirects and returns the alias for the new version in the response. + operationId: deleteRedirects + security: + - bearerToken: [] + summary: Delete project-level redirects. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + alias: + type: string + version: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + required: + - version + - alias + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + maxLength: 256 + redirects: + description: The redirects to delete. The source of the redirect is used to match the redirect to delete. + type: array + minItems: 1 + items: + type: string + required: + - redirects + patch: + description: Edits a single redirect identified by its source path. Stages a new change with the modified redirect and returns the alias for the new version in the response. + operationId: editRedirect + security: + - bearerToken: [] + summary: Edit a project-level redirect. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + alias: + nullable: true + type: string + version: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + required: + - alias + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + maxLength: 256 + redirect: + description: The redirect object to edit. The source field is used to match the redirect to modify. + type: object + properties: + source: + type: string + destination: + type: string + statusCode: + type: number + permanent: + type: boolean + caseSensitive: + type: boolean + query: + type: boolean + preserveQueryParams: + type: boolean + required: + - source + additionalProperties: false + restore: + description: If true, restores the redirect from the latest production version to staging. + type: boolean + required: + - redirect + /v1/bulk-redirects/restore: + post: + description: Restores the provided redirects in the staging version to the value in the production version. If no production version exists, removes the redirects from staging. + operationId: restoreRedirects + security: + - bearerToken: [] + summary: Restore staged project-level redirects to their production version. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + restored: + items: + type: string + type: array + failedToRestore: + items: + type: string + type: array + required: + - failedToRestore + - restored + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + maxLength: 256 + redirects: + description: The redirects to restore. The source of the redirect is used to match the redirect to restore. + type: array + minItems: 1 + maxItems: 100 + items: + type: string + required: + - redirects + /v1/bulk-redirects/versions: + get: + description: Get the version history for a project's bulk redirects + operationId: getVersions + security: + - bearerToken: [] + summary: Get the version history for a project's redirects. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + versions: + items: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + type: array + required: + - versions + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Update a version by promoting staging to production or restoring a previous production version + operationId: updateVersion + security: + - bearerToken: [] + summary: Promote a staging version to production or restore a previous production version. + tags: + - bulk-redirects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + properties: + id: + type: string + description: The unique identifier for the version. + key: + type: string + description: The key of the version. The key may be duplicated across versions if the contents are the same as a different version. + lastModified: + type: number + createdBy: + type: string + name: + type: string + description: Optional name for the version. If not provided, defaults to an ISO timestamp string. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version has not been promoted to production yet and is not serving end users. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + redirectCount: + type: number + description: The number of redirects in this version. + alias: + type: string + description: The staging link for previewing redirects in this version. + required: + - createdBy + - id + - key + - lastModified + type: object + required: + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - id + - action + properties: + id: + type: string + action: + type: string + enum: + - promote + - restore + - discard + name: + type: string + maxLength: 256 +components: + x-stackQL-resources: + redirects: + id: vercel.bulk_redirects.redirects + name: redirects + title: Redirects + methods: + stage: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1bulk-redirects/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1bulk-redirects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.redirects + request: + nativeCasing: camel + config: + pagination: + algorithm: page_number + requestToken: + key: page + location: query + responseToken: + key: $.pagination.page + location: body + responseTerminator: + key: $.pagination.numPages + location: body + delete: + operation: + $ref: '#/paths/~1v1~1bulk-redirects/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1bulk-redirects/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + restore: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1bulk-redirects~1restore/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/redirects/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/redirects/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/redirects/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/redirects/methods/stage' + versions: + id: vercel.bulk_redirects.versions + name: versions + title: Versions + methods: + list: + operation: + $ref: '#/paths/~1v1~1bulk-redirects~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.versions + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1bulk-redirects~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/cache.yaml b/providers/src/vercel/v00.00.00000/services/cache.yaml deleted file mode 100644 index ca155330..00000000 --- a/providers/src/vercel/v00.00.00000/services/cache.yaml +++ /dev/null @@ -1,69 +0,0 @@ -openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API -info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' - version: 0.0.1 - title: Vercel API - cache - description: cache -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - data_cache_purge_all: - id: vercel.cache.data_cache_purge_all - name: data_cache_purge_all - title: Data Cache Purge All - methods: - purge_all: - operation: - $ref: '#/paths/~1data-cache~1purge-all/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] -paths: - /data-cache/purge-all: - delete: - description: '' - operationId: purgeAll - security: [] - tags: - - cache - responses: - '200': - description: '' - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - '404': - description: '' - parameters: - - name: projectIdOrName - in: query - required: true - schema: - type: string diff --git a/providers/src/vercel/v00.00.00000/services/certs.yaml b/providers/src/vercel/v00.00.00000/services/certs.yaml index df0c9b63..1cf50f98 100644 --- a/providers/src/vercel/v00.00.00000/services/certs.yaml +++ b/providers/src/vercel/v00.00.00000/services/certs.yaml @@ -1,69 +1,10 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: certs API + description: vercel certs API version: 0.0.1 - title: Vercel API - certs - description: certs -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - certs: - id: vercel.certs.certs - name: certs - title: Certs - methods: - get_cert_by_id: - operation: - $ref: '#/paths/~1v7~1certs~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_cert: - operation: - $ref: '#/paths/~1v7~1certs~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - issue_cert: - operation: - $ref: '#/paths/~1v7~1certs/post' - response: - mediaType: application/json - openAPIDocKey: '200' - upload_cert: - operation: - $ref: '#/paths/~1v7~1certs/put' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/certs/methods/get_cert_by_id' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/certs/methods/remove_cert' paths: - '/v7/certs/{id}': + /v8/certs/{id}: get: description: Get cert by id operationId: getCertById @@ -87,25 +28,33 @@ paths: type: number autoRenew: type: boolean + enum: + - false + - true cns: items: type: string type: array required: - - id - - createdAt - - expiresAt - autoRenew - cns + - createdAt + - expiresAt + - id type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - name: id description: The cert id @@ -114,12 +63,20 @@ paths: schema: description: The cert id type: string - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug delete: description: Remove cert operationId: removeCert @@ -134,15 +91,21 @@ paths: content: application/json: schema: - type: object + type: string + description: (opaque JSON object) '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - name: id description: The cert id to remove @@ -151,13 +114,89 @@ paths: schema: description: The cert id to remove type: string - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v8/certs: + get: + description: Get certs + operationId: getCerts + security: + - bearerToken: [] + summary: Get certs + tags: + - certs + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + certs: + items: + properties: + id: + type: string + createdAt: + type: number + expiresAt: + type: number + autoRenew: + type: boolean + enum: + - false + - true + cns: + items: + type: string + type: array + required: + - autoRenew + - cns + - createdAt + - expiresAt + - id + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - certs + - pagination + type: object + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - /v7/certs: + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug post: description: Issue a new cert operationId: issueCert @@ -181,40 +220,56 @@ paths: type: number autoRenew: type: boolean + enum: + - false + - true cns: items: type: string type: array required: - - id - - createdAt - - expiresAt - autoRenew - cns + - createdAt + - expiresAt + - id type: object '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' '449': description: '' '500': description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - issue + bodyArguments: + - cns parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -249,32 +304,48 @@ paths: type: number autoRenew: type: boolean + enum: + - false + - true cns: items: type: string type: array required: - - id - - createdAt - - expiresAt - autoRenew - cns + - createdAt + - expiresAt + - id type: object '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '402': description: This feature is only available for Enterprise customers. '403': description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - add parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -298,3 +369,92 @@ paths: skipValidation: type: boolean description: Skip validation of the certificate +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + x-stackQL-resources: + certs: + id: vercel.certs.certs + name: certs + title: Certs + methods: + get: + operation: + $ref: '#/paths/~1v8~1certs~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v8~1certs~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v8~1certs/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.certs + request: + nativeCasing: camel + issue: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v8~1certs/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + upload: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v8~1certs/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/certs/methods/get' + - $ref: '#/components/x-stackQL-resources/certs/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/certs/methods/issue' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/certs/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/checks.yaml b/providers/src/vercel/v00.00.00000/services/checks.yaml index 1e99020e..239fcd37 100644 --- a/providers/src/vercel/v00.00.00000/services/checks.yaml +++ b/providers/src/vercel/v00.00.00000/services/checks.yaml @@ -1,83 +1,1979 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: checks API + description: vercel checks API version: 0.0.1 - title: Vercel API - checks - description: checks -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - deployments: - id: vercel.checks.deployments - name: deployments - title: Deployments - methods: - create_check: - operation: - $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_all_checks: - operation: - $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.checks - _get_all_checks: - operation: - $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_check: - operation: - $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks~1{checkId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_check: - operation: - $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks~1{checkId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - rerequest_check: - operation: - $ref: '#/paths/~1v1~1deployments~1{deploymentId}~1checks~1{checkId}~1rerequest/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/deployments/methods/get_check' - - $ref: '#/components/x-stackQL-resources/deployments/methods/get_all_checks' - insert: - - $ref: '#/components/x-stackQL-resources/deployments/methods/create_check' - update: [] - delete: [] paths: - '/v1/deployments/{deploymentId}/checks': + /v2/projects/{project_id_or_name}/checks: + get: + description: List all checks for a project, optionally filtered by target. + operationId: listProjectChecks + security: + - bearerToken: [] + summary: List all checks for a project + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + checks: + items: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + projectId: + type: string + isRerequestable: + type: boolean + enum: + - false + - true + requires: + type: string + enum: + - build-ready + - deployment-url + - none + source: + oneOf: + - properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + - properties: + kind: + type: string + enum: + - webhook + webhookId: + type: string + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - git-provider + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - externalCheckName + - kind + - provider + type: object + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + sourceKind: + type: string + enum: + - git-provider + - integration + - vercel + - webhook + - integration + - webhook + - git-provider + sourceIntegrationConfigurationId: + type: string + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + deletedAt: + type: number + required: + - blocks + - createdAt + - id + - isRerequestable + - name + - ownerId + - projectId + - requires + - source + - sourceKind + - targets + - timeout + - updatedAt + type: object + type: array + required: + - checks + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - name: blocks + in: query + required: false + schema: + type: string + enum: + - build-start + - deployment-start + - deployment-alias + - deployment-promotion + - none + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Creates a new check for a project. + operationId: createProjectCheck + security: + - bearerToken: [] + summary: Create a check + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + projectId: + type: string + isRerequestable: + type: boolean + enum: + - false + - true + requires: + type: string + enum: + - build-ready + - deployment-url + - none + source: + properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + webhookId: + type: string + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + - externalCheckName + - provider + type: object + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + sourceKind: + type: string + enum: + - git-provider + - integration + - vercel + - webhook + - integration + - webhook + - git-provider + sourceIntegrationConfigurationId: + type: string + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + deletedAt: + type: number + required: + - blocks + - createdAt + - id + - isRerequestable + - name + - ownerId + - projectId + - requires + - source + - sourceKind + - targets + - timeout + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + name: + type: string + isRerequestable: + type: boolean + requires: + type: string + enum: + - build-ready + - deployment-url + - none + default: deployment-url + targets: + type: array + items: + type: string + uniqueItems: true + blocks: + type: string + enum: + - build-start + - deployment-start + - deployment-alias + - deployment-promotion + - none + default: deployment-alias + source: + type: object + properties: + kind: + type: string + default: integration + externalResourceId: + type: string + webhookId: + type: string + externalCheckName: + type: string + provider: + type: string + enum: + - github + required: + - kind + - externalCheckName + - provider + timeout: + type: number + default: 300 + required: + - name + - requires + type: object + /v2/projects/{project_id_or_name}/checks/{check_id}: + get: + description: Return a detailed response for a single check. + operationId: getProjectCheck + security: + - bearerToken: [] + summary: Get a check + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + projectId: + type: string + isRerequestable: + type: boolean + enum: + - false + - true + requires: + type: string + enum: + - build-ready + - deployment-url + - none + source: + properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + webhookId: + type: string + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + - externalCheckName + - provider + type: object + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + sourceKind: + type: string + enum: + - git-provider + - integration + - vercel + - webhook + - integration + - webhook + - git-provider + sourceIntegrationConfigurationId: + type: string + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + deletedAt: + type: number + required: + - blocks + - createdAt + - id + - isRerequestable + - name + - ownerId + - projectId + - requires + - source + - sourceKind + - targets + - timeout + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - name: check_id + description: The ID of the resource that will be updated. + in: path + required: true + schema: + type: string + description: The ID of the resource that will be updated. + example: stf_89ha9sdhh9a9 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update an existing check. + operationId: updateProjectCheck + security: + - bearerToken: [] + summary: Update a check + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + projectId: + type: string + isRerequestable: + type: boolean + enum: + - false + - true + requires: + type: string + enum: + - build-ready + - deployment-url + - none + source: + properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + webhookId: + type: string + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + - externalCheckName + - provider + type: object + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + sourceKind: + type: string + enum: + - git-provider + - integration + - vercel + - webhook + - integration + - webhook + - git-provider + sourceIntegrationConfigurationId: + type: string + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + deletedAt: + type: number + required: + - blocks + - createdAt + - id + - isRerequestable + - name + - ownerId + - projectId + - requires + - source + - sourceKind + - targets + - timeout + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - name: check_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + name: + type: string + isRerequestable: + type: boolean + requires: + type: string + enum: + - build-ready + - deployment-url + default: deployment-url + targets: + type: array + items: + type: string + blocks: + type: string + enum: + - build-start + - deployment-start + - deployment-alias + - deployment-promotion + - none + default: deployment-alias + timeout: + type: number + default: 300 + type: object + delete: + description: Delete an existing check and all of its runs. + operationId: deleteProjectCheck + security: + - bearerToken: [] + summary: Delete a check + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + success: + type: boolean + enum: + - true + required: + - success + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - name: check_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/projects/{project_id_or_name}/checks/{check_id}/runs: + get: + description: List all runs associated with a given check. + operationId: listCheckRuns + security: + - bearerToken: [] + summary: List runs for a check + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + runs: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + checkId: + type: string + source: + oneOf: + - properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + - properties: + kind: + type: string + enum: + - webhook + webhookId: + type: string + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - git-provider + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - externalCheckName + - kind + - provider + type: object + - properties: + subKind: + type: string + enum: + - vercel-native-check + origin: + type: string + enum: + - api + - platform + type: object + description: Native Vercel checks — check definition and check run `source`. + required: + - checkId + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Check run backed by a project-level `check` definition. + - properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + source: + oneOf: + - properties: + subKind: + type: string + enum: + - vercel-ci + origin: + type: string + enum: + - config + invocationId: + type: string + invocationAttempt: + type: number + jobDefinitionId: + type: string + required: + - invocationId + - jobDefinitionId + - origin + - subKind + type: object + description: Config-driven CI task — check run `source` only (no parent check). + - properties: + subKind: + type: string + enum: + - vercel-ci-sentinel + origin: + type: string + enum: + - platform + required: + - origin + - subKind + type: object + description: CI sentinel — check run `source` only (no parent check). + required: + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Vercel CI check run without a parent `check` (no `checkId` field). + type: array + required: + - runs + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - name: check_id + description: The ID of the resource that will be updated. + in: path + required: true + schema: + type: string + description: The ID of the resource that will be updated. + example: ckr_89ha9sdhh9a9 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/deployments/{deployment_id}/check-runs: + get: + description: List all check runs for a deployment. + operationId: listDeploymentCheckRuns + security: + - bearerToken: [] + summary: List check runs for a deployment + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + runs: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + checkId: + type: string + source: + oneOf: + - properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + - properties: + kind: + type: string + enum: + - webhook + webhookId: + type: string + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - git-provider + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - externalCheckName + - kind + - provider + type: object + - properties: + subKind: + type: string + enum: + - vercel-native-check + origin: + type: string + enum: + - api + - platform + type: object + description: Native Vercel checks — check definition and check run `source`. + required: + - checkId + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Check run backed by a project-level `check` definition. + - properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + source: + oneOf: + - properties: + subKind: + type: string + enum: + - vercel-ci + origin: + type: string + enum: + - config + invocationId: + type: string + invocationAttempt: + type: number + jobDefinitionId: + type: string + required: + - invocationId + - jobDefinitionId + - origin + - subKind + type: object + description: Config-driven CI task — check run `source` only (no parent check). + - properties: + subKind: + type: string + enum: + - vercel-ci-sentinel + origin: + type: string + enum: + - platform + required: + - origin + - subKind + type: object + description: CI sentinel — check run `source` only (no parent check). + required: + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Vercel CI check run without a parent `check` (no `checkId` field). + type: array + required: + - runs + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: deployment_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Creates a new check run for a deployment. + operationId: createDeploymentCheckRun + security: + - bearerToken: [] + summary: Create a check run + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + checkId: + type: string + source: + oneOf: + - properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + - properties: + kind: + type: string + enum: + - webhook + webhookId: + type: string + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - git-provider + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - externalCheckName + - kind + - provider + type: object + - properties: + subKind: + type: string + enum: + - vercel-native-check + origin: + type: string + enum: + - api + - platform + type: object + description: Native Vercel checks — check definition and check run `source`. + required: + - checkId + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Check run backed by a project-level `check` definition. + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: deployment_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + checkId: + type: string + required: + - checkId + type: object + /v2/deployments/{deployment_id}/check-runs/{check_run_id}: + get: + description: Return a detailed response for a single check run. + operationId: getDeploymentCheckRun + security: + - bearerToken: [] + summary: Get a check run + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + checkId: + type: string + source: + oneOf: + - properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + - properties: + kind: + type: string + enum: + - webhook + webhookId: + type: string + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - git-provider + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - externalCheckName + - kind + - provider + type: object + - properties: + subKind: + type: string + enum: + - vercel-native-check + origin: + type: string + enum: + - api + - platform + type: object + description: Native Vercel checks — check definition and check run `source`. + required: + - checkId + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Check run backed by a project-level `check` definition. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: deployment_id + in: path + required: true + schema: + type: string + - name: check_run_id + description: The ID of the resource that will be updated. + in: path + required: true + schema: + type: string + description: The ID of the resource that will be updated. + example: ckr_89ha9sdhh9a9 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update an existing check run for a deployment. + operationId: updateDeploymentCheckRun + security: + - bearerToken: [] + summary: Update a check run + tags: + - checks-v2 + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + name: + type: string + ownerId: + type: string + deploymentId: + type: string + projectId: + type: string + requires: + type: string + enum: + - build-ready + - deployment-url + - none + blocks: + type: string + enum: + - build-start + - deployment-alias + - deployment-promotion + - deployment-start + - none + targets: + items: + type: string + type: array + status: + type: string + enum: + - completed + - queued + - running + conclusion: + type: string + enum: + - canceled + - failed + - neutral + - skipped + - succeeded + - timeout + conclusionText: + type: string + externalId: + type: string + externalUrl: + type: string + output: + additionalProperties: true + type: object + timeout: + type: number + createdAt: + type: number + updatedAt: + type: number + completedAt: + type: number + checkId: + type: string + source: + oneOf: + - properties: + kind: + type: string + enum: + - integration + integrationId: + type: string + integrationConfigurationId: + type: string + resourceId: + type: string + externalResourceId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + - properties: + kind: + type: string + enum: + - webhook + webhookId: + type: string + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - git-provider + provider: + type: string + enum: + - bitbucket + - github + - gitlab + externalCheckName: + type: string + required: + - externalCheckName + - kind + - provider + type: object + - properties: + subKind: + type: string + enum: + - vercel-native-check + origin: + type: string + enum: + - api + - platform + type: object + description: Native Vercel checks — check definition and check run `source`. + required: + - checkId + - createdAt + - deploymentId + - id + - name + - ownerId + - source + - status + - timeout + - updatedAt + type: object + description: Check run backed by a project-level `check` definition. + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '413': + description: The output provided is too large + '500': + description: '' + parameters: + - name: deployment_id + in: path + required: true + schema: + type: string + - name: check_run_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + properties: + externalId: + type: string + externalUrl: + type: string + format: uri + pattern: '^https?://|^sso:' + status: + type: string + enum: + - queued + - running + - completed + output: + type: string + description: (opaque JSON object) + completedAt: + type: number + conclusion: + type: string + enum: + - canceled + - skipped + - timeout + - failed + - neutral + - succeeded + conclusionText: + type: string + type: object + /v1/deployments/{deployment_id}/checks: post: description: Creates a new check. This endpoint must be called with an OAuth2 or it will produce a 400 error. operationId: createCheck @@ -86,6 +1982,7 @@ paths: summary: Creates a new Check tags: - checks + deprecated: true responses: '200': description: '' @@ -95,27 +1992,35 @@ paths: properties: id: type: string + example: chk_1a2b3c4d5e6f7g8h9i0j name: type: string - path: + example: Performance Check + createdAt: + type: number + updatedAt: + type: number + deploymentId: type: string status: type: string enum: + - completed - registered - running - - completed + example: completed conclusion: type: string enum: - canceled - failed - neutral - - succeeded - skipped - stale - blocking: - type: boolean + - succeeded + example: succeeded + externalId: + type: string output: properties: metrics: @@ -132,8 +2037,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object LCP: properties: @@ -147,8 +2052,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object CLS: properties: @@ -162,8 +2067,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object TBT: properties: @@ -177,8 +2082,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object virtualExperienceScore: properties: @@ -192,42 +2097,45 @@ paths: enum: - web-vitals required: - - value - source + - value type: object required: + - CLS - FCP - LCP - - CLS - TBT type: object type: object + completedAt: + type: number + path: + type: string + example: /api/users + blocking: + type: boolean + enum: + - false + - true detailsUrl: type: string integrationId: type: string - deploymentId: - type: string - externalId: - type: string - createdAt: - type: number - updatedAt: - type: number startedAt: type: number - completedAt: - type: number rerequestable: type: boolean + enum: + - false + - true required: + - blocking + - createdAt + - deploymentId - id + - integrationId - name - status - - blocking - - integrationId - - deploymentId - - createdAt - updatedAt type: object '400': @@ -237,13 +2145,15 @@ paths: Cannot create check for finished deployment The provided token is not from an OAuth2 Client '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: The deployment was not found + '410': + description: '' parameters: - - name: deploymentId + - name: deployment_id description: The deployment to create the check for. in: path required: true @@ -251,12 +2161,18 @@ paths: description: The deployment to create the check for. example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -279,7 +2195,7 @@ paths: detailsUrl: description: URL to display for further details type: string - example: 'http://example.com' + example: http://example.com externalId: description: An identifier that can be used as an external reference type: string @@ -292,6 +2208,7 @@ paths: - name - blocking type: object + required: true get: description: List all of the checks created for a deployment. operationId: getAllChecks @@ -300,6 +2217,7 @@ paths: summary: Retrieve a list of all checks tags: - checks + deprecated: true responses: '200': description: '' @@ -318,9 +2236,9 @@ paths: - canceled - failed - neutral - - succeeded - skipped - stale + - succeeded createdAt: type: number detailsUrl: @@ -347,8 +2265,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object LCP: properties: @@ -362,8 +2280,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object CLS: properties: @@ -377,8 +2295,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object TBT: properties: @@ -392,8 +2310,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object virtualExperienceScore: properties: @@ -407,13 +2325,13 @@ paths: enum: - web-vitals required: - - value - source + - value type: object required: + - CLS - FCP - LCP - - CLS - TBT type: object type: object @@ -421,17 +2339,26 @@ paths: type: string rerequestable: type: boolean + enum: + - false + - true + blocking: + type: boolean + enum: + - false + - true startedAt: type: number status: type: string enum: + - completed - registered - running - - completed updatedAt: type: number required: + - blocking - createdAt - id - integrationId @@ -447,13 +2374,15 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: The deployment was not found + '410': + description: '' parameters: - - name: deploymentId + - name: deployment_id description: The deployment to get all checks for in: path required: true @@ -461,13 +2390,19 @@ paths: description: The deployment to get all checks for example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v1/deployments/{deploymentId}/checks/{checkId}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/deployments/{deployment_id}/checks/{check_id}: get: description: Return a detailed response for a single check. operationId: getCheck @@ -476,6 +2411,7 @@ paths: summary: Get a single check tags: - checks + deprecated: true responses: '200': description: '' @@ -487,25 +2423,29 @@ paths: type: string name: type: string - path: + createdAt: + type: number + updatedAt: + type: number + deploymentId: type: string status: type: string enum: + - completed - registered - running - - completed conclusion: type: string enum: - canceled - failed - neutral - - succeeded - skipped - stale - blocking: - type: boolean + - succeeded + externalId: + type: string output: properties: metrics: @@ -522,8 +2462,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object LCP: properties: @@ -537,8 +2477,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object CLS: properties: @@ -552,8 +2492,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object TBT: properties: @@ -567,8 +2507,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object virtualExperienceScore: properties: @@ -582,48 +2522,50 @@ paths: enum: - web-vitals required: - - value - source + - value type: object required: + - CLS - FCP - LCP - - CLS - TBT type: object type: object + completedAt: + type: number + path: + type: string + blocking: + type: boolean + enum: + - false + - true detailsUrl: type: string integrationId: type: string - deploymentId: - type: string - externalId: - type: string - createdAt: - type: number - updatedAt: - type: number startedAt: type: number - completedAt: - type: number rerequestable: type: boolean + enum: + - false + - true required: + - blocking + - createdAt + - deploymentId - id + - integrationId - name - status - - blocking - - integrationId - - deploymentId - - createdAt - updatedAt type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: |- You do not have permission to access this resource. @@ -632,8 +2574,10 @@ paths: description: |- Check was not found The deployment was not found + '410': + description: '' parameters: - - name: deploymentId + - name: deployment_id description: The deployment to get the check for. in: path required: true @@ -641,7 +2585,7 @@ paths: description: The deployment to get the check for. example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - name: checkId + - name: check_id description: The check to fetch in: path required: true @@ -649,12 +2593,18 @@ paths: description: The check to fetch example: check_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug patch: description: Update an existing check. This endpoint must be called with an OAuth2 or it will produce a 400 error. operationId: updateCheck @@ -663,6 +2613,7 @@ paths: summary: Update a check tags: - checks + deprecated: true responses: '200': description: '' @@ -674,25 +2625,29 @@ paths: type: string name: type: string - path: + createdAt: + type: number + updatedAt: + type: number + deploymentId: type: string status: type: string enum: + - completed - registered - running - - completed conclusion: type: string enum: - canceled - failed - neutral - - succeeded - skipped - stale - blocking: - type: boolean + - succeeded + externalId: + type: string output: properties: metrics: @@ -709,8 +2664,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object LCP: properties: @@ -724,8 +2679,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object CLS: properties: @@ -739,8 +2694,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object TBT: properties: @@ -754,8 +2709,8 @@ paths: enum: - web-vitals required: - - value - source + - value type: object virtualExperienceScore: properties: @@ -769,42 +2724,44 @@ paths: enum: - web-vitals required: - - value - source + - value type: object required: + - CLS - FCP - LCP - - CLS - TBT type: object type: object + completedAt: + type: number + path: + type: string + blocking: + type: boolean + enum: + - false + - true detailsUrl: type: string integrationId: type: string - deploymentId: - type: string - externalId: - type: string - createdAt: - type: number - updatedAt: - type: number startedAt: type: number - completedAt: - type: number rerequestable: type: boolean + enum: + - false + - true required: + - blocking + - createdAt + - deploymentId - id + - integrationId - name - status - - blocking - - integrationId - - deploymentId - - createdAt - updatedAt type: object '400': @@ -813,17 +2770,19 @@ paths: One of the provided values in the request query is invalid. The provided token is not from an OAuth2 Client '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: |- Check was not found The deployment was not found + '410': + description: '' '413': description: The output provided is too large parameters: - - name: deploymentId + - name: deployment_id description: The deployment to update the check for. in: path required: true @@ -831,7 +2790,7 @@ paths: description: The deployment to update the check for. example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - name: checkId + - name: check_id description: The check being updated in: path required: true @@ -839,12 +2798,18 @@ paths: description: The check being updated example: check_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -876,7 +2841,7 @@ paths: detailsUrl: description: A URL a user may visit to see more information about the check type: string - example: 'https://example.com/check/run/1234abc' + example: https://example.com/check/run/1234abc output: description: The results of the check Run type: object @@ -977,14 +2942,14 @@ paths: maximum: 100 minimum: 0 example: 30 - description: 'The calculated Virtual Experience Score value, between 0 and 100' + description: The calculated Virtual Experience Score value, between 0 and 100 nullable: true previousValue: type: integer maximum: 100 minimum: 0 example: 35 - description: 'A previous Virtual Experience Score value to display a delta, between 0 and 100' + description: A previous Virtual Experience Score value to display a delta, between 0 and 100 source: enum: - web-vitals @@ -993,7 +2958,8 @@ paths: type: string example: 1234abc type: object - '/v1/deployments/{deploymentId}/checks/{checkId}/rerequest': + required: true + /v1/deployments/{deployment_id}/checks/{check_id}/rerequest: post: description: Rerequest a selected check that has failed. operationId: rerequestCheck @@ -1002,25 +2968,29 @@ paths: summary: Rerequest a check tags: - checks + deprecated: true responses: '200': description: '' content: application/json: schema: - type: object + type: string + description: (opaque JSON object) '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: |- The deployment was not found Check was not found + '410': + description: '' parameters: - - name: deploymentId + - name: deployment_id description: The deployment to rerun the check for. in: path required: true @@ -1028,7 +2998,7 @@ paths: description: The deployment to rerun the check for. example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - name: checkId + - name: check_id description: The check to rerun in: path required: true @@ -1036,9 +3006,215 @@ paths: description: The check to rerun example: check_2qn7PZrx89yxY34vEZPD31Y9XVj6 type: string - - description: The Team identifier or slug to perform the request on behalf of. + - name: autoUpdate + description: Mark the check as running + in: query + required: false + schema: + description: Mark the check as running + type: boolean + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + project_checks: + id: vercel.checks.project_checks + name: project_checks + title: Project Checks + methods: + list: + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1checks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.checks + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1checks/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1checks~1{check_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1checks~1{check_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1checks~1{check_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/project_checks/methods/get' + - $ref: '#/components/x-stackQL-resources/project_checks/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/project_checks/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/project_checks/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/project_checks/methods/delete' + replace: [] + check_runs: + id: vercel.checks.check_runs + name: check_runs + title: Check Runs + methods: + list_for_check: + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1checks~1{check_id}~1runs/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.runs + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v2~1deployments~1{deployment_id}~1check-runs/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.runs + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1deployments~1{deployment_id}~1check-runs/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1deployments~1{deployment_id}~1check-runs~1{check_run_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1deployments~1{deployment_id}~1check-runs~1{check_run_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/check_runs/methods/list_for_check' + - $ref: '#/components/x-stackQL-resources/check_runs/methods/get' + - $ref: '#/components/x-stackQL-resources/check_runs/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/check_runs/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/check_runs/methods/update' + delete: [] + replace: [] + deployment_checks: + id: vercel.checks.deployment_checks + name: deployment_checks + title: Deployment Checks + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1checks/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1checks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.checks + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1checks~1{check_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1checks~1{check_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + rerequest: + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1checks~1{check_id}~1rerequest/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployment_checks/methods/get' + - $ref: '#/components/x-stackQL-resources/deployment_checks/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/deployment_checks/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/deployment_checks/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/connect.yaml b/providers/src/vercel/v00.00.00000/services/connect.yaml new file mode 100644 index 00000000..d55ed7dc --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/connect.yaml @@ -0,0 +1,3814 @@ +openapi: 3.0.3 +info: + title: connect API + description: vercel connect API + version: 0.0.1 +paths: + /v2/connect/connectors: + get: + description: List connectors that belong to a team. + operationId: listConnectors + security: + - bearerToken: [] + summary: List connectors + tags: + - connect + responses: + '200': + description: A page of connectors. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectConnectorList' + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: limit + description: Maximum number of connectors to return. Defaults to 20. + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + description: Maximum number of connectors to return. Defaults to 20. + - name: cursor + description: Cursor from `pagination.next` on the previous response. + in: query + schema: + type: string + description: Cursor from `pagination.next` on the previous response. + - name: projectId + description: Return only connectors connected to this project. + in: query + schema: + type: string + description: Return only connectors connected to this project. + - name: search + description: Search connector names, UIDs, and services. + in: query + schema: + type: string + maxLength: 100 + description: Search connector names, UIDs, and services. + - name: type + description: 'Comma-separated connector types: `slack`, `discord`, `github`, `linear`, `linq`, `salesforce`, `sendblue`, `snowflake`, `snowflake-wif`, `microsoft-entra`, `api-key`, `photon`, `oauth`, or `custom`.' + in: query + schema: + type: string + description: 'Comma-separated connector types: `slack`, `discord`, `github`, `linear`, `linq`, `salesforce`, `sendblue`, `snowflake`, `snowflake-wif`, `microsoft-entra`, `api-key`, `photon`, `oauth`, or `custom`.' + - name: service + description: Comma-separated provider or service identifiers. + in: query + schema: + type: string + description: Comma-separated provider or service identifiers. + - name: sort + description: Sort by name in ascending order, or by creation or update time in descending order. + in: query + schema: + type: string + enum: + - name + - createdAt + - updatedAt + description: Sort by name in ascending order, or by creation or update time in descending order. + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/connect/connectors/{connector}: + get: + description: Get the connector by ID. Accepts a dashboard/team requester or a deployment's project OIDC token; project requesters may only read connectors linked to their project and environment. + operationId: getConnector + security: + - bearerToken: [] + summary: Get a connector + tags: + - connect + responses: + '200': + description: The connector. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectConnector' + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Delete a connector, its project connections, and its installation records. + operationId: deleteConnector + security: + - bearerToken: [] + summary: Delete a connector + tags: + - connect + responses: + '204': + description: The connector, its project connections, and its installation records were deleted. + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '409': + description: The request conflicts with the current resource state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '502': + description: A dependency returned an invalid or unsuccessful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/connect/connectors: + post: + description: Create a connector and optionally link it to a project. Use `type` with complete provider data, or use `service` with `connectionMethod` so Connect can supply the type, endpoints, templates, and defaults. + operationId: createConnector + security: + - bearerToken: [] + summary: Create a connector + tags: + - connect + responses: + '201': + description: The connector was created. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectConnectorCreateResult' + '400': + description: One of the provided values in the request body is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '409': + description: The request conflicts with the current resource state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '500': + description: An internal error occurred. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '502': + description: A dependency returned an invalid or unsuccessful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectCreateConnectorRequest' + /v2/connect/connectors/{connector}: + patch: + description: Update a connector and return the connector with any service-side update signals that the caller must handle. + operationId: updateConnector + security: + - bearerToken: [] + summary: Update a connector + tags: + - connect + responses: + '200': + description: The updated connector and any required service-side follow-up signals. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectConnectorUpdateResult' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '409': + description: The request conflicts with the current resource state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '502': + description: A dependency returned an invalid or unsuccessful response. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectUpdateConnectorRequest' + required: true + /v1/connect/connectors/{connector}/trigger-destinations: + patch: + description: Replace the full set of destinations that receive trigger requests for a connector. + operationId: replaceConnectorTriggerDestinations + security: + - bearerToken: [] + summary: Update connector trigger destinations + tags: + - connect + responses: + '200': + description: The connector with its replaced trigger destinations. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectConnector' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectReplaceTriggerDestinationsRequest' + required: true + /v2/connect/connectors/{connector}/projects: + get: + description: List the projects connected to a connector and the environments where each connection is available. + operationId: listConnectorProjectConnections + security: + - bearerToken: [] + summary: List projects for a connector + tags: + - connect + responses: + '200': + description: A page of project connections for the connector. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectConnectorProjectConnectionList' + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '422': + description: The request cannot be completed in the current state. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - name: limit + description: Maximum number of project connections to return. Defaults to 50. + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + description: Maximum number of project connections to return. Defaults to 50. + - name: cursor + description: Cursor from `pagination.next` on the previous response. + in: query + required: false + schema: + type: string + description: Cursor from `pagination.next` on the previous response. + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/connect/connectors/{connector}/projects/{project_id}: + get: + description: Get the configuration that connects a connector to a project. + operationId: getConnectorProjectConnection + security: + - bearerToken: [] + summary: Get a connector project connection + tags: + - connect + responses: + '200': + description: The connector project connection. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectProjectConnection' + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - name: project_id + description: Vercel project ID. + in: path + required: true + schema: + type: string + description: Vercel project ID. + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Connect a connector to a project, or replace the environments on an existing project connection. + operationId: upsertConnectorProjectConnection + security: + - bearerToken: [] + summary: Create or update a connector project connection + tags: + - connect + responses: + '200': + description: The connector project connection was created or updated. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectProjectConnection' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - name: project_id + description: Vercel project ID. + in: path + required: true + schema: + type: string + description: Vercel project ID. + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectUpsertProjectConnectionRequest' + required: true + delete: + description: Disconnect a connector from a project. + operationId: deleteConnectorProjectConnection + security: + - bearerToken: [] + summary: Disconnect a connector from a project + tags: + - connect + responses: + '204': + description: The connector was disconnected from the project. + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: connector + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + in: path + required: true + schema: + type: string + description: 'Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.' + - name: project_id + description: Vercel project ID. + in: path + required: true + schema: + type: string + description: Vercel project ID. + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/connect/projects/{project_id}/connectors: + get: + description: List the connectors connected to a project and the environments where each connection is available. + operationId: listProjectConnectorConnections + security: + - bearerToken: [] + summary: List connectors for a project + tags: + - connect + responses: + '200': + description: A page of connector connections for the project. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectProjectConnectorConnectionList' + '400': + description: One of the provided values in the request query is invalid. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '401': + description: The request is not authorized. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '403': + description: You do not have permission to access this resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '404': + description: The requested resource was not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + '410': + description: The requested resource is no longer available. + content: + application/json: + schema: + $ref: '#/components/schemas/ConnectError' + parameters: + - name: project_id + description: Vercel project ID. + in: path + required: true + schema: + type: string + description: Vercel project ID. + - name: limit + description: Maximum number of connector connections to return. Defaults to 50. + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + description: Maximum number of connector connections to return. Defaults to 50. + - name: cursor + description: Cursor from `pagination.next` on the previous response. + in: query + required: false + schema: + type: string + description: Cursor from `pagination.next` on the previous response. + - description: The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/connect/token/{connector}: + post: + description: Get an access token for a connector identified by the path parameter and scoped to the requester. + operationId: getConnectorToken + security: + - bearerToken: [] + summary: Get a Connect token + tags: + - connect + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + token: + type: string + tokenId: + type: string + expiresAt: + type: number + connector: + properties: + id: + type: string + uid: + type: string + type: + type: string + required: + - id + - type + - uid + type: object + name: + type: string + installationId: + type: string + tenantId: + type: string + externalSubject: + type: string + authorizationId: + type: string + description: Stable id correlating all tokens (including refreshes) back to the original authorization. + tokenGroupId: + type: string + description: Stable id that groups all tokens with the same parameters across refreshes. + claims: + additionalProperties: true + type: object + description: Claims extracted from the provider's tokens per the connector's `ForwardedClaims` allow-list. Currently sourced from the OIDC id_token only. + metadata: + additionalProperties: true + type: object + description: Driver-specific metadata (e.g., botUserId for Slack). + required: + - connector + - expiresAt + - token + - tokenId + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + parameters: + - name: connector + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + subject: + title: type:app + type: object + required: + - type + - token + properties: + type: + type: string + enum: + - app + id: + type: string + issuer: + type: string + sub: + type: string + iss: + type: string + aud: + type: string + additionalClaims: + type: object + additionalProperties: true + token: + type: string + additionalProperties: true + not: + properties: + type: + type: string + enum: + - token + required: + - type + type: object + installationId: + type: string + audience: + type: array + items: + type: string + scopes: + type: array + items: + type: string + resources: + type: array + items: + type: string + authorizationDetails: + type: array + items: + type: object + properties: + type: + type: string + additionalProperties: true + validityBufferMs: + type: number + /v1/connect/authorize/{connector}: + post: + description: Create an authorization request for a connector and return the URL and verifier details needed to complete the flow. + operationId: createConnectorAuthorizationRequest + security: + - bearerToken: [] + summary: Create a Connect authorization request + tags: + - connect + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + url: + type: string + request: + type: string + verifier: + type: string + deviceCode: + type: string + expiresAt: + type: number + connector: + properties: + id: + type: string + description: Client id (e.g. `scl_…`). + uid: + type: string + description: Client uid (e.g. `salesforce/my-org`). + type: + type: string + description: Client type (e.g. `oauth`, `salesforce`). + service: + type: string + description: Resolved service id when known (e.g. `salesforce`), following the `stored.service ?? typeDef.service ?? stored.type` convention. + serviceName: + type: string + description: Curated display name of the resolved service (e.g. "Salesforce"), present when the service is a known service. Suited for end-user surfaces like "Sign in with {serviceName}". + displayName: + type: string + description: Provider-facing display name when the connector type exposes one, falling back to the stored connector name. + name: + type: string + description: 'The connector''s own name: the operator-given client name, falling back to the client type''s name for legacy rows without one.' + required: + - displayName + - id + - name + - type + - uid + type: object + required: + - connector + - expiresAt + - request + - url + - verifier + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: connector + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + subject: + title: type:app + type: object + required: + - type + - token + properties: + type: + type: string + enum: + - app + id: + type: string + issuer: + type: string + sub: + type: string + iss: + type: string + aud: + type: string + additionalClaims: + type: object + additionalProperties: true + token: + type: string + additionalProperties: true + not: + properties: + type: + type: string + enum: + - token + required: + - type + type: object + installationId: + type: string + audience: + type: array + items: + type: string + scopes: + type: array + items: + type: string + resources: + type: array + items: + type: string + authorizationDetails: + type: array + items: + type: object + properties: + type: + type: string + additionalProperties: true + validityBufferMs: + type: number + returnUrl: + type: string + webhook: + type: string + prompt: + type: string + deviceCode: + type: boolean + expiresInMs: + type: number + additionalParams: + type: object + additionalProperties: + type: string +components: + schemas: + ConnectConnectorList: + properties: + connectors: + items: + $ref: '#/components/schemas/ConnectConnector' + type: array + description: Connectors in this page. + pagination: + $ref: '#/components/schemas/ConnectPagination' + description: Cursor for the next page. + required: + - connectors + - pagination + type: object + description: Page of connectors. + ConnectError: + type: object + description: Error response returned by a Connect API operation. + required: + - error + additionalProperties: false + properties: + error: + type: object + required: + - code + - message + additionalProperties: true + properties: + code: + type: string + description: Stable machine-readable error code. + message: + type: string + description: Human-readable error message. + description: Error details. + ConnectConnector: + properties: + id: + type: string + description: Stable `scl_` connector ID. Use this value directly in `{connector}`. + uid: + type: string + description: Team-scoped UID. URL-encode this value before using it in `{connector}`. + defaultInstallationId: + type: string + description: Installation used when a token request does not specify an installation. + createdAt: + type: number + description: Creation time in epoch milliseconds. + updatedAt: + type: number + description: Last update time in epoch milliseconds. + reinstallAt: + type: number + description: Time when this connector started requiring reinstallation because an installation-affecting app-token grant changed. + createdBy: + description: Principal that created the connector. + properties: + type: + type: string + enum: + - user + description: Principal kind. + id: + type: string + description: Vercel user ID. + environment: + oneOf: + - type: string + - type: string + enum: + - development + - preview + - production + description: Deployment environment of the project principal. + required: + - id + - type + - environment + type: object + updatedBy: + description: Principal that most recently updated the connector. + properties: + type: + type: string + enum: + - user + description: Principal kind. + id: + type: string + description: Vercel user ID. + environment: + oneOf: + - type: string + - type: string + enum: + - development + - preview + - production + description: Deployment environment of the project principal. + required: + - id + - type + - environment + type: object + creationMode: + type: string + enum: + - managed + - manual + description: How the connector row was originally created. New create paths stamp this explicitly; older rows may omit it. + managed: + properties: + sync: + type: boolean + enum: + - false + - true + description: Whether Vercel synchronizes provider-side configuration. + type: object + description: Managed connector metadata exposed without leaking the manager connector or installation identifiers. + type: + type: string + enum: + - api-key + - aws-alpha + - custom + - discord + - github + - linear + - linq + - microsoft-entra + - microsoft-teams + - oauth + - photon + - salesforce + - sendblue + - slack + - snowflake + - snowflake-wif + description: Connector implementation type. + service: + type: string + description: 'Best-effort identifier of the third-party service this connector represents, independent of `type`. Examples: `''slack''`, `''mcp.linear.app''`, and `''auth.example.com''`. Always present in API responses.' + connectionMethod: + type: string + description: The connection method this connector was created from, when the create request named one. + target: + type: string + description: Which of the service's products/surfaces this connector points at. + name: + type: string + description: Connector name within the owning team. + displayName: + type: string + description: Human-readable connector name. + clientUrl: + nullable: true + type: string + description: Provider-side URL for viewing or managing the resource represented by the connector. The destination can be an app, account, phone line, or service instance, depending on the connector type. + redirectUri: + type: string + description: Redirect URI registered with the third-party service for this connector, if any. Used by `startAuthorization`/`startInstallation` to replay the exact URI back to the provider's token endpoint. Absent on connectors created before this field was introduced; those callers fall back to the `https://connect.vercel.com/callback` default. + typeName: + type: string + description: Human-readable name of the connector type. + typeIcon: + type: string + description: Icon identifier supplied by the connector type. + website: + type: string + description: Public website for the connected service. + devsite: + type: string + description: Developer website for the connected service. + docsite: + type: string + description: Developer documentation for the connected service. + icon: + type: string + description: Connector branding icon. SHA-1 hash that resolves to the uploaded icon through the Vercel avatar service. Consumers render this with `https://vercel.com/api/www/avatar/{icon}`. + backgroundColor: + type: string + description: Hex background color (e.g., `#000000`) for branding. + accentColor: + type: string + description: Hex accent color (e.g., `#000000`) for branding. + supportedSubjectTypes: + items: + type: string + type: array + description: Token subject types supported by the connector. + appTokens: + properties: + crossInstallation: + type: boolean + enum: + - false + - true + description: Whether one app token can be used across installations. + supportsRefinement: + type: boolean + enum: + - false + - true + description: Whether callers can narrow app-token grants per request. + supportsResources: + type: boolean + enum: + - false + - true + description: Whether callers can request resource-specific app tokens. + requiresReinstallation: + type: boolean + enum: + - false + - true + description: True when changing app token grants requires reinstalling the app, so tokens cannot be partitioned independently by requester environment. + scopes: + items: + type: string + type: array + description: Known allowed app-level scopes. For Slack this is the bot scope set configured on the app; for OAuth it is the connector's enabled `clientCredentials.scopes` configuration. + supportedAuthorizationDetails: + items: + type: string + type: array + description: Supported OAuth authorization-detail type names. + permissionsUrl: + type: string + description: Link to the page on the service where this connector's app-level permissions are declared and granted, when the service has one and it differs from `clientUrl`. + required: + - crossInstallation + - supportsRefinement + type: object + description: App-token capabilities and known grants for the connector. + userTokens: + properties: + crossInstallation: + type: boolean + enum: + - false + - true + description: Whether one user token can be used across installations. + supportsRefinement: + type: boolean + enum: + - false + - true + description: Whether callers can narrow user-token grants per request. + supportsResources: + type: boolean + enum: + - false + - true + description: Whether callers can request resource-specific user tokens. + scopes: + items: + type: string + type: array + description: Known allowed user-level scopes. For Slack this is the user scope set configured on the app; for OAuth it is the connector's enabled `userAuthorization.scopes` configuration. + supportedAuthorizationDetails: + items: + type: string + type: array + description: Supported OAuth authorization-detail type names. + manualCredentialInput: + type: boolean + enum: + - false + - true + description: User authorization is completed by the Connect consent screen submitting a credential instead of an OAuth redirect. + required: + - crossInstallation + - supportsRefinement + type: object + description: User-token capabilities and known grants for the connector. + supportsInstallation: + type: boolean + enum: + - false + - true + description: Whether the connector supports an installation flow. + supportsRevocation: + type: boolean + enum: + - false + - true + description: Whether Connect can revoke tokens for this connector. + supportsTriggers: + type: boolean + enum: + - false + - true + description: Whether this connector type supports trigger webhooks. Derived from the type definition; indicates that `triggers` and `triggerDestinations` may be meaningful for this connector. + supportsIcon: + enum: + - false + - maybe + - true + description: Whether the connector icon can propagate to the provider. + triggers: + $ref: '#/components/schemas/ConnectTriggerConfiguration' + description: Incoming trigger configuration for the connector. + events: + items: + type: string + type: array + description: Known events this connector subscribes to (e.g. Slack bot events, GitHub webhook events). Names are type-specific and validated by the managed-create flow when forwarded to the third-party service. + triggerDestinations: + items: + $ref: '#/components/schemas/ConnectTriggerDestination' + type: array + description: Destinations that incoming triggers should be forwarded to. Limited to 3 entries. Set the initial destination with `triggerDestination` during creation. Replace the complete set with `PATCH /v1/connect/connectors/{connector}/trigger-destinations`. + required: + - createdAt + - displayName + - id + - name + - service + - supportedSubjectTypes + - supportsIcon + - supportsInstallation + - supportsRevocation + - supportsTriggers + - type + - typeName + - uid + - updatedAt + type: object + description: A connector that defines how Vercel accesses an external service. + ConnectConnectorCreateResult: + properties: + id: + type: string + description: Stable `scl_` connector ID. Use this value directly in `{connector}`. + uid: + type: string + description: Team-scoped UID. URL-encode this value before using it in `{connector}`. + defaultInstallationId: + type: string + description: Installation used when a token request does not specify an installation. + createdAt: + type: number + description: Creation time in epoch milliseconds. + updatedAt: + type: number + description: Last update time in epoch milliseconds. + reinstallAt: + type: number + description: Time when this connector started requiring reinstallation because an installation-affecting app-token grant changed. + createdBy: + description: Principal that created the connector. + properties: + type: + type: string + enum: + - user + description: Principal kind. + id: + type: string + description: Vercel user ID. + environment: + oneOf: + - type: string + - type: string + enum: + - development + - preview + - production + x-speakeasy-name-override: created_by_environment + description: Deployment environment of the project principal. + title: CreatedByEnvironmentTarget + required: + - id + - type + - environment + type: object + updatedBy: + description: Principal that most recently updated the connector. + properties: + type: + type: string + enum: + - user + description: Principal kind. + id: + type: string + description: Vercel user ID. + environment: + oneOf: + - type: string + - type: string + enum: + - development + - preview + - production + x-speakeasy-name-override: updated_by_environment + description: Deployment environment of the project principal. + title: UpdatedByEnvironmentTarget + required: + - id + - type + - environment + type: object + creationMode: + type: string + enum: + - managed + - manual + description: How the connector row was originally created. New create paths stamp this explicitly; older rows may omit it. + managed: + properties: + sync: + type: boolean + enum: + - false + - true + description: Whether Vercel synchronizes provider-side configuration. + type: object + description: Managed connector metadata exposed without leaking the manager connector or installation identifiers. + type: + type: string + enum: + - api-key + - aws-alpha + - custom + - discord + - github + - linear + - linq + - microsoft-entra + - microsoft-teams + - oauth + - photon + - salesforce + - sendblue + - slack + - snowflake + - snowflake-wif + description: Connector implementation type. + service: + type: string + description: 'Best-effort identifier of the third-party service this connector represents, independent of `type`. Examples: `''slack''`, `''mcp.linear.app''`, and `''auth.example.com''`. Always present in API responses.' + connectionMethod: + type: string + description: The connection method this connector was created from, when the create request named one. + target: + type: string + description: Which of the service's products/surfaces this connector points at. + name: + type: string + description: Connector name within the owning team. + displayName: + type: string + description: Human-readable connector name. + clientUrl: + nullable: true + type: string + description: Provider-side URL for viewing or managing the resource represented by the connector. The destination can be an app, account, phone line, or service instance, depending on the connector type. + redirectUri: + type: string + description: Redirect URI registered with the third-party service for this connector, if any. Used by `startAuthorization`/`startInstallation` to replay the exact URI back to the provider's token endpoint. Absent on connectors created before this field was introduced; those callers fall back to the `https://connect.vercel.com/callback` default. + typeName: + type: string + description: Human-readable name of the connector type. + typeIcon: + type: string + description: Icon identifier supplied by the connector type. + website: + type: string + description: Public website for the connected service. + devsite: + type: string + description: Developer website for the connected service. + docsite: + type: string + description: Developer documentation for the connected service. + icon: + type: string + description: Connector branding icon. SHA-1 hash that resolves to the uploaded icon through the Vercel avatar service. Consumers render this with `https://vercel.com/api/www/avatar/{icon}`. + backgroundColor: + type: string + description: Hex background color (e.g., `#000000`) for branding. + accentColor: + type: string + description: Hex accent color (e.g., `#000000`) for branding. + supportedSubjectTypes: + items: + type: string + type: array + description: Token subject types supported by the connector. + appTokens: + properties: + crossInstallation: + type: boolean + enum: + - false + - true + description: Whether one app token can be used across installations. + supportsRefinement: + type: boolean + enum: + - false + - true + description: Whether callers can narrow app-token grants per request. + supportsResources: + type: boolean + enum: + - false + - true + description: Whether callers can request resource-specific app tokens. + requiresReinstallation: + type: boolean + enum: + - false + - true + description: True when changing app token grants requires reinstalling the app, so tokens cannot be partitioned independently by requester environment. + scopes: + items: + type: string + type: array + description: Known allowed app-level scopes. For Slack this is the bot scope set configured on the app; for OAuth it is the connector's enabled `clientCredentials.scopes` configuration. + supportedAuthorizationDetails: + items: + type: string + type: array + description: Supported OAuth authorization-detail type names. + permissionsUrl: + type: string + description: Link to the page on the service where this connector's app-level permissions are declared and granted, when the service has one and it differs from `clientUrl`. + required: + - crossInstallation + - supportsRefinement + type: object + description: App-token capabilities and known grants for the connector. + userTokens: + properties: + crossInstallation: + type: boolean + enum: + - false + - true + description: Whether one user token can be used across installations. + supportsRefinement: + type: boolean + enum: + - false + - true + description: Whether callers can narrow user-token grants per request. + supportsResources: + type: boolean + enum: + - false + - true + description: Whether callers can request resource-specific user tokens. + scopes: + items: + type: string + type: array + description: Known allowed user-level scopes. For Slack this is the user scope set configured on the app; for OAuth it is the connector's enabled `userAuthorization.scopes` configuration. + supportedAuthorizationDetails: + items: + type: string + type: array + description: Supported OAuth authorization-detail type names. + manualCredentialInput: + type: boolean + enum: + - false + - true + description: User authorization is completed by the Connect consent screen submitting a credential instead of an OAuth redirect. + required: + - crossInstallation + - supportsRefinement + type: object + description: User-token capabilities and known grants for the connector. + supportsInstallation: + type: boolean + enum: + - false + - true + description: Whether the connector supports an installation flow. + supportsRevocation: + type: boolean + enum: + - false + - true + description: Whether Connect can revoke tokens for this connector. + supportsTriggers: + type: boolean + enum: + - false + - true + description: Whether this connector type supports trigger webhooks. Derived from the type definition; indicates that `triggers` and `triggerDestinations` may be meaningful for this connector. + supportsIcon: + enum: + - false + - maybe + - true + description: Whether the connector icon can propagate to the provider. + triggers: + $ref: '#/components/schemas/ConnectTriggerConfiguration' + description: Incoming trigger configuration for the connector. + events: + items: + type: string + type: array + description: Known events this connector subscribes to (e.g. Slack bot events, GitHub webhook events). Names are type-specific and validated by the managed-create flow when forwarded to the third-party service. + triggerDestinations: + items: + $ref: '#/components/schemas/ConnectTriggerDestination' + type: array + description: Destinations that incoming triggers should be forwarded to. Limited to 3 entries. Set the initial destination with `triggerDestination` during creation. Replace the complete set with `PATCH /v1/connect/connectors/{connector}/trigger-destinations`. + required: + - createdAt + - displayName + - id + - name + - service + - supportedSubjectTypes + - supportsIcon + - supportsInstallation + - supportsRevocation + - supportsTriggers + - type + - typeName + - uid + - updatedAt + type: object + description: Connector created by the request. + ConnectCreateConnectorRequest: + type: object + required: + - data + - type + - service + - connectionMethod + properties: + data: + $ref: '#/components/schemas/ConnectConnectorCreateData' + description: Provider configuration for the selected connector type or connection method. + icon: + type: string + description: | + SHA-1 digest of a PNG or JPEG icon that is at least 640 by 640 pixels. This field does not accept a URL or image bytes. + + First compute the digest and upload the raw image with [POST /v2/files](https://vercel.com/docs/rest-api/deployments/upload-deployment-files). Send `Content-Length` and the same 40-character digest in `x-vercel-digest`. Then set `icon` to that digest. + + ```js + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const VERCEL_TOKEN = process.env.VERCEL_TOKEN; + const connectorId = 'scl_...'; + const bytes = await readFile('icon.png'); + const digest = createHash('sha1').update(bytes).digest('hex'); + + await fetch('https://api.vercel.com/v2/files', { + method: 'POST', + headers: { + Authorization: `Bearer ${VERCEL_TOKEN}`, + 'Content-Type': 'application/octet-stream', + 'Content-Length': String(bytes.length), + 'x-vercel-digest': digest, + }, + body: bytes, + }); + + await fetch(`https://api.vercel.com/v2/connect/connectors/${connectorId}`, { + method: 'PATCH', + headers: { + Authorization: `Bearer ${VERCEL_TOKEN}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ icon: digest }), + }); + ``` + pattern: ^[0-9a-fA-F]{40}$ + backgroundColor: + type: string + description: Branding background color (6-digit hex, for example + pattern: ^#[0-9a-fA-F]{6}$ + accentColor: + type: string + description: Branding accent color (6-digit hex, for example + pattern: ^#[0-9a-fA-F]{6}$ + type: + type: string + description: 'Connector implementation type for full configuration. Known types: api-key, discord, github, linear, linq, microsoft-entra, oauth, photon, salesforce, sendblue, slack, snowflake, snowflake-wif. Optional when service and connectionMethod select the type.' + service: + type: string + description: Service slug or URL for which the connector is used. Required when connectionMethod is set. Service alone does not enable preset configuration. + connectionMethod: + type: string + maxLength: 64 + description: Connection method slug of the service. Use it with service to select preset configuration. + params: + type: object + maxProperties: 16 + additionalProperties: + type: string + maxLength: 256 + description: Values for the selected connection method's template fields. Requires connectionMethod. + target: + type: string + maxLength: 64 + description: Which of the service's targets this connector is for. Requires \"connectionMethod\" and must be one that method serves. Optional. + uid: + type: string + description: Optional team-scoped unique identifier for the connector. If omitted or empty, Connect generates a value. + name: + type: string + description: Connector name. The value is trimmed and cannot contain control characters. If omitted or empty, the project name is used. A name or projectId is required. API key connectors require name. + projectId: + type: string + description: Project to connect during creation. If environments is omitted, the connection uses development, preview, and production. + environments: + minItems: 1 + description: Environments for the project connection. Requires projectId. Use one or more built-in environment names or stable custom environment IDs that belong to the project. Duplicate values are accepted and removed. + type: array + items: + anyOf: + - type: string + enum: + - development + - preview + - production + - type: string + pattern: ^env_ + description: A built-in environment name or the stable env_* ID of a custom environment. + triggers: + description: Whether the triggers are enabled for this connector. + type: boolean + triggerDestination: + description: Initial trigger destination. Requires triggers to be enabled and a projectId here or at the top level. Connector responses expose the resulting set as triggerDestinations. Replace the complete set with PATCH /v1/connect/connectors/{connector}/trigger-destinations. + title: Default deployment + type: object + minProperties: 1 + additionalProperties: false + properties: + projectId: + type: string + description: Project that receives triggers. During connector creation, omit it to use the top-level projectId. + minLength: 1 + path: + type: string + maxLength: 2048 + description: Route path on the linked project that receives forwarded trigger requests. + minLength: 1 + branch: + type: string + maxLength: 250 + description: Git branch used to select a preview deployment. + minLength: 1 + customEnvironmentId: + description: Stable custom environment ID that belongs to the destination project. + type: string + pattern: ^env_ + required: + - branch + - customEnvironmentId + events: + type: array + description: Default trigger events for this connector. + items: + type: string + description: Create a connector with full provider configuration or with a known service connection method. + title: Full configuration + ConnectConnectorUpdateResult: + properties: + connector: + $ref: '#/components/schemas/ConnectConnector' + description: Updated connector. + reinstallNeeded: + type: boolean + enum: + - false + - true + description: When true, prompt a team owner or administrator to reinstall the connector before relying on the change. + reconsentNeeded: + $ref: '#/components/schemas/ConnectReconsent' + description: Present when affected users must authorize the connector's new permissions. + serviceSync: + $ref: '#/components/schemas/ConnectServiceSync' + description: Result of synchronizing the change with the external service. + required: + - connector + type: object + description: Updated connector and any required provider follow-up actions. + ConnectUpdateConnectorRequest: + type: object + minProperties: 1 + additionalProperties: false + properties: + triggers: + description: Whether the triggers are enabled for this connector. + type: boolean + events: + type: array + description: Default trigger events for this connector. + items: + type: string + data: + $ref: '#/components/schemas/ConnectConnectorUpdateData' + description: Provider configuration fields to update. + icon: + type: string + description: | + SHA-1 digest of a PNG or JPEG icon that is at least 640 by 640 pixels. This field does not accept a URL or image bytes. + + First compute the digest and upload the raw image with [POST /v2/files](https://vercel.com/docs/rest-api/deployments/upload-deployment-files). Send `Content-Length` and the same 40-character digest in `x-vercel-digest`. Then set `icon` to that digest. + + ```js + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const VERCEL_TOKEN = process.env.VERCEL_TOKEN; + const connectorId = 'scl_...'; + const bytes = await readFile('icon.png'); + const digest = createHash('sha1').update(bytes).digest('hex'); + + await fetch('https://api.vercel.com/v2/files', { + method: 'POST', + headers: { + Authorization: `Bearer ${VERCEL_TOKEN}`, + 'Content-Type': 'application/octet-stream', + 'Content-Length': String(bytes.length), + 'x-vercel-digest': digest, + }, + body: bytes, + }); + + await fetch(`https://api.vercel.com/v2/connect/connectors/${connectorId}`, { + method: 'PATCH', + headers: { + Authorization: `Bearer ${VERCEL_TOKEN}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ icon: digest }), + }); + ``` + pattern: ^[0-9a-fA-F]{40}$ + backgroundColor: + type: string + accentColor: + type: string + uid: + type: string + description: Full team-scoped UID, such as `slack/my-bot`. It cannot contain whitespace, `%`, `#`, control characters, or Vercel-owned namespaces. Changing it breaks callers that use the old UID. The stable connector ID does not change. + name: + type: string + description: Display name for the connector. It is trimmed and cannot be empty or contain control characters. + description: Connector fields to update. + ConnectReplaceTriggerDestinationsRequest: + type: object + required: + - destinations + additionalProperties: false + properties: + destinations: + type: array + maxItems: 3 + description: Complete replacement set of trigger destinations. An empty array removes all destinations. Connector get and list responses expose the saved set as triggerDestinations. + items: + $ref: '#/components/schemas/ConnectTriggerDestinationInput' + description: Complete replacement set of trigger destinations. + ConnectConnectorProjectConnectionList: + properties: + projects: + items: + $ref: '#/components/schemas/ConnectProjectConnection' + type: array + description: Project connections in this page. + pagination: + $ref: '#/components/schemas/ConnectPagination' + description: Cursor for the next page. + required: + - pagination + - projects + type: object + description: Page of projects connected to a connector. + ConnectProjectConnection: + properties: + connectorId: + type: string + description: Stable `scl_` connector ID, even when the request used a UID. + project: + properties: + id: + type: string + description: Same Vercel project ID as the connection's top-level `projectId`. + name: + type: string + description: Current Vercel project name. + customEnvironments: + items: + properties: + id: + type: string + description: Stable custom environment ID. + slug: + type: string + description: Current human-readable custom environment slug. + required: + - id + - slug + type: object + description: Custom environments available on the project. This list can include environments where the connector is not enabled. + type: array + description: Custom environments available on the project. This list can include environments where the connector is not enabled. + required: + - id + - name + type: object + description: Vercel project connected to the connector. + enabledEnvironments: + items: + oneOf: + - type: string + - type: string + enum: + - development + - preview + - production + type: array + description: Environments where the connector is enabled for the project. + createdAt: + type: number + description: Time when the project connection was created, in epoch milliseconds. + updatedAt: + type: number + description: Time when the project connection was last updated, in epoch milliseconds. + required: + - connectorId + - createdAt + - enabledEnvironments + - project + - updatedAt + type: object + description: A connection between a connector and a Vercel project, including the environments where the connector is enabled. + ConnectUpsertProjectConnectionRequest: + type: object + required: + - environments + properties: + environments: + minItems: 1 + description: One or more built-in environment names or stable custom environment IDs that belong to the project. Duplicate values are accepted and removed. + type: array + items: + anyOf: + - type: string + enum: + - development + - preview + - production + - type: string + pattern: ^env_ + description: A built-in environment name or the stable env_* ID of a custom environment. + description: Environments enabled for a connector project connection. + ConnectProjectConnectorConnectionList: + properties: + connectors: + items: + $ref: '#/components/schemas/ConnectProjectConnection' + type: array + description: Connector connections in this page. + pagination: + $ref: '#/components/schemas/ConnectPagination' + description: Cursor for the next page. + required: + - connectors + - pagination + type: object + description: Page of connectors connected to a project. + ConnectPagination: + properties: + next: + nullable: true + type: string + description: Opaque value to pass as `cursor` on the next request. + required: + - next + type: object + description: Cursor for the next page. + ConnectTriggerConfiguration: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether incoming triggers are enabled for the connector. + required: + - enabled + type: object + description: Incoming trigger configuration. Only present when enabled. + ConnectTriggerDestination: + properties: + projectId: + type: string + description: Vercel project that receives matching trigger requests. + customEnvironmentId: + type: string + description: Stable custom-environment ID to route this destination to. Mutually exclusive with `branch`; omitted destinations keep the legacy production behavior. + branch: + type: string + description: Git branch used to select a preview deployment. + path: + type: string + description: Route path that receives the forwarded trigger request. + required: + - projectId + type: object + description: Destinations that incoming triggers should be forwarded to. Limited to 3 entries. Set the initial destination with `triggerDestination` during creation. Replace the complete set with `PATCH /v1/connect/connectors/{connector}/trigger-destinations`. + ConnectConnectorCreateData: + description: Provider configuration. With type, provide the complete configuration for that type. With service and connectionMethod, provide only credentials and preferences; Connect supplies the type, endpoints, templates, and defaults. Other connector types accept an arbitrary object. + type: object + properties: + serverUrl: + type: string + description: Authorization server base URL used for discovery. + serverConfig: + description: Authorization server metadata. Values override discovered metadata. Empty known string fields remove their stored overrides. + type: object + properties: + issuer: + type: string + description: Authorization server issuer URL. + authorization_endpoint: + type: string + description: OAuth authorization endpoint URL. + token_endpoint: + type: string + description: OAuth token endpoint URL. + userinfo_endpoint: + type: string + description: OpenID Connect UserInfo endpoint URL. + jwks_uri: + type: string + description: URL of the authorization server JSON Web Key Set. + jwks: + description: Inline authorization server JSON Web Key Set. + type: object + properties: + keys: + type: array + items: + type: object + properties: + kty: + type: string + description: JSON Web Key type. + kid: + type: string + description: JSON Web Key identifier. + use: + type: string + enum: + - sig + - enc + description: 'Intended key use: signing or encryption.' + key_ops: + type: array + items: + type: string + description: Operations permitted for this key. + alg: + type: string + description: Algorithm intended for this key. + required: + - kty + additionalProperties: true + description: JSON Web Keys published by the authorization server. + required: + - keys + additionalProperties: true + revocation_endpoint: + type: string + description: OAuth token revocation endpoint URL. + introspection_endpoint: + type: string + description: OAuth token introspection endpoint URL. + end_session_endpoint: + type: string + description: OpenID Connect session termination endpoint URL. + device_authorization_endpoint: + type: string + description: OAuth device authorization endpoint URL. + registration_endpoint: + type: string + description: OAuth dynamic client registration endpoint URL. + response_types_supported: + type: array + items: + type: string + description: OAuth response types supported by the server. + token_endpoint_auth_methods_supported: + type: array + items: + type: string + description: Token endpoint client authentication methods supported by the server. + token_endpoint_auth_signing_alg_values_supported: + type: array + items: + type: string + description: Signing algorithms supported for token endpoint authentication. + scopes_supported: + type: array + items: + type: string + description: OAuth scopes supported by the server. + grant_types_supported: + type: array + items: + type: string + description: OAuth grant types supported by the server. + response_modes_supported: + type: array + items: + type: string + description: OAuth response modes supported by the server. + subject_types_supported: + type: array + items: + type: string + description: OpenID Connect subject identifier types supported by the server. + id_token_signing_alg_values_supported: + type: array + items: + type: string + description: Signing algorithms supported for ID tokens. + id_token_encryption_alg_values_supported: + type: array + items: + type: string + description: Key management algorithms supported for encrypted ID tokens. + id_token_encryption_enc_values_supported: + type: array + items: + type: string + description: Content encryption algorithms supported for encrypted ID tokens. + claim_types_supported: + type: array + items: + type: string + description: OpenID Connect claim value types supported by the server. + claims_supported: + type: array + items: + type: string + description: Claims that the authorization server can return. + code_challenge_methods_supported: + type: array + items: + type: string + description: PKCE code challenge methods supported by the server. + prompt_values_supported: + type: array + items: + type: string + description: Authorization prompt values supported by the server. + claims_parameter_supported: + type: boolean + description: Whether authorization requests can use the claims parameter. + request_parameter_supported: + type: boolean + description: Whether authorization requests can use signed request objects. + request_uri_parameter_supported: + type: boolean + description: Whether authorization requests can use request_uri. + require_request_uri_registration: + type: boolean + description: Whether request_uri values must be registered in advance. + service_documentation: + type: string + description: Authorization server documentation URL. + op_policy_uri: + type: string + description: Authorization server privacy policy URL. + op_tos_uri: + type: string + description: Authorization server terms of service URL. + logo_uri: + type: string + description: Authorization server logo URL. + client_id_metadata_document_supported: + type: boolean + description: Whether the server supports OAuth client ID metadata documents. + authorization_details_types_supported: + type: array + items: + type: string + description: OAuth authorization-detail types supported by the server. + additionalProperties: true + default: {} + clientId: + type: string + description: OAuth client ID assigned by the provider. + clientName: + type: string + description: OAuth client name. + clientSecret: + type: string + description: OAuth client secret. + writeOnly: true + tokenEndpointAuthMethod: + type: string + description: OAuth token endpoint authentication method. Common values are client_secret_post, client_secret_basic, none, and private_key_jwt. If omitted, Vercel selects a supported method from serverConfig and otherwise uses client_secret_post. + responseType: + type: string + description: OAuth authorization response type. Defaults to code. Other provider-supported values are accepted. An empty string clears the configured type. + pkceRequired: + type: boolean + description: Whether user authorization must use PKCE. + codeChallengeMethod: + type: string + description: PKCE code challenge method. Supported values are S256 and plain. Vercel prefers S256 when the provider supports it. An empty string clears the configured method. + userAuthorization: + description: User authorization grant settings. + type: object + properties: + enabled: + type: boolean + description: Whether this OAuth grant is enabled. + scopes: + type: array + description: 'Default scopes to request when token params specify scopes: [\"*\"].' + items: + type: string + required: + - enabled + additionalProperties: false + refreshTokens: + description: Refresh token settings. + type: object + properties: + enabled: + type: boolean + description: Whether this OAuth grant is enabled. + required: + - enabled + additionalProperties: false + clientCredentials: + description: Client credentials grant settings. + type: object + properties: + enabled: + type: boolean + description: Whether this OAuth grant is enabled. + scopes: + type: array + description: 'Default scopes to request when token params specify scopes: [\"*\"].' + items: + type: string + required: + - enabled + additionalProperties: false + forwardedClaims: + type: object + additionalProperties: false + description: Allow-list of extra claims to propagate, keyed by source (idToken). Only claims named here and present in that source are exposed. + properties: + idToken: + type: array + items: + type: string + description: ID token claim names that Connect can expose. + defaultAudience: + type: string + description: Default audience used when a token request omits one. An empty string clears the default. + defaultTokenExpiresIn: + type: number + minimum: 60 + description: Default token lifetime in seconds to use when the token response omits expires_in. + authorizationUrlParams: + type: object + additionalProperties: + type: string + description: Extra query parameters added to authorization URLs. + jwtBearer: + description: JWT bearer grant settings. + type: object + properties: + enabled: + type: boolean + description: Whether JWT bearer grants are enabled. + scopes: + type: array + description: 'Default scopes to request when token params specify scopes: [\"*\"].' + items: + type: string + sub: + type: string + description: Default JWT subject claim. + iss: + type: string + description: Default JWT issuer claim. + aud: + type: string + description: Default JWT audience claim. + additionalClaims: + type: object + additionalProperties: {} + description: Additional claims included in generated JWT assertions. + ttl: + type: number + description: JWT lifetime in seconds. + minimum: 0 + exclusiveMinimum: true + useClientCredentials: + type: boolean + description: Whether JWT bearer requests also use client credentials. + additionalProperties: false + clientAssertion: + description: '`private_key_jwt` client assertion settings.' + type: object + additionalProperties: false + properties: + type: + type: string + description: OAuth client assertion type. Defaults to urn:ietf:params:oauth:client-assertion-type:jwt-bearer. An empty string clears the configured type. + ttl: + type: number + description: Client assertion lifetime in seconds. + minimum: 0 + exclusiveMinimum: true + claims: + type: object + additionalProperties: {} + description: Additional claims included in the client assertion. + subjectType: + type: string + enum: + - app + - user + description: Which subject the connector issues tokens for. Defaults to \"app\" (connector-level keys). \"user\" connectors store no connector-level values; each user supplies their own key during authorization. + values: + type: array + items: + type: object + properties: + value: + type: string + description: API key value. + writeOnly: true + scope: + type: string + description: Optional scope associated with the API key value. + expiresAt: + type: integer + description: The timestamp when the API key value expires in milliseconds. + minimum: 0 + exclusiveMinimum: true + required: + - value + additionalProperties: false + description: Initial API key values stored by the connector. + serviceUrls: + type: array + minItems: 1 + maxItems: 8 + items: + type: string + format: uri + description: The HTTPS resources the API key authenticates against. + instructions: + type: string + maxLength: 4000 + description: Markdown instructions shown to each user on the authorization screen, explaining how to obtain the key they should paste. + appId: + type: integer + description: GitHub App numeric ID. + minimum: 0 + exclusiveMinimum: true + appSlug: + type: string + description: GitHub App slug. + appName: + type: string + description: GitHub App display name. + owner: + description: GitHub App owner. + type: object + properties: + type: + type: string + enum: + - user + - organization + - User + - Organization + description: GitHub App owner type. + id: + type: integer + description: GitHub App owner numeric ID. + slug: + type: string + description: GitHub App owner login. + name: + type: string + description: GitHub App owner display name. + required: + - type + - id + - slug + additionalProperties: false + privateKeyPem: + type: string + description: GitHub App private key in PEM format. + writeOnly: true + webhookSecret: + type: string + description: GitHub App webhook secret. + writeOnly: true + extras: + type: object + additionalProperties: {} + description: Additional provider metadata stored with the connector. + appScopes: + type: array + items: + type: string + description: OAuth scopes requested for Linear application tokens. + userScopes: + type: array + items: + type: string + description: OAuth scopes requested for Linear user tokens. + ownerOrganization: + description: Linear organization that owns the OAuth application. + type: object + properties: + id: + type: string + description: Linear organization ID. + slug: + type: string + description: Linear organization slug. + name: + type: string + description: Linear organization name. + logoUrl: + type: string + description: Linear organization logo URL. + nullable: true + required: + - id + - slug + - name + additionalProperties: false + application: + description: Linear OAuth application metadata. + type: object + properties: + id: + type: string + description: Linear OAuth application ID. + clientId: + type: string + description: Linear OAuth client ID. + name: + type: string + description: Linear OAuth application name. + description: + type: string + description: Linear OAuth application description. + nullable: true + developer: + type: string + description: Linear OAuth application developer name. + nullable: true + developerUrl: + type: string + description: Linear OAuth application developer URL. + nullable: true + imageUrl: + type: string + description: Linear OAuth application image URL. + nullable: true + redirectUris: + type: array + items: + type: string + description: Registered redirect URIs for the Linear OAuth application. + distribution: + type: string + description: Linear OAuth application distribution mode. + nullable: true + webhookResourceTypes: + type: array + items: + type: string + description: Linear resource types delivered to the webhook. + webhookUrl: + type: string + description: Linear webhook URL. + nullable: true + webhookEnabled: + type: boolean + description: Whether the Linear webhook is enabled. + createdAt: + type: string + description: Linear OAuth application creation timestamp. + updatedAt: + type: string + description: Linear OAuth application update timestamp. + required: + - id + - clientId + - name + additionalProperties: false + apiToken: + type: string + description: Linq partner API token for the shared line. + writeOnly: true + phoneNumbers: + type: array + items: + type: string + pattern: ^\\+[1-9]\\d{1,14}$ + consumerKey: + type: string + description: Salesforce connected app consumer key. + consumerSecret: + type: string + description: Salesforce connected app consumer secret. + writeOnly: true + loginHost: + type: string + description: Salesforce login host, such as login.salesforce.com. + apiKeyId: + type: string + description: Sendblue API key id (`sb-api-key-id`). + apiSecretKey: + type: string + description: Sendblue API secret key (`sb-api-secret-key`). + writeOnly: true + slackTeam: + description: Slack workspace metadata. + type: object + properties: + id: + type: string + description: Slack workspace ID. + name: + type: string + description: Slack workspace name. + domain: + type: string + description: Slack workspace domain. + required: + - id + additionalProperties: false + signingSecret: + type: string + description: Slack request signing secret. + writeOnly: true + verificationToken: + type: string + description: Legacy Slack webhook verification token. + writeOnly: true + botScopes: + type: array + items: + type: string + description: OAuth scopes requested for Slack bot tokens. + slashCommands: + type: array + maxItems: 50 + items: + type: object + properties: + command: + type: string + pattern: ^\\/ + maxLength: 32 + description: Slash command including its leading slash. + description: + type: string + maxLength: 2000 + description: Description shown for the slash command in Slack. + usageHint: + type: string + maxLength: 1000 + description: Optional usage hint shown for the slash command. + shouldEscape: + type: boolean + description: Whether Slack should escape command arguments. + required: + - command + - description + additionalProperties: false + description: Slash commands configured for the managed Slack app. + shortcuts: + type: array + maxItems: 10 + items: + type: object + properties: + type: + type: string + enum: + - global + - message + description: Where Slack exposes the shortcut. + name: + type: string + description: Shortcut display name. + callbackId: + type: string + maxLength: 255 + description: Identifier included in the shortcut callback. + description: + type: string + maxLength: 150 + description: Description shown for the shortcut in Slack. + required: + - type + - name + - callbackId + - description + additionalProperties: false + description: Global and message shortcuts configured for the Slack app. + accountIdentifier: + type: string + description: Snowflake account identifier. + defaultSessionRole: + type: string + description: Default Snowflake role for created sessions. + projectId: + type: string + description: Photon project ID. + projectSecret: + type: string + description: Photon project secret. + writeOnly: true + required: + - clientId + - appId + - appSlug + - appName + - clientSecret + - apiToken + - consumerKey + - consumerSecret + - loginHost + - apiKeyId + - apiSecretKey + - accountIdentifier + - projectId + - projectSecret + additionalProperties: false + title: type:oauth + ConnectReconsent: + properties: + scope: + type: string + enum: + - user + description: The affected authorization scope. user means each affected user must authorize again. + required: + - scope + type: object + description: Existing authorizations no longer cover the connector's configured scopes, so they must be re-authorized. + ConnectServiceSync: + properties: + status: + type: string + enum: + - done + - required + description: done means the external service was updated. required means the Vercel update was saved, but provider-side configuration still needs attention. + errors: + items: + $ref: '#/components/schemas/ConnectServiceSyncError' + type: array + description: Provider synchronization errors. Present when serviceSync.status is required. + required: + - status + type: object + description: Provider-side configuration synchronization result. + ConnectConnectorUpdateData: + description: Provider configuration fields for the connector type. + type: object + properties: + serverUrl: + type: string + description: Authorization server base URL used for discovery. + serverConfig: + description: Authorization server metadata. Values override discovered metadata. Empty known string fields remove their stored overrides. + type: object + properties: + issuer: + type: string + description: Authorization server issuer URL. + authorization_endpoint: + type: string + description: OAuth authorization endpoint URL. + token_endpoint: + type: string + description: OAuth token endpoint URL. + userinfo_endpoint: + type: string + description: OpenID Connect UserInfo endpoint URL. + jwks_uri: + type: string + description: URL of the authorization server JSON Web Key Set. + jwks: + description: Inline authorization server JSON Web Key Set. + type: object + properties: + keys: + type: array + items: + type: object + properties: + kty: + type: string + description: JSON Web Key type. + kid: + type: string + description: JSON Web Key identifier. + use: + type: string + enum: + - sig + - enc + description: 'Intended key use: signing or encryption.' + key_ops: + type: array + items: + type: string + description: Operations permitted for this key. + alg: + type: string + description: Algorithm intended for this key. + required: + - kty + additionalProperties: true + description: JSON Web Keys published by the authorization server. + required: + - keys + additionalProperties: true + revocation_endpoint: + type: string + description: OAuth token revocation endpoint URL. + introspection_endpoint: + type: string + description: OAuth token introspection endpoint URL. + end_session_endpoint: + type: string + description: OpenID Connect session termination endpoint URL. + device_authorization_endpoint: + type: string + description: OAuth device authorization endpoint URL. + registration_endpoint: + type: string + description: OAuth dynamic client registration endpoint URL. + response_types_supported: + type: array + items: + type: string + description: OAuth response types supported by the server. + token_endpoint_auth_methods_supported: + type: array + items: + type: string + description: Token endpoint client authentication methods supported by the server. + token_endpoint_auth_signing_alg_values_supported: + type: array + items: + type: string + description: Signing algorithms supported for token endpoint authentication. + scopes_supported: + type: array + items: + type: string + description: OAuth scopes supported by the server. + grant_types_supported: + type: array + items: + type: string + description: OAuth grant types supported by the server. + response_modes_supported: + type: array + items: + type: string + description: OAuth response modes supported by the server. + subject_types_supported: + type: array + items: + type: string + description: OpenID Connect subject identifier types supported by the server. + id_token_signing_alg_values_supported: + type: array + items: + type: string + description: Signing algorithms supported for ID tokens. + id_token_encryption_alg_values_supported: + type: array + items: + type: string + description: Key management algorithms supported for encrypted ID tokens. + id_token_encryption_enc_values_supported: + type: array + items: + type: string + description: Content encryption algorithms supported for encrypted ID tokens. + claim_types_supported: + type: array + items: + type: string + description: OpenID Connect claim value types supported by the server. + claims_supported: + type: array + items: + type: string + description: Claims that the authorization server can return. + code_challenge_methods_supported: + type: array + items: + type: string + description: PKCE code challenge methods supported by the server. + prompt_values_supported: + type: array + items: + type: string + description: Authorization prompt values supported by the server. + claims_parameter_supported: + type: boolean + description: Whether authorization requests can use the claims parameter. + request_parameter_supported: + type: boolean + description: Whether authorization requests can use signed request objects. + request_uri_parameter_supported: + type: boolean + description: Whether authorization requests can use request_uri. + require_request_uri_registration: + type: boolean + description: Whether request_uri values must be registered in advance. + service_documentation: + type: string + description: Authorization server documentation URL. + op_policy_uri: + type: string + description: Authorization server privacy policy URL. + op_tos_uri: + type: string + description: Authorization server terms of service URL. + logo_uri: + type: string + description: Authorization server logo URL. + client_id_metadata_document_supported: + type: boolean + description: Whether the server supports OAuth client ID metadata documents. + authorization_details_types_supported: + type: array + items: + type: string + description: OAuth authorization-detail types supported by the server. + additionalProperties: true + default: {} + clientId: + type: string + description: OAuth client ID. + clientName: + type: string + description: OAuth client name. + clientSecret: + type: string + description: OAuth client secret. + writeOnly: true + tokenEndpointAuthMethod: + type: string + description: OAuth token endpoint authentication method. Common values are client_secret_post, client_secret_basic, none, and private_key_jwt. If omitted, Vercel selects a supported method from serverConfig and otherwise uses client_secret_post. + responseType: + type: string + description: OAuth authorization response type. Defaults to code. Other provider-supported values are accepted. An empty string clears the configured type. + pkceRequired: + type: boolean + description: Whether user authorization must use PKCE. + codeChallengeMethod: + type: string + description: PKCE code challenge method. Supported values are S256 and plain. Vercel prefers S256 when the provider supports it. An empty string clears the configured method. + userAuthorization: + description: User authorization grant settings. + type: object + properties: + enabled: + type: boolean + description: Whether this OAuth grant is enabled. + scopes: + type: array + description: 'Default scopes to request when token params specify scopes: [\"*\"].' + items: + type: string + required: + - enabled + additionalProperties: false + refreshTokens: + description: Refresh token settings. + type: object + properties: + enabled: + type: boolean + description: Whether this OAuth grant is enabled. + required: + - enabled + additionalProperties: false + clientCredentials: + description: Client credentials grant settings. + type: object + properties: + enabled: + type: boolean + description: Whether this OAuth grant is enabled. + scopes: + type: array + description: 'Default scopes to request when token params specify scopes: [\"*\"].' + items: + type: string + required: + - enabled + additionalProperties: false + forwardedClaims: + type: object + additionalProperties: false + description: Allow-list of extra claims to propagate, keyed by source (idToken). Only claims named here and present in that source are exposed. + properties: + idToken: + type: array + items: + type: string + description: ID token claim names that Connect can expose. + defaultAudience: + type: string + description: Default audience used when a token request omits one. An empty string clears the default. + defaultTokenExpiresIn: + type: number + minimum: 60 + description: Default token lifetime in seconds to use when the token response omits expires_in. + authorizationUrlParams: + type: object + additionalProperties: + type: string + description: Extra query parameters added to authorization URLs. + jwtBearer: + description: JWT bearer grant settings. + type: object + properties: + enabled: + type: boolean + description: Whether JWT bearer grants are enabled. + scopes: + type: array + description: 'Default scopes to request when token params specify scopes: [\"*\"].' + items: + type: string + sub: + type: string + description: Default JWT subject claim. + iss: + type: string + description: Default JWT issuer claim. + aud: + type: string + description: Default JWT audience claim. + additionalClaims: + type: object + additionalProperties: {} + description: Additional claims included in generated JWT assertions. + ttl: + type: number + description: JWT lifetime in seconds. + minimum: 0 + exclusiveMinimum: true + useClientCredentials: + type: boolean + description: Whether JWT bearer requests also use client credentials. + additionalProperties: false + clientAssertion: + description: '`private_key_jwt` client assertion settings.' + type: object + additionalProperties: false + properties: + type: + type: string + description: OAuth client assertion type. Defaults to urn:ietf:params:oauth:client-assertion-type:jwt-bearer. An empty string clears the configured type. + ttl: + type: number + description: Client assertion lifetime in seconds. + minimum: 0 + exclusiveMinimum: true + claims: + type: object + additionalProperties: {} + description: Additional claims included in the client assertion. + toDelete: + type: array + items: + type: string + description: Stored API key value IDs to delete. + toAdd: + type: array + items: + type: object + properties: + value: + type: string + description: API key value. + writeOnly: true + scope: + type: string + description: Optional scope associated with the API key value. + expiresAt: + type: integer + description: The timestamp when the API key value expires in milliseconds. + minimum: 0 + exclusiveMinimum: true + required: + - value + additionalProperties: false + description: API key values to add. + toUpdate: + type: array + items: + type: object + properties: + id: + type: string + description: Stored API key value ID. + value: + anyOf: + - type: string + - type: string + description: Replacement API key value. Use null to keep the stored value. + writeOnly: true + scope: + anyOf: + - type: string + - type: string + description: Replacement scope. Use null to remove the scope. + expiresAt: + anyOf: + - type: integer + minimum: 0 + exclusiveMinimum: true + - type: string + description: The timestamp when the API key value expires in milliseconds. + required: + - id + additionalProperties: false + description: Existing API key values to update. + instructions: + anyOf: + - type: string + maxLength: 4000 + - type: string + description: Markdown instructions shown to each user on the authorization screen, explaining how to obtain the key they should paste. + appId: + type: integer + description: GitHub App numeric ID. + minimum: 0 + exclusiveMinimum: true + appSlug: + type: string + description: GitHub App slug. + appName: + type: string + description: GitHub App display name. + owner: + description: GitHub App owner. + type: object + properties: + type: + type: string + enum: + - user + - organization + - User + - Organization + description: GitHub App owner type. + id: + type: integer + description: GitHub App owner numeric ID. + slug: + type: string + description: GitHub App owner login. + name: + type: string + description: GitHub App owner display name. + required: + - type + - id + - slug + additionalProperties: false + privateKeyPem: + type: string + description: GitHub App private key in PEM format. + writeOnly: true + webhookSecret: + type: string + description: GitHub App webhook secret. + writeOnly: true + extras: + type: object + additionalProperties: {} + description: Additional provider metadata stored with the connector. + appScopes: + type: array + items: + type: string + description: OAuth scopes requested for Linear application tokens. + userScopes: + type: array + items: + type: string + description: OAuth scopes requested for Linear user tokens. + ownerOrganization: + description: Linear organization that owns the OAuth application. + type: object + properties: + id: + type: string + description: Linear organization ID. + slug: + type: string + description: Linear organization slug. + name: + type: string + description: Linear organization name. + logoUrl: + type: string + description: Linear organization logo URL. + nullable: true + required: + - id + - slug + - name + additionalProperties: false + application: + description: Linear OAuth application metadata. + type: object + properties: + id: + type: string + description: Linear OAuth application ID. + clientId: + type: string + description: Linear OAuth client ID. + name: + type: string + description: Linear OAuth application name. + description: + type: string + description: Linear OAuth application description. + nullable: true + developer: + type: string + description: Linear OAuth application developer name. + nullable: true + developerUrl: + type: string + description: Linear OAuth application developer URL. + nullable: true + imageUrl: + type: string + description: Linear OAuth application image URL. + nullable: true + redirectUris: + type: array + items: + type: string + description: Registered redirect URIs for the Linear OAuth application. + distribution: + type: string + description: Linear OAuth application distribution mode. + nullable: true + webhookResourceTypes: + type: array + items: + type: string + description: Linear resource types delivered to the webhook. + webhookUrl: + type: string + description: Linear webhook URL. + nullable: true + webhookEnabled: + type: boolean + description: Whether the Linear webhook is enabled. + createdAt: + type: string + description: Linear OAuth application creation timestamp. + updatedAt: + type: string + description: Linear OAuth application update timestamp. + required: + - id + - clientId + - name + additionalProperties: false + consumerKey: + type: string + description: Salesforce connected app consumer key. + consumerSecret: + type: string + description: Salesforce connected app consumer secret. + writeOnly: true + loginHost: + type: string + description: Salesforce login host, such as login.salesforce.com. + slackTeam: + description: Slack workspace metadata. + type: object + properties: + id: + type: string + description: Slack workspace ID. + name: + type: string + description: Slack workspace name. + domain: + type: string + description: Slack workspace domain. + required: + - id + additionalProperties: false + signingSecret: + type: string + description: Slack request signing secret. + writeOnly: true + verificationToken: + type: string + description: Legacy Slack webhook verification token. + writeOnly: true + botScopes: + type: array + items: + type: string + description: OAuth scopes requested for Slack bot tokens. + slashCommands: + type: array + maxItems: 50 + items: + type: object + properties: + command: + type: string + pattern: ^\\/ + maxLength: 32 + description: Slash command including its leading slash. + description: + type: string + maxLength: 2000 + description: Description shown for the slash command in Slack. + usageHint: + type: string + maxLength: 1000 + description: Optional usage hint shown for the slash command. + shouldEscape: + type: boolean + description: Whether Slack should escape command arguments. + required: + - command + - description + additionalProperties: false + description: Slash commands configured for the managed Slack app. + shortcuts: + type: array + maxItems: 10 + items: + type: object + properties: + type: + type: string + enum: + - global + - message + description: Where Slack exposes the shortcut. + name: + type: string + description: Shortcut display name. + callbackId: + type: string + maxLength: 255 + description: Identifier included in the shortcut callback. + description: + type: string + maxLength: 150 + description: Description shown for the shortcut in Slack. + required: + - type + - name + - callbackId + - description + additionalProperties: false + description: Global and message shortcuts configured for the Slack app. + accountIdentifier: + type: string + description: Snowflake account identifier. + defaultSessionRole: + type: string + description: Default Snowflake role for created sessions. + apiToken: + type: string + description: Linq partner API token for the shared line. + writeOnly: true + phoneNumbers: + type: array + items: + type: string + pattern: ^\\+[1-9]\\d{1,14}$ + apiKeyId: + type: string + description: Sendblue API key id (`sb-api-key-id`). + apiSecretKey: + type: string + description: Sendblue API secret key (`sb-api-secret-key`). + writeOnly: true + projectSecret: + type: string + description: Photon project secret. + writeOnly: true + repairWebhook: + type: boolean + description: Whether Connect should recreate the Photon webhook. + additionalProperties: false + title: type:oauth + ConnectTriggerDestinationInput: + description: A destination in the complete replacement set. Each destination targets the default deployment, a branch, or a custom environment. + title: Default deployment + type: object + required: + - projectId + - branch + - customEnvironmentId + additionalProperties: false + properties: + projectId: + type: string + description: Project that receives matching trigger requests. + minLength: 1 + path: + type: string + maxLength: 2048 + description: Route path on the linked project that receives forwarded trigger requests. + minLength: 1 + branch: + type: string + maxLength: 250 + description: Git branch used to select a preview deployment. + minLength: 1 + customEnvironmentId: + description: Stable custom environment ID that belongs to the destination project. + type: string + pattern: ^env_ + ConnectServiceSyncError: + properties: + message: + type: string + description: Human-readable provider synchronization error. + fields: + items: + type: string + type: array + description: Connector fields that caused the synchronization error. + vendor: + additionalProperties: true + type: object + description: Provider-specific error details that are safe to expose. + required: + - message + type: object + description: Provider synchronization errors, when synchronization is required. + x-stackQL-resources: + connectors: + id: vercel.connect.connectors + name: connectors + title: Connectors + methods: + list: + operation: + $ref: '#/paths/~1v2~1connect~1connectors/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.connectors + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v1~1connect~1connectors~1{connector}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1connect~1connectors~1{connector}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1connectors/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1connect~1connectors~1{connector}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + replace_trigger_destinations: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1connectors~1{connector}~1trigger-destinations/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_token: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1token~1{connector}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_authorization_request: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1authorize~1{connector}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connectors/methods/get' + - $ref: '#/components/x-stackQL-resources/connectors/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connectors/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/connectors/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/connectors/methods/delete' + replace: [] + connector_project_connections: + id: vercel.connect.connector_project_connections + name: connector_project_connections + title: Connector Project Connections + methods: + list: + operation: + $ref: '#/paths/~1v2~1connect~1connectors~1{connector}~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.projects + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v1~1connect~1connectors~1{connector}~1projects~1{project_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + upsert: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1connectors~1{connector}~1projects~1{project_id}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1connect~1connectors~1{connector}~1projects~1{project_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/connector_project_connections/methods/get' + - $ref: '#/components/x-stackQL-resources/connector_project_connections/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/connector_project_connections/methods/upsert' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/connector_project_connections/methods/delete' + replace: [] + project_connectors: + id: vercel.connect.project_connectors + name: project_connectors + title: Project Connectors + methods: + list: + operation: + $ref: '#/paths/~1v2~1connect~1projects~1{project_id}~1connectors/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.connectors + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/project_connectors/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/deployments.yaml b/providers/src/vercel/v00.00.00000/services/deployments.yaml index dfa7d42b..2cdde688 100644 --- a/providers/src/vercel/v00.00.00000/services/deployments.yaml +++ b/providers/src/vercel/v00.00.00000/services/deployments.yaml @@ -1,387 +1,10 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: deployments API + description: vercel deployments API version: 0.0.1 - title: Vercel API - deployments - description: deployments -components: - schemas: - FileTree: - properties: - name: - type: string - description: The name of the file tree entry - example: my-file.json - type: - type: string - enum: - - directory - - file - - symlink - - lambda - - middleware - - invalid - description: String indicating the type of file tree entry. - example: file - uid: - type: string - description: The unique identifier of the file (only valid for the `file` type) - example: 2d4aad419917f15b1146e9e03ddc9bb31747e4d0 - children: - items: - $ref: '#/components/schemas/FileTree' - type: array - description: The list of children files of the directory (only valid for the `directory` type) - contentType: - type: string - description: The content-type of the file (only valid for the `file` type) - example: application/json - mode: - type: number - description: The file "mode" indicating file type and permissions. - symlink: - type: string - description: Not currently used. See `file-list-to-tree.ts`. - required: - - name - - type - - mode - type: object - description: A deployment file tree entry - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - builds: - id: vercel.deployments.builds - name: builds - title: Builds - methods: - get_builds_for_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1builds/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.builds - _get_builds_for_deployment: - operation: - $ref: '#/paths/~1deployments~1{deploymentId}~1builds/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/builds/methods/get_builds_for_deployment' - insert: [] - update: [] - delete: [] - events: - id: vercel.deployments.events - name: events - title: Events - methods: - get_deployment_events: - operation: - $ref: '#/paths/~1v2~1deployments~1{idOrUrl}~1events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/events/methods/get_deployment_events' - insert: [] - update: [] - delete: [] - deployments: - id: vercel.deployments.deployments - name: deployments - title: Deployments - methods: - get_deployment: - operation: - $ref: '#/paths/~1v13~1deployments~1{idOrUrl}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_deployment: - operation: - $ref: '#/paths/~1v13~1deployments/post' - response: - mediaType: application/json - openAPIDocKey: '200' - cancel_deployment: - operation: - $ref: '#/paths/~1v12~1deployments~1{id}~1cancel/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - get_deployments: - operation: - $ref: '#/paths/~1v6~1deployments/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.deployments - _get_deployments: - operation: - $ref: '#/paths/~1v6~1deployments/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_deployment: - operation: - $ref: '#/paths/~1v13~1deployments~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/deployments/methods/get_deployment' - - $ref: '#/components/x-stackQL-resources/deployments/methods/get_deployments' - insert: - - $ref: '#/components/x-stackQL-resources/deployments/methods/create_deployment' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/deployments/methods/delete_deployment' - files: - id: vercel.deployments.files - name: files - title: Files - methods: - upload_file: - operation: - $ref: '#/paths/~1v2~1files/post' - response: - mediaType: application/json - openAPIDocKey: '200' - list_deployment_files: - operation: - $ref: '#/paths/~1v6~1deployments~1{id}~1files/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_deployment_file_contents: - operation: - $ref: '#/paths/~1v6~1deployments~1{id}~1files~1{fileId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/files/methods/list_deployment_files' - insert: [] - update: [] - delete: [] paths: - '/deployments/{deploymentId}/builds': - get: - description: Retrieves the list of builds given their deployment's unique identifier. No longer listed as public API as of May 2023. - operationId: getBuildsForDeployment - security: [] - tags: - - deployments - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - builds: - items: - properties: - id: - type: string - description: The unique identifier of the Build - deploymentId: - type: string - description: The unique identifier of the deployment - entrypoint: - type: string - description: The entrypoint of the deployment - readyState: - type: string - enum: - - INITIALIZING - - BUILDING - - UPLOADING - - DEPLOYING - - READY - - ARCHIVED - - ERROR - - QUEUED - - CANCELED - description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' - readyStateAt: - type: number - description: The time at which the Build state was last modified - scheduledAt: - nullable: true - type: number - description: The time at which the Build was scheduled to be built - createdAt: - type: number - description: The time at which the Build was created - deployedAt: - type: number - description: The time at which the Build was deployed - createdIn: - type: string - description: The region where the Build was first created - use: - type: string - description: The Runtime the Build used to generate the output - config: - properties: - distDir: - type: string - forceBuildIn: - type: string - reuseWorkPathFrom: - type: string - zeroConfig: - type: boolean - type: object - description: An object that contains the Build's configuration - output: - items: - properties: - type: - type: string - enum: - - lambda - - file - - edge - description: The type of the output - path: - type: string - description: The absolute path of the file or Serverless Function - digest: - type: string - description: The SHA1 of the file - mode: - type: number - description: The POSIX file permissions - size: - type: number - description: The size of the file in bytes - lambda: - nullable: true - properties: - functionName: - type: string - deployedTo: - items: - type: string - type: array - memorySize: - type: number - timeout: - type: number - layers: - items: - type: string - type: array - required: - - functionName - - deployedTo - type: object - description: 'If the output is a Serverless Function, an object containing the name, location and memory size of the function' - edge: - nullable: true - properties: - regions: - nullable: true - items: - type: string - type: array - description: 'The regions where the edge function will be invoked. Only exists if the edge function as a regional edge function, see: https://vercel.com/docs/concepts/edge-network/regions#setting-edge-function-regions' - required: - - regions - type: object - description: Exists if the output is an edge function. - required: - - path - - digest - - mode - type: object - description: A list of outputs for the Build that can be either Serverless Functions or static files - type: array - description: A list of outputs for the Build that can be either Serverless Functions or static files - fingerprint: - nullable: true - type: string - description: 'If the Build uses the `@vercel/static` Runtime, it contains a hashed string of all outputs' - copiedFrom: - type: string - required: - - id - - deploymentId - - entrypoint - - readyState - - output - type: object - description: An object representing a Build on Vercel - type: array - required: - - builds - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - '404': - description: Deployment was not found - parameters: - - name: deploymentId - description: The deployment unique identifier - in: path - required: true - schema: - type: string - description: The deployment unique identifier - '/v2/deployments/{idOrUrl}/events': + /v3/deployments/{id_or_url}/events: get: description: Get the build logs of a deployment by deployment ID and build ID. It can work as an infinite stream of logs or as a JSON endpoint depending on the input parameters. operationId: getDeploymentEvents @@ -392,1080 +15,429 @@ paths: - deployments responses: '200': - description: |- - A stream of jsonlines where each line is a deployment log item. - Array of deployment logs for the provided query. + description: '' content: application/json: schema: - type: array - items: - oneOf: - - properties: - type: - type: string - enum: - - command - created: - type: number - payload: - properties: - deploymentId: - type: string - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - deployment-state - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - created: - type: number - payload: - properties: - deploymentId: + $ref: '#/components/schemas/GetDeploymentEventsResponse' + application/stream+json: + schema: + properties: + type: + type: string + enum: + - command + - delimiter + - deployment-state + - edge-function-invocation + - exit + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + created: + type: number + statusCode: + type: number + requestId: + type: string + proxy: + properties: + timestamp: + type: number + method: + type: string + host: + type: string + path: + type: string + statusCode: + type: number + userAgent: + items: type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: + type: array + referer: + type: string + clientIp: + type: string + region: + type: string + scheme: + type: string + responseByteSize: + type: number + cacheId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + vercelId: + type: string + vercelCache: + type: string + enum: + - BYPASS + - HIT + - MISS + - PRERENDER + - REVALIDATED + - STALE + lambdaRegion: + type: string + wafAction: + type: string + enum: + - bypass + - challenge + - deny + - log + - rate_limit + wafRuleId: + type: string + required: + - host + - method + - timestamp + type: object + required: + - date + - deploymentId + - id + - serial + type: object + date: + type: number + deploymentId: + type: string + id: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + serial: + type: string + text: + type: string + level: + type: string + enum: + - error + - warning + required: + - created + - payload + - type + - date + - deploymentId + - id + - info + - serial + type: object + oneOf: + - properties: + type: + type: string + enum: + - command + - delimiter + - deployment-state + - edge-function-invocation + - exit + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + created: + type: number + statusCode: + type: number + requestId: + type: string + proxy: + properties: + timestamp: + type: number + method: + type: string + host: + type: string + path: + type: string + statusCode: + type: number + userAgent: + items: type: string - required: - - type - - name - type: object - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - exit - created: - type: number - payload: - properties: - date: - type: number - text: - type: string - id: - type: string - deploymentId: - type: string - created: - type: number - serial: - type: string - required: - - date - - id - - deploymentId - - created - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - middleware - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - requestId: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - - command - - stdout - - stderr - - exit - - deployment-state - - middleware - - middleware-invocation - - edge-function-invocation - - fatal - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - statusCode: - type: number - requestId: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - oneOf: - - type: object - - properties: - type: - type: string - enum: - - command - created: - type: number - payload: - properties: - deploymentId: - type: string - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - deployment-state - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - exit - created: - type: number - payload: - properties: - date: - type: number - text: - type: string - id: - type: string - deploymentId: - type: string - created: - type: number - serial: - type: string - required: - - date - - id - - deploymentId - - created - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - middleware - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - requestId: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - - command - - stdout - - stderr - - exit - - deployment-state - - middleware - - middleware-invocation - - edge-function-invocation - - fatal - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - statusCode: - type: number - requestId: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - application/stream+json: - schema: - oneOf: - - properties: - type: - type: string - enum: - - command - created: - type: number - payload: - properties: - deploymentId: - type: string - text: - type: string - id: - type: string - date: - type: number - serial: - type: string + type: array + referer: + type: string + clientIp: + type: string + region: + type: string + scheme: + type: string + responseByteSize: + type: number + cacheId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + vercelId: + type: string + vercelCache: + type: string + enum: + - BYPASS + - HIT + - MISS + - PRERENDER + - REVALIDATED + - STALE + lambdaRegion: + type: string + wafAction: + type: string + enum: + - bypass + - challenge + - deny + - log + - rate_limit + wafRuleId: + type: string + required: + - host + - method + - timestamp + type: object required: + - date - deploymentId - id - - date - serial type: object required: - - type - created - payload + - type type: object - properties: - type: - type: string - enum: - - deployment-state created: type: number - payload: + date: + type: number + deploymentId: + type: string + id: + type: string + info: properties: - deploymentId: + type: type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: + name: type: string - date: - type: number - serial: + entrypoint: type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - created: - type: number - payload: - properties: - deploymentId: + path: type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: + step: type: string - date: - type: number - serial: + readyState: + type: string + serviceName: type: string required: - - deploymentId - - info - - id - - date - - serial + - name + - type type: object - required: - - type - - created - - payload - type: object - - properties: + serial: + type: string + text: + type: string type: type: string enum: + - command + - delimiter + - deployment-state + - edge-function-invocation - exit - created: - type: number - payload: - properties: - date: - type: number - text: - type: string - id: - type: string - deploymentId: - type: string - created: - type: number - serial: - type: string - required: - - date - - id - - deploymentId - - created - - serial - type: object + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + level: + type: string + enum: + - error + - warning required: - - type - created - - payload + - date + - deploymentId + - id + - info + - serial + - type type: object - properties: type: type: string enum: - - middleware - created: + - alias-assigned + deploymentId: + type: string + date: type: number - payload: + alias: + items: + type: string + type: array + aliasError: + nullable: true properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: + code: type: string - requestId: + message: type: string required: - - deploymentId - - info - - id - - date - - serial + - code + - message type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - - command - - stdout - - stderr - - exit - - deployment-state - - middleware - - middleware-invocation - - edge-function-invocation - - fatal - created: - type: number - payload: + aliasWarning: + nullable: true properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: + code: type: string - id: + message: type: string - date: - type: number - serial: + link: type: string - statusCode: - type: number - requestId: + action: type: string required: - - deploymentId - - info - - id - - date - - serial + - code + - message type: object required: + - alias + - aliasError + - aliasWarning + - date + - deploymentId - type - - created - - payload type: object - - oneOf: - - type: object - - properties: - type: - type: string - enum: - - command - created: - type: number - payload: - properties: - deploymentId: - type: string - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - deployment-state - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - id: - type: string - date: - type: number - serial: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - exit - created: - type: number - payload: - properties: - date: - type: number - text: - type: string - id: - type: string - deploymentId: - type: string - created: - type: number - serial: - type: string - required: - - date - - id - - deploymentId - - created - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - middleware - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - requestId: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object - - properties: - type: - type: string - enum: - - delimiter - - command - - stdout - - stderr - - exit - - deployment-state - - middleware - - middleware-invocation - - edge-function-invocation - - fatal - created: - type: number - payload: - properties: - deploymentId: - type: string - info: - properties: - type: - type: string - name: - type: string - entrypoint: - type: string - path: - type: string - step: - type: string - required: - - type - - name - type: object - text: - type: string - id: - type: string - date: - type: number - serial: - type: string - statusCode: - type: number - requestId: - type: string - required: - - deploymentId - - info - - id - - date - - serial - type: object - required: - - type - - created - - payload - type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. - '404': - description: The deployment was not found + '410': + description: '' + '500': + description: '' parameters: - - name: idOrUrl + - name: id_or_url description: The unique identifier or hostname of the deployment. in: path required: true @@ -1486,7 +458,7 @@ paths: example: backward description: Order of the returned events based on the timestamp. - name: follow - description: 'When enabled, this endpoint will return live events as they happen.' + description: When enabled, this endpoint will return live events as they happen. in: query required: false schema: @@ -1495,7 +467,7 @@ paths: - 0 - 1 example: 1 - description: 'When enabled, this endpoint will return live events as they happen.' + description: When enabled, this endpoint will return live events as they happen. - name: limit description: Maximum number of events to return. Provide `-1` to return all available logs. in: query @@ -1556,13 +528,107 @@ paths: - 0 - 1 example: 1 - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/deployments/{deployment_id}/integrations/{integration_configuration_id}/resources/{resource_id}/actions/{action}: + patch: + description: Updates the deployment integration action for the specified integration installation + operationId: update-integration-deployment-action + security: + - bearerToken: [] + summary: Update deployment integration action + tags: + - deployments + - integrations + responses: + '202': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: deployment_id + in: path + required: true + schema: + type: string + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + - name: action + in: path required: true schema: type: string - '/v13/deployments/{idOrUrl}': + requestBody: + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - running + - succeeded + - failed + statusText: + type: string + statusUrl: + type: string + format: uri + pattern: '^https?://|^sso:' + outcomes: + type: array + items: + oneOf: + - type: object + properties: + kind: + type: string + secrets: + type: array + items: + type: object + properties: + name: + type: string + value: + type: string + required: + - name + - value + additionalProperties: false + required: + - kind + - secrets + additionalProperties: false + additionalProperties: false + /v13/deployments/{id_or_url}: get: description: Retrieves information for a deployment either by supplying its ID (`id` property) or Hostname (`url` property). Additional details will be included when the authenticated user or team is an owner of the deployment. operationId: getDeployment @@ -1574,1947 +640,853 @@ paths: responses: '200': description: |- - The deployment including only public information - The deployment including both public and private information + Returns a reduced view of the deployment with public information only. Private fields are omitted when the requester is not the deployment owner. + Returns the deployment object for the authenticated owner, including private fields such as environment variables, build log URLs, and internal metadata. + Returns the reduced deployment view for anonymous (`vcn_`) callers. Pool-team details are withheld. content: application/json: schema: - oneOf: - - properties: - build: - properties: - env: - items: - type: string - type: array - description: The keys of the environment variables that were assigned during the build phase. - example: - - MY_ENV_VAR - required: - - env - type: object - builds: - items: - type: object - type: array - connectBuildsEnabled: - type: boolean - description: The flag saying if Vercel Connect configuration is used for builds - connectConfigurationId: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + type: boolean + enum: + - false + - true + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + aliasError: + nullable: true + properties: + code: type: string - description: The ID of Vercel Connect configuration used for this deployment - createdIn: + message: type: string - description: The region where the deployment was first created - example: sfo1 - env: - items: - type: string - type: array - description: The keys of the environment variables that were assigned during runtime - example: - - MY_SECRET - functions: - nullable: true - additionalProperties: - properties: - memory: - type: number - maxDuration: - type: number - runtime: - type: string - includeFiles: - type: string - excludeFiles: - type: string + required: + - code + - message + type: object + description: An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null` + example: null + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + errorCode: + type: string + errorMessage: + nullable: true + type: string + aliasAssignedAt: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + alwaysRefuseToBuild: + type: boolean + enum: + - false + - true + build: + properties: + env: + items: + type: string + type: array + required: + - env + type: object + buildArtifactUrls: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + config: + additionalProperties: true type: object - description: An object used to configure your Serverless Functions - example: - api/test.js: - memory: 3008 + required: + - use + type: object + type: array + env: + items: + type: string + type: array + resourceConfig: + properties: + buildMachine: + properties: + purchaseType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + description: Machine type which was purchased/selected for this build. `basic` is the 2vCPU tier, recorded on the deployment so the build pipeline can detect a basic build without consulting the project. + defaultPurchaseType: + type: string + enum: + - basic + - enhanced + - standard + description: The default plan type for the build machine — what the customer is *paying* for on their plan. For most customers, this is standard, but some customers have an entitlement for enhanced builds. + machineSelectionType: + type: string + enum: + - elastic + - fixed + description: Whether the build ran on a fixed or elastic machine. Used to drive billing for the build. + selectionSource: + type: string + enum: + - elastic-algorithm + - plan-default + - project-setting + - team-entitlement + - team-setting + description: The setting which selected the build machine when the deployment was created. Frozen here so later project or team changes do not rewrite its history. + cores: + type: number + description: Number of cores the build machine ran with. Set at dispatch time once the build lands on a hive. + memory: + type: number + description: Memory, in MiB, the build machine ran with. Set at dispatch time once the build lands on a hive. type: object - description: An object used to configure your Serverless Functions - example: - api/test.js: - memory: 3008 - inspectorUrl: + description: Build machine configuration recorded for this deployment's build. See {@link DeploymentBuildMachine}. Distinct from the team/user `resourceConfig.buildMachine`, which only carries `default`. + type: object + inspectorUrl: + nullable: true + type: string + isInConcurrentBuildsQueue: + type: boolean + enum: + - false + - true + isInSystemBuildsQueue: + type: boolean + enum: + - false + - true + projectSettings: + properties: + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + buildCommand: nullable: true type: string - description: Vercel URL to inspect the deployment. - example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' - isInConcurrentBuildsQueue: - type: boolean - description: Is the deployment currently queued waiting for a Concurrent Build Slot to be available - example: false - meta: - additionalProperties: - type: string - description: An object containing the deployment's metadata - example: - foo: bar - type: object - description: An object containing the deployment's metadata - example: - foo: bar - monorepoManager: + devCommand: nullable: true type: string - description: An monorepo manager that was used for the deployment - example: turbo - name: + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + commandForIgnoringBuildStep: + nullable: true type: string - description: The name of the project associated with the deployment at the time that the deployment was created - example: my-project - ownerId: + installCommand: + nullable: true type: string - description: The unique ID of the user or team the deployment belongs to - example: ZspSRT4ljIEEmMHgoDwKWDei - plan: + outputDirectory: + nullable: true + type: string + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + type: object + integrations: + properties: + status: type: string enum: - - pro - - enterprise - - hobby - - oss - description: The pricing plan the deployment was made under - example: pro - projectId: + - error + - pending + - ready + - skipped + - timeout + startedAt: + type: number + claimedAt: + type: number + completedAt: + type: number + skippedAt: + type: number + skippedBy: type: string - description: The ID of the project the deployment is associated with - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB - routes: - nullable: true + required: + - startedAt + - status + type: object + images: + properties: + sizes: items: - oneOf: - - properties: - src: - type: string - dest: - type: string - headers: - additionalProperties: - type: string - type: object - methods: - items: - type: string - type: array - continue: - type: boolean - override: - type: boolean - caseSensitive: - type: boolean - check: - type: boolean - important: - type: boolean - status: - type: number - has: - items: - oneOf: - - properties: - type: - type: string - enum: - - host - value: - type: string - required: - - type - - value - type: object - - properties: - type: - type: string - enum: - - header - - cookie - - query - key: - type: string - value: - type: string - required: - - type - - key - type: object - type: array - missing: - items: - oneOf: - - properties: - type: - type: string - enum: - - host - value: - type: string - required: - - type - - value - type: object - - properties: - type: - type: string - enum: - - header - - cookie - - query - key: - type: string - value: - type: string - required: - - type - - key - type: object - type: array - locale: - properties: - redirect: - additionalProperties: - type: string - type: object - cookie: - type: string - type: object - middlewarePath: - type: string - description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. - middlewareRawSrc: - items: - type: string - type: array - description: The original middleware matchers. - middleware: - type: number - description: A middleware index in the `middleware` key under the build result - required: - - src - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - - properties: - handle: - type: string - enum: - - error - - filesystem - - hit - - miss - - rewrite - - resource - src: - type: string - dest: - type: string - status: - type: number - required: - - handle - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - - properties: - src: - type: string - continue: - type: boolean - middleware: - type: number - enum: - - 0 - required: - - src - - continue - - middleware - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' + type: number type: array - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - gitRepo: - nullable: true - oneOf: - - properties: - namespace: - type: string - projectId: - type: number - type: - type: string - enum: - - gitlab - url: - type: string - path: - type: string - defaultBranch: - type: string - name: - type: string - private: - type: boolean - ownerType: - type: string - enum: - - team - - user - required: - - namespace - - projectId - - type - - url - - path - - defaultBranch - - name - - private - - ownerType - type: object - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: - type: string - enum: - - github - repoOwnerId: - type: string - path: - type: string - defaultBranch: - type: string - name: - type: string - private: - type: boolean - ownerType: - type: string - enum: - - team - - user - required: - - org - - repo - - repoId - - type - - repoOwnerId - - path - - defaultBranch - - name - - private - - ownerType - type: object - - properties: - owner: - type: string - repoUuid: - type: string - slug: - type: string - type: - type: string - enum: - - bitbucket - workspaceUuid: - type: string - path: - type: string - defaultBranch: - type: string - name: - type: string - private: - type: boolean - ownerType: - type: string - enum: - - team - - user - required: - - owner - - repoUuid - - slug - - type - - workspaceUuid - - path - - defaultBranch - - name - - private - - ownerType - type: object - aliasAssignedAt: - nullable: true - oneOf: - - type: number - - type: boolean - lambdas: + qualities: + items: + type: number + type: array + domains: + items: + type: string + type: array + remotePatterns: items: properties: - id: + protocol: type: string - createdAt: - type: number - entrypoint: - nullable: true + enum: + - http + - https + description: Must be `http` or `https`. + hostname: type: string - readyState: + description: Can be literal or wildcard. Single `*` matches a single subdomain. Double `**` matches any number of subdomains. + port: type: string - enum: - - BUILDING - - ERROR - - INITIALIZING - - READY - readyStateAt: - type: number - output: - items: - properties: - path: - type: string - functionName: - type: string - required: - - path - - functionName - type: object - type: array + description: Can be literal port such as `8080` or empty string meaning no port. + pathname: + type: string + description: Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments. + search: + type: string + description: Can be literal query string such as `?v=1` or empty string meaning no query string. required: - - id - - output + - hostname type: object type: array - public: - type: boolean - description: A boolean representing if the deployment is public or not. By default this is `false` - example: false - readyState: - type: string - enum: - - QUEUED - - BUILDING - - ERROR - - INITIALIZING - - READY - - CANCELED - description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' - example: READY - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - description: The substate of the deployment when the state is "READY" - example: STAGED - regions: + localPatterns: + items: + properties: + pathname: + type: string + description: Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments. + search: + type: string + description: Can be literal query string such as `?v=1` or empty string meaning no query string. + type: object + type: array + minimumCacheTTL: + type: number + formats: items: type: string + enum: + - image/avif + - image/webp type: array - description: The regions the deployment exists in - example: - - sfo1 - source: - type: string + dangerouslyAllowSVG: + type: boolean enum: - - cli - - git - - import - - import/repo - - clone/repo - description: Where was the deployment created from - example: cli - target: - nullable: true + - false + - true + contentSecurityPolicy: + type: string + contentDispositionType: type: string enum: - - staging - - production - description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' - example: null - team: - properties: - id: - type: string - description: The ID of the team owner - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - name: - type: string - description: The name of the team owner - example: FSociety - slug: - type: string - description: The slug of the team owner - example: fsociety - required: - - id - - name - - slug - type: object - description: The team that owns the deployment if any + - attachment + - inline + type: object + bootedAt: + type: number + buildingAt: + type: number + buildContainerFinishedAt: + type: number + description: Since April 2025 it necessary for On-Demand Concurrency Minutes calculation + buildSkipped: + type: boolean + enum: + - false + - true + creator: + properties: + uid: + type: string + description: Stable creator id across principal types (user id, app id, integration configuration id, or `system`). + example: 96SnxkFiMyVKsK3pnoHfx3Hz type: type: string enum: - - LAMBDAS - url: + - app + - integration + - system + - user + description: Principal type of the deployment creator. + username: type: string - description: A string with the unique URL of the deployment - example: my-instant-deployment-3ij3cxz9qr.now.sh - userAliases: - items: + description: The username of the user that created the deployment + example: john-doe + avatar: + type: string + description: The avatar of the user that created the deployment + required: + - uid + type: object + description: Information about the deployment creator + initReadyAt: + type: number + isFirstBranchDeployment: + type: boolean + enum: + - false + - true + lambdas: + items: + properties: + id: type: string - type: array - description: An array of domains that were provided by the user when creating the Deployment. - example: - - sub1.example.com - - sub2.example.com - version: - type: number - enum: - - 2 - description: The platform version that was used to create the deployment. - example: 2 - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - alias: - items: + readyState: type: string - type: array - description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' - example: [] - aliasAssigned: - type: boolean - description: A boolean that will be true when the aliases from the alias property were assigned successfully - example: true - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' - example: null - aliasFinal: - nullable: true - type: string - aliasWarning: - nullable: true - properties: - code: - type: string - message: - type: string - link: - type: string - action: - type: string - required: - - code - - message - type: object - autoAssignCustomDomains: - type: boolean - automaticAliases: - items: + enum: + - BUILDING + - ERROR + - INITIALIZING + - READY + createdAt: + type: number + entrypoint: + nullable: true type: string - type: array - bootedAt: - type: number - buildErrorAt: - type: number - buildingAt: - type: number - canceledAt: - type: number - checksState: - type: string - enum: - - registered - - running - - completed - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - createdAt: - type: number - description: A number containing the date when the deployment was created in milliseconds - example: 1540257589405 - creator: - properties: - uid: - type: string - description: The ID of the user that created the deployment - example: 96SnxkFiMyVKsK3pnoHfx3Hz - username: - type: string - description: The username of the user that created the deployment - example: john-doe - required: - - uid - type: object - description: Information about the deployment creator - errorCode: + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - functionName + - path + type: object + type: array + required: + - id + - output + type: object + description: A partial representation of a Build used by the deployment endpoint. + type: array + public: + type: boolean + enum: + - false + - true + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + ready: + type: number + status: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + team: + properties: + id: type: string - errorLink: + name: type: string - errorMessage: - nullable: true + slug: type: string - errorStep: + avatar: type: string - gitSource: - oneOf: - - properties: + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + userAliases: + items: + type: string + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + ttyBuildLogs: + type: boolean + enum: + - false + - true + customEnvironment: + oneOf: + - properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: type: type: string enum: - - github - repoId: - oneOf: - - type: string - - type: number - ref: - nullable: true - type: string - sha: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: type: string - prId: - nullable: true - type: number + description: The pattern to match against branch names required: + - pattern - type - - repoId type: object - - properties: - type: - type: string - enum: - - github - org: - type: string - repo: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - org - - repo - type: object - - properties: - type: - type: string - enum: - - gitlab - projectId: - oneOf: - - type: string - - type: number - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - projectId - type: object - - properties: - type: - type: string - enum: - - bitbucket - workspaceUuid: - type: string - repoUuid: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - repoUuid - type: object - - properties: - type: - type: string - enum: - - bitbucket - owner: - type: string - slug: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - owner - - slug - type: object - - properties: - type: - type: string - enum: - - custom - ref: - type: string - sha: - type: string - gitUrl: - type: string - required: - - type - - ref - - sha - - gitUrl - type: object - - properties: - type: - type: string - enum: - - github - ref: - type: string - sha: - type: string - repoId: - type: number - org: - type: string - repo: - type: string - required: - - type - - ref - - sha - - repoId - type: object - - properties: - type: - type: string - enum: - - gitlab - ref: - type: string - sha: - type: string - projectId: - type: number - required: - - type - - ref - - sha - - projectId - type: object - - properties: - type: - type: string - enum: - - bitbucket - ref: - type: string - sha: - type: string - owner: - type: string - slug: - type: string - workspaceUuid: - type: string - repoUuid: - type: string - required: - - type - - ref - - sha - - workspaceUuid - - repoUuid - type: object - id: - type: string - description: A string holding the unique ID of the deployment - example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ - required: - - build - - createdIn - - env - - inspectorUrl - - isInConcurrentBuildsQueue - - meta - - name - - ownerId - - plan - - projectId - - routes - - public - - readyState - - regions - - type - - url - - version - - alias - - aliasAssigned - - bootedAt - - buildingAt - - createdAt - - creator - - id - type: object - description: The deployment including both public and private information - - properties: - lambdas: - items: - properties: - id: - type: string - createdAt: - type: number - entrypoint: - nullable: true - type: string - readyState: + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: type: string - enum: - - BUILDING - - ERROR - - INITIALIZING - - READY - readyStateAt: - type: number - output: - items: - properties: - path: - type: string - functionName: - type: string - required: - - path - - functionName - type: object - type: array - required: - - id - - output - type: object - type: array - name: - type: string - description: The name of the project associated with the deployment at the time that the deployment was created - example: my-project - meta: - additionalProperties: - type: string - description: An object containing the deployment's metadata - example: - foo: bar - type: object - description: An object containing the deployment's metadata - example: - foo: bar - public: - type: boolean - description: A boolean representing if the deployment is public or not. By default this is `false` - example: false - readyState: - type: string - enum: - - QUEUED - - BUILDING - - ERROR - - INITIALIZING - - READY - - CANCELED - description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' - example: READY - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - description: The substate of the deployment when the state is "READY" - example: STAGED - regions: - items: - type: string - type: array - description: The regions the deployment exists in - example: - - sfo1 - source: - type: string - enum: - - cli - - git - - import - - import/repo - - clone/repo - description: Where was the deployment created from - example: cli - target: - nullable: true - type: string - enum: - - staging - - production - description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' - example: null - team: - properties: - id: - type: string - description: The ID of the team owner - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - name: - type: string - description: The name of the team owner - example: FSociety - slug: - type: string - description: The slug of the team owner - example: fsociety + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated required: + - createdAt - id - - name - slug + - type + - updatedAt type: object - description: The team that owns the deployment if any - type: - type: string - enum: - - LAMBDAS - url: - type: string - description: A string with the unique URL of the deployment - example: my-instant-deployment-3ij3cxz9qr.now.sh - userAliases: - items: - type: string - type: array - description: An array of domains that were provided by the user when creating the Deployment. - example: - - sub1.example.com - - sub2.example.com - version: - type: number - enum: - - 2 - description: The platform version that was used to create the deployment. - example: 2 - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - alias: - items: - type: string - type: array - description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' - example: [] - aliasAssigned: - type: boolean - description: A boolean that will be true when the aliases from the alias property were assigned successfully - example: true - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' - example: null - aliasFinal: - nullable: true - type: string - aliasWarning: - nullable: true - properties: - code: - type: string - message: - type: string - link: - type: string - action: + description: If the deployment was created using a Custom Environment, then this property contains information regarding the environment used. + - properties: + id: type: string required: - - code - - message + - id type: object - autoAssignCustomDomains: - type: boolean - automaticAliases: - items: - type: string - type: array - bootedAt: - type: number - buildErrorAt: - type: number - buildingAt: - type: number - canceledAt: - type: number - checksState: - type: string - enum: - - registered - - running - - completed - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - createdAt: - type: number - description: A number containing the date when the deployment was created in milliseconds - example: 1540257589405 - creator: - properties: - uid: - type: string - description: The ID of the user that created the deployment - example: 96SnxkFiMyVKsK3pnoHfx3Hz - username: - type: string - description: The username of the user that created the deployment - example: john-doe - required: - - uid - type: object - description: Information about the deployment creator - errorCode: - type: string - errorLink: - type: string - errorMessage: - nullable: true - type: string - errorStep: - type: string - gitSource: - oneOf: - - properties: - type: - type: string - enum: - - github - repoId: - oneOf: - - type: string - - type: number - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - repoId - type: object - - properties: - type: - type: string - enum: - - github - org: - type: string - repo: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - org - - repo - type: object - - properties: - type: - type: string - enum: - - gitlab - projectId: - oneOf: - - type: string - - type: number - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - projectId - type: object - - properties: - type: - type: string - enum: - - bitbucket - workspaceUuid: - type: string - repoUuid: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - repoUuid - type: object - - properties: - type: - type: string - enum: - - bitbucket - owner: - type: string - slug: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - owner - - slug - type: object - - properties: - type: - type: string - enum: - - custom - ref: - type: string - sha: - type: string - gitUrl: - type: string - required: - - type - - ref - - sha - - gitUrl - type: object - - properties: - type: - type: string - enum: - - github - ref: - type: string - sha: - type: string - repoId: - type: number - org: - type: string - repo: - type: string - required: - - type - - ref - - sha - - repoId - type: object - - properties: - type: - type: string - enum: - - gitlab - ref: - type: string - sha: - type: string - projectId: - type: number - required: - - type - - ref - - sha - - projectId - type: object - - properties: - type: - type: string - enum: - - bitbucket - ref: - type: string - sha: - type: string - owner: - type: string - slug: - type: string - workspaceUuid: - type: string - repoUuid: - type: string - required: - - type - - ref - - sha - - workspaceUuid - - repoUuid - type: object - id: - type: string - description: A string holding the unique ID of the deployment - example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ - required: - - name - - meta - - public - - readyState - - regions - - type - - url - - version - - alias - - aliasAssigned - - bootedAt - - buildingAt - - createdAt - - creator - - id - type: object - description: The deployment including only public information - '400': - description: One of the provided values in the request query is invalid. - '403': - description: You do not have permission to access this resource. - '404': - description: The deployment was not found - parameters: - - name: idOrUrl - description: The unique identifier or hostname of the deployment. - in: path - required: true - schema: - example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ - description: The unique identifier or hostname of the deployment. - type: string - - name: withGitRepoInfo - description: Whether to add in gitRepo information. - in: query - required: false - schema: - description: Whether to add in gitRepo information. - type: string - example: 'true' - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - /v13/deployments: - post: - description: 'Create a new deployment with all the required and intended data. If the deployment is not a git deployment, all files must be provided with the request, either referenced or inlined. Additionally, a deployment id can be specified to redeploy a previous deployment.' - operationId: createDeployment - security: - - bearerToken: [] - summary: Create a new deployment - tags: - - deployments - responses: - '200': - description: The successfully created deployment - content: - application/json: - schema: - properties: - build: - properties: - env: - items: - type: string - type: array - description: The keys of the environment variables that were assigned during the build phase. - example: - - MY_ENV_VAR - required: - - env - type: object - builds: - items: - type: object - type: array - connectBuildsEnabled: - type: boolean - description: The flag saying if Vercel Connect configuration is used for builds - connectConfigurationId: - type: string - description: The ID of Vercel Connect configuration used for this deployment - createdIn: - type: string - description: The region where the deployment was first created - example: sfo1 - env: - items: - type: string - type: array - description: The keys of the environment variables that were assigned during runtime - example: - - MY_SECRET - functions: - nullable: true - additionalProperties: - properties: - memory: - type: number - maxDuration: - type: number - runtime: - type: string - includeFiles: - type: string - excludeFiles: - type: string - type: object - description: An object used to configure your Serverless Functions - example: - api/test.js: - memory: 3008 - type: object - description: An object used to configure your Serverless Functions - example: - api/test.js: - memory: 3008 - inspectorUrl: - nullable: true + description: If the deployment was created using a Custom Environment, then this property contains information regarding the environment used. + oomReport: type: string - description: Vercel URL to inspect the deployment. - example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' - isInConcurrentBuildsQueue: - type: boolean - description: Is the deployment currently queued waiting for a Concurrent Build Slot to be available - example: false - meta: - additionalProperties: - type: string - description: An object containing the deployment's metadata - example: - foo: bar - type: object - description: An object containing the deployment's metadata - example: - foo: bar - monorepoManager: - nullable: true + enum: + - out-of-memory + readyStateReason: type: string - description: An monorepo manager that was used for the deployment - example: turbo + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 name: type: string description: The name of the project associated with the deployment at the time that the deployment was created example: my-project - ownerId: + type: type: string - description: The unique ID of the user or team the deployment belongs to - example: ZspSRT4ljIEEmMHgoDwKWDei - plan: + enum: + - LAMBDAS + aliasFinal: + nullable: true type: string + autoAssignCustomDomains: + type: boolean enum: - - pro - - enterprise - - hobby - - oss - description: The pricing plan the deployment was made under - example: pro - projectId: + - false + - true + description: applies to custom domains only, defaults to `true` + automaticAliases: + items: + type: string + type: array + buildErrorAt: + type: number + checksState: type: string - description: The ID of the project the deployment is associated with - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB - routes: + enum: + - completed + - registered + - running + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + deletedAt: nullable: true - items: - oneOf: - - properties: - src: - type: string - dest: - type: string - headers: - additionalProperties: - type: string - type: object - methods: - items: - type: string - type: array - continue: - type: boolean - override: - type: boolean - caseSensitive: - type: boolean - check: - type: boolean - important: - type: boolean - status: - type: number - has: - items: - oneOf: - - properties: - type: - type: string - enum: - - host - value: - type: string - required: - - type - - value - type: object - - properties: - type: - type: string - enum: - - header - - cookie - - query - key: - type: string - value: - type: string - required: - - type - - key - type: object - type: array - missing: - items: - oneOf: - - properties: - type: - type: string - enum: - - host - value: - type: string - required: - - type - - value - type: object - - properties: - type: - type: string - enum: - - header - - cookie - - query - key: - type: string - value: - type: string - required: - - type - - key - type: object - type: array - locale: - properties: - redirect: - additionalProperties: - type: string - type: object - cookie: - type: string - type: object - middlewarePath: - type: string - description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. - middlewareRawSrc: - items: - type: string - type: array - description: The original middleware matchers. - middleware: - type: number - description: A middleware index in the `middleware` key under the build result - required: - - src - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - - properties: - handle: - type: string - enum: - - error - - filesystem - - hit - - miss - - rewrite - - resource - src: - type: string - dest: - type: string - status: - type: number - required: - - handle - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - - properties: - src: - type: string - continue: - type: boolean - middleware: - type: number - enum: - - 0 - required: - - src - - continue - - middleware - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' + type: number + description: A number containing the date when the deployment was deleted at milliseconds + example: 1540257589405 + defaultRoute: + type: string + description: Computed field that is only available for deployments with a microfrontend configuration. + canceledAt: + type: number + errorLink: + type: string + errorStep: + type: string + passiveRegions: + items: + type: string type: array - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - gitRepo: - nullable: true + description: Since November 2023 this field defines a set of regions that we will deploy the lambda to passively Lambdas will be deployed to these regions but only invoked if all of the primary `regions` are marked as out of service + gitSource: oneOf: - properties: - namespace: - type: string - projectId: - type: number type: type: string enum: - - gitlab - url: - type: string - path: - type: string - defaultBranch: - type: string - name: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true type: string - private: - type: boolean - ownerType: + sha: type: string - enum: - - team - - user + prId: + nullable: true + type: number required: - - namespace - - projectId + - repoId - type - - url - - path - - defaultBranch - - name - - private - - ownerType type: object - properties: - org: - type: string - repo: - type: string - repoId: - type: number type: type: string enum: - github - repoOwnerId: - type: string - path: + org: type: string - defaultBranch: + repo: type: string - name: + ref: + nullable: true type: string - private: - type: boolean - ownerType: + sha: type: string - enum: - - team - - user + prId: + nullable: true + type: number required: - org - repo - - repoId - type - - repoOwnerId - - path - - defaultBranch - - name - - private - - ownerType type: object - properties: - owner: + type: type: string - repoUuid: + enum: + - github-custom-host + host: type: string - slug: + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: type: string + prId: + nullable: true + type: number + required: + - host + - repoId + - type + type: object + - properties: type: type: string enum: - - bitbucket - workspaceUuid: + - github-custom-host + host: type: string - path: + org: type: string - defaultBranch: + repo: type: string - name: + ref: + nullable: true type: string - private: - type: boolean - ownerType: + sha: type: string - enum: - - team - - user + prId: + nullable: true + type: number required: - - owner - - repoUuid - - slug + - host + - org + - repo - type - - workspaceUuid - - path - - defaultBranch - - name - - private - - ownerType type: object - aliasAssignedAt: - nullable: true - oneOf: - - type: number - - type: boolean - lambdas: - items: - properties: - id: - type: string - createdAt: - type: number - entrypoint: - nullable: true - type: string - readyState: - type: string - enum: - - BUILDING - - ERROR - - INITIALIZING - - READY - readyStateAt: - type: number - output: - items: - properties: - path: - type: string - functionName: - type: string - required: - - path - - functionName - type: object - type: array - required: - - id - - output - type: object - type: array - public: - type: boolean - description: A boolean representing if the deployment is public or not. By default this is `false` - example: false - readyState: - type: string - enum: - - QUEUED - - BUILDING - - ERROR - - INITIALIZING - - READY - - CANCELED - description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' - example: READY - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - description: The substate of the deployment when the state is "READY" - example: STAGED - regions: - items: - type: string - type: array - description: The regions the deployment exists in - example: - - sfo1 - source: - type: string - enum: - - cli - - git - - import - - import/repo - - clone/repo - description: Where was the deployment created from - example: cli - target: - nullable: true - type: string - enum: - - staging - - production - description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' - example: null - team: - properties: - id: - type: string - description: The ID of the team owner - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - name: - type: string - description: The name of the team owner - example: FSociety - slug: - type: string - description: The slug of the team owner - example: fsociety - required: - - id - - name - - slug - type: object - description: The team that owns the deployment if any - type: - type: string - enum: - - LAMBDAS - url: - type: string - description: A string with the unique URL of the deployment - example: my-instant-deployment-3ij3cxz9qr.now.sh - userAliases: - items: - type: string - type: array - description: An array of domains that were provided by the user when creating the Deployment. - example: - - sub1.example.com - - sub2.example.com - version: - type: number - enum: - - 2 - description: The platform version that was used to create the deployment. - example: 2 - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - alias: - items: - type: string - type: array - description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' - example: [] - aliasAssigned: - type: boolean - description: A boolean that will be true when the aliases from the alias property were assigned successfully - example: true - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' - example: null - aliasFinal: - nullable: true - type: string - aliasWarning: - nullable: true - properties: - code: - type: string - message: - type: string - link: - type: string - action: - type: string - required: - - code - - message - type: object - autoAssignCustomDomains: - type: boolean - automaticAliases: - items: - type: string - type: array - bootedAt: - type: number - buildErrorAt: - type: number - buildingAt: - type: number - canceledAt: - type: number - checksState: - type: string - enum: - - registered - - running - - completed - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - createdAt: - type: number - description: A number containing the date when the deployment was created in milliseconds - example: 1540257589405 - creator: - properties: - uid: - type: string - description: The ID of the user that created the deployment - example: 96SnxkFiMyVKsK3pnoHfx3Hz - username: - type: string - description: The username of the user that created the deployment - example: john-doe - required: - - uid - type: object - description: Information about the deployment creator - errorCode: - type: string - errorLink: - type: string - errorMessage: - nullable: true - type: string - errorStep: - type: string - gitSource: - oneOf: - properties: type: type: string enum: - - github + - github-limited repoId: oneOf: - type: string @@ -3528,14 +1500,14 @@ paths: nullable: true type: number required: - - type - repoId + - type type: object - properties: type: type: string enum: - - github + - github-limited org: type: string repo: @@ -3549,9 +1521,9 @@ paths: nullable: true type: number required: - - type - org - repo + - type type: object - properties: type: @@ -3571,8 +1543,8 @@ paths: nullable: true type: number required: - - type - projectId + - type type: object - properties: type: @@ -3592,8 +1564,8 @@ paths: nullable: true type: number required: - - type - repoUuid + - type type: object - properties: type: @@ -3613,27 +1585,76 @@ paths: nullable: true type: number required: - - type - owner - slug + - type type: object - properties: type: type: string enum: - - custom - ref: + - vercel + org: + type: string + repo: type: string sha: type: string - gitUrl: + repoPushedAt: + type: number + ref: + nullable: true + type: string + prId: + nullable: true + type: number + required: + - sha + - type + type: object + - properties: + type: + type: string + enum: + - cursor-origin + repoId: type: string + description: Origin repository id. + owner: + type: string + description: Owner (namespace) slug. + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number required: + - repoId - type + type: object + - properties: + type: + type: string + enum: + - custom + ref: + type: string + sha: + type: string + gitUrl: + type: string + required: + - gitUrl - ref - sha - - gitUrl + - type type: object + description: Allows custom git sources (local folder mounted to the container) in test mode - properties: type: type: string @@ -3650,10 +1671,55 @@ paths: repo: type: string required: + - ref + - repoId + - sha - type + type: object + - properties: + type: + type: string + enum: + - github-custom-host + host: + type: string + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - host - ref + - repoId - sha + - type + type: object + - properties: + type: + type: string + enum: + - github-limited + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - ref - repoId + - sha + - type type: object - properties: type: @@ -3667,10 +1733,10 @@ paths: projectId: type: number required: - - type + - projectId - ref - sha - - projectId + - type type: object - properties: type: @@ -3690,970 +1756,7783 @@ paths: repoUuid: type: string required: - - type - ref + - repoUuid - sha + - type - workspaceUuid - - repoUuid type: object - id: + - properties: + type: + type: string + enum: + - vercel + ref: + type: string + sha: + type: string + org: + type: string + repo: + type: string + repoPushedAt: + type: number + required: + - org + - ref + - repo + - sha + - type + type: object + - properties: + type: + type: string + enum: + - cursor-origin + ref: + type: string + sha: + type: string + repoId: + type: string + owner: + type: string + repo: + type: string + required: + - owner + - ref + - repo + - repoId + - sha + - type + type: object + manualProvisioning: + properties: + state: + type: string + enum: + - COMPLETE + - PENDING + - TIMEOUT + description: Current provisioning state + completedAt: + type: number + description: Timestamp when manual provisioning completed + required: + - state + type: object + description: Present when deployment was created with manual provisioning enabled, either explicitly or via the experimental BYOC git flow. The deployment stays in INITIALIZING until /continue is called. + meta: + additionalProperties: + type: string + type: object + originCacheRegion: type: string - description: A string holding the unique ID of the deployment - example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ - required: - - build - - createdIn - - env - - inspectorUrl - - isInConcurrentBuildsQueue - - meta - - name - - ownerId - - plan - - projectId - - routes - - public - - readyState - - regions - - type - - url - - version - - alias - - aliasAssigned - - bootedAt - - buildingAt - - createdAt - - creator - - id - type: object - description: The successfully created deployment - '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. - '401': - description: '' - '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated - Deploying to Serverless Functions to multiple regions requires a plan update - '403': - description: You do not have permission to access this resource. - '404': - description: '' - '409': - description: The deployment project is being transferred - parameters: - - name: forceNew - description: Forces a new deployment even if there is a previous similar deployment - in: query - schema: - description: Forces a new deployment even if there is a previous similar deployment - enum: - - '0' - - '1' - - name: skipAutoDetectionConfirmation - description: Allows to skip framework detection so the API would not fail to ask for confirmation - in: query - schema: - description: Allows to skip framework detection so the API would not fail to ask for confirmation - enum: - - '0' - - '1' - - name: forceNew - description: Forces a new deployment even if there is a previous similar deployment - in: query - schema: - description: Forces a new deployment even if there is a previous similar deployment - enum: - - '0' - - '1' - - name: skipAutoDetectionConfirmation - description: Allows to skip framework detection so the API would not fail to ask for confirmation - in: query - schema: - description: Allows to skip framework detection so the API would not fail to ask for confirmation - enum: - - '0' - - '1' - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - type: object - additionalProperties: false - properties: - $schema: - description: 'Ignored. Can be set to get completions, validations and documentation in some editors.' - example: - - 'https://openapi.vercel.sh/vercel.json' - type: string - alias: - description: Aliases that will get assigned when the deployment is `READY` and the target is `production`. The client needs to make a `GET` request to its API to ensure the assignment - example: - - example.vercel.app - items: - maxLength: 253 + nodeVersion: type: string - maxItems: 50 - maxLength: 253 - type: array - build: - additionalProperties: false - description: An object containing another object with information to be passed to the Build Process - deprecated: true - properties: - env: - additionalProperties: - maxLength: 65536 - type: string - description: An object containing the deployment's environment variable names and values to be passed to Builds. Secrets can be referenced by prefixing the value with `@` - example: - A_SECRET: '@a-secret' - deprecated: true - maxProperties: 100 - minProperties: 0 - type: object - type: object - builds: - description: A list of build descriptions whose src references valid source files. - deprecated: true - items: - additionalProperties: false + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + description: If set it overrides the `projectSettings.nodeVersion` for this deployment. + project: properties: - config: - description: 'Optionally, an object including arbitrary metadata to be passed to the Builder' - type: object - src: - description: 'A glob expression or pathname. If more than one file is resolved, one build will be created per matched file. It can include `*` and `**`' - maxLength: 4096 + id: + type: string + name: type: string - use: - description: 'An npm module to be installed by the build process. It can include a semver compatible version (e.g.: `@org/proj@1`)' - maxLength: 256 + framework: + nullable: true type: string required: - - use + - id + - name type: object - maxItems: 128 - minItems: 0 - type: array - cleanUrls: - description: 'When set to `true`, all HTML files and Serverless Functions will have their extension removed. When visiting a path that ends with the extension, a 308 response will redirect the client to the extensionless path.' - type: boolean - env: - additionalProperties: - maxLength: 65536 + description: The public project information associated with the deployment. + prebuilt: + type: boolean + enum: + - false + - true + readySubstate: type: string - description: An object containing the deployment's environment variable names and values. Secrets can be referenced by prefixing the value with `@` - example: - A_SECRET: '@a-secret' - deprecated: true - maxProperties: 100 - minProperties: 0 - type: object - functions: - additionalProperties: - additionalProperties: false + enum: + - PROMOTED + - ROLLING + - STAGED + description: 'Substate of deployment when readyState is ''READY'' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of having production traffic gradually transitioned. - PROMOTED: has seen production traffic' + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + softDeletedByRetention: + type: boolean + enum: + - false + - true + description: flag to indicate if the deployment was deleted by retention policy + example: 'true' + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + undeletedAt: + type: number + description: A number containing the date when the deployment was undeleted at milliseconds + example: 1540257589405 + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userConfiguredDeploymentId: + type: string + description: Since January 2025 User-configured deployment ID for skew protection with pre-built deployments. This is set when users configure a custom deploymentId in their next.config.js file. This allows Next.js to use skew protection even when deployments are pre-built outside of Vercel's build system. + example: abc123 + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + oidcTokenClaims: properties: - excludeFiles: - description: 'A glob pattern to match files that should be excluded from your Serverless Function. If you’re using a Community Runtime, the behavior might vary.' - maxLength: 256 - type: string - includeFiles: - description: 'A glob pattern to match files that should be included in your Serverless Function. If you’re using a Community Runtime, the behavior might vary.' - maxLength: 256 - type: string - maxDuration: - description: An integer defining how long your Serverless Function should be allowed to run on every request in seconds (between 1 and the maximum limit of your plan). - maximum: 900 - minimum: 1 - type: number - memory: - description: An integer defining the memory your Serverless Function should be provided with (between 128 and 3008). - maximum: 3008 - minimum: 128 - type: number - runtime: - description: 'The npm package name of a Runtime, including its version' - maxLength: 256 + iss: type: string - type: object - description: An object describing custom options for your Serverless Functions. Each key must be glob pattern that matches the paths of the Serverless Functions you would like to customize (like `api/*.js` or `api/test.js`). - example: - src/pages/**: - maxDuration: 6 - memory: 1024 - maxProperties: 50 - minProperties: 1 - type: object - git: - type: object - properties: - deploymentEnabled: - description: Specifies the branches that will not trigger an auto-deployment when committing to them. Any non specified branch is `true` by default. - example: - main: false - oneOf: - - type: boolean - - type: object - additionalProperties: - type: boolean - headers: - type: array - maxItems: 1024 - description: A list of header definitions. - items: - type: object - additionalProperties: false - required: - - source - - headers - properties: - source: - description: A pattern that matches each incoming pathname (excluding querystring) + sub: type: string - maxLength: 4096 - headers: - description: An array of key/value pairs representing each response header. - type: array - maxItems: 1024 - items: - type: object - additionalProperties: false - required: - - key - - value - properties: - key: - type: string - maxLength: 4096 - value: - type: string - maxLength: 4096 - has: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: - type: - description: The type of request element to check - type: string - enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check - type: string - enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type - type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - missing: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: - type: - description: The type of request element to check - type: string - enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check - type: string - enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type - type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - images: - type: object - additionalProperties: false - required: - - sizes - properties: - contentDispositionType: - enum: - - inline - - attachment - contentSecurityPolicy: - type: string - maxLength: 256 - dangerouslyAllowSVG: - type: boolean - domains: - type: array - minItems: 0 - maxItems: 50 - items: - type: string - maxLength: 256 - formats: - type: array - minItems: 1 - maxItems: 4 - items: - enum: - - image/avif - - image/webp - - image/jpeg - - image/png - minimumCacheTTL: - type: integer - minimum: 1 - maximum: 315360000 - remotePatterns: - type: array - minItems: 0 - maxItems: 50 - items: - type: object - additionalProperties: false - required: - - hostname - properties: - protocol: - enum: - - http - - https - hostname: - type: string - maxLength: 256 - port: - type: string - maxLength: 5 - pathname: - type: string - maxLength: 256 - sizes: - type: array - minItems: 1 - maxItems: 50 - items: - type: number - name: - description: A string with the project name used in the deployment URL - example: my-instant-deployment - type: string - public: - description: Whether a deployment's source and logs are available publicly - type: boolean - redirects: - title: Redirects - type: array - maxItems: 1024 - description: A list of redirect definitions. - items: - type: object - additionalProperties: false - required: - - source - - destination - properties: - source: - description: A pattern that matches each incoming pathname (excluding querystring). + scope: type: string - maxLength: 4096 - destination: - description: A location destination defined as an absolute pathname or external URL. + aud: type: string - maxLength: 4096 - permanent: - description: 'A boolean to toggle between permanent and temporary redirect. When `true`, the status code is `308`. When `false` the status code is `307`.' - type: boolean - has: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: - type: - description: The type of request element to check - type: string - enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check - type: string - enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type - type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - missing: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: - type: - description: The type of request element to check - type: string - enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check - type: string - enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type - type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - regions: - description: An array of the regions the deployment's Serverless Functions should be deployed to - example: - - sfo - - bru - items: - maxLength: 256 - type: string - maxItems: 1000 - minItems: 1 - type: array - rewrites: - type: array - maxItems: 1024 - description: A list of rewrite definitions. - items: - type: object - additionalProperties: false - required: - - source - - destination - properties: - source: - description: A pattern that matches each incoming pathname (excluding querystring). + owner: type: string - maxLength: 4096 - destination: - description: An absolute pathname to an existing resource or an external URL. + owner_id: type: string - maxLength: 4096 - has: - description: An array of requirements that are needed to match - type: array - maxItems: 16 + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: - type: - description: The type of request element to check + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + projectId: + type: string + plan: + type: string + enum: + - enterprise + - hobby + - pro + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdIn: + type: string + crons: + items: + properties: + schedule: + type: string + path: + type: string + required: + - path + - schedule + type: object + type: array + atproto: + oneOf: + - properties: + enabled: + type: boolean + enum: + - false + required: + - enabled + type: object + - properties: + enabled: + type: boolean + enum: + - true + subscription: + properties: + collections: + items: type: string - enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination + type: array + dids: + items: type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check + type: array + kinds: + items: type: string enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type - type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - missing: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: - type: - description: The type of request element to check - type: string - enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check - type: string - enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type - type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - routes: - type: array - maxItems: 1024 - deprecated: true - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - dest: 'https://docs.example.com' - src: /docs - items: - anyOf: - - type: object + - account + - commit + - identity + - sync + type: array + path: + type: string + required: + - collections + - path + type: object required: - - src - additionalProperties: false - properties: - src: + - enabled + - subscription + type: object + functions: + nullable: true + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: type: string - maxLength: 4096 - dest: + type: array + functionFailoverRegions: + items: type: string - maxLength: 4096 - headers: - type: object - additionalProperties: + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + isInstantStatic: + type: boolean + enum: + - false + - true + description: Whether this deployment completed through the instant static fast path. + monorepoManager: + nullable: true + type: string + ownerId: + type: string + passiveConnectConfigurationId: + type: string + description: Since November 2023 this field defines a Secure Compute network that will only be used to deploy passive lambdas to (as in passiveRegions) + routes: + nullable: true + items: + oneOf: + - properties: + src: type: string - maxLength: 4096 - minProperties: 1 - maxProperties: 100 - methods: - type: array - maxItems: 10 - items: + dest: type: string - maxLength: 32 - caseSensitive: - type: boolean - important: - type: boolean - user: - type: boolean - continue: - type: boolean - override: - type: boolean - check: - type: boolean - isInternal: - type: boolean - status: - type: integer - minimum: 100 - maximum: 999 - locale: - type: object - additionalProperties: false - minProperties: 1 - properties: - redirect: - type: object - additionalProperties: - type: string - maxLength: 4096 - minProperties: 1 - maxProperties: 100 - value: - type: string - maxLength: 4096 - path: + headers: + additionalProperties: type: string - maxLength: 4096 - cookie: + type: object + methods: + items: type: string - maxLength: 4096 - default: + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: type: string - maxLength: 4096 - middleware: - type: number - middlewarePath: - type: string - middlewareRawSrc: - type: array - items: + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: type: string - has: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - properties: + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: type: - description: The type of request element to check type: string enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key - properties: - type: - description: The type of request element to check + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: type: string - enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type + path: type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination - type: string - maxLength: 4096 - missing: - description: An array of requirements that are needed to match - type: array - maxItems: 16 - items: - anyOf: - - type: object - additionalProperties: false + description: Routing-only path used to select a route inside the target service. required: - - type - - value + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - resource + - rewrite + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + - properties: + src: + type: string + continue: + type: boolean + enum: + - false + - true + middleware: + type: number + enum: + - 0 + required: + - continue + - middleware + - src + type: object + type: array + services: + items: + oneOf: + - properties: + schema: + type: string + enum: + - experimentalServices + name: + type: string + type: + type: string + enum: + - cron + - job + - web + - worker + trigger: + type: string + enum: + - queue + - schedule + - workflow + group: + type: string + workspace: + type: string + entrypoint: + type: string + framework: + type: string + builder: + properties: + use: + type: string + src: + type: string + config: properties: - type: - description: The type of request element to check + bunVersion: + type: string + maxLambdaSize: type: string + includeFiles: + oneOf: + - type: string + - items: + type: string + type: array + excludeFiles: + oneOf: + - type: string + - items: + type: string + type: array + bundle: + type: boolean enum: - - host - value: - description: A regular expression used to match the value. Named groups can be used in the destination + - false + - true + ldsflags: type: string - maxLength: 4096 - - type: object - additionalProperties: false - required: - - type - - key + helpers: + type: boolean + enum: + - false + - true + rust: + type: string + debug: + type: boolean + enum: + - false + - true + zeroConfig: + type: boolean + enum: + - false + - true + import: + additionalProperties: + type: string + type: object + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + projectSettings: + properties: + framework: + nullable: true + type: string + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + rootDirectory: + nullable: true + type: string + nodeVersion: + type: string + monorepoManager: + nullable: true + type: string + createdAt: + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + directoryListing: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + commandForIgnoringBuildStep: + nullable: true + type: string + type: object + outputDirectory: + type: string + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + framework: + nullable: true + type: string + nodeVersion: + type: string + middleware: + type: boolean + enum: + - false + - true + middlewareRuntime: + type: string + enum: + - nodejs + description: Enforced runtime for explicitly configured Routing Middleware. + middlewareMatcher: + oneOf: + - type: string + - items: + type: string + type: array + description: Matcher supplied outside of the middleware source module. + serviceName: + type: string + description: Owning service name; scopes per-function config such as the v2beta consumer. + type: object + required: + - use + type: object + runtime: + type: string + buildCommand: + type: string + installCommand: + type: string + preDeployCommand: + type: string + routePrefix: + type: string + routePrefixSource: + type: string + enum: + - configured + - generated + subdomain: + type: string + schedule: + oneOf: + - type: string + - items: + type: string + type: array + handlerFunction: + type: string + topics: + oneOf: + - items: + type: string + type: array + - items: + properties: + topic: + type: string + retryAfterSeconds: + type: number + initialDelaySeconds: + type: number + required: + - topic + type: object + type: array + env: + additionalProperties: + properties: + type: + type: string + enum: + - service-ref + service: + type: string + required: + - service + - type + type: object + type: object + required: + - builder + - name + - schema + - type + - workspace + type: object + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + - properties: + schema: + type: string + enum: + - experimentalServicesV2 + name: + type: string + root: + type: string + description: Path to the service root, relative to the project root. + framework: + type: string + runtime: + type: string + entrypoint: + type: string + description: Resolved entrypoint, relative to the service root. + command: + items: + type: string + type: array + description: 'Command override for `runtime: "container"` services.' + builder: + properties: + use: + type: string + src: + type: string + config: properties: - type: - description: The type of request element to check + bunVersion: + type: string + maxLambdaSize: type: string + includeFiles: + oneOf: + - type: string + - items: + type: string + type: array + excludeFiles: + oneOf: + - type: string + - items: + type: string + type: array + bundle: + type: boolean enum: - - header - - cookie - - query - key: - description: The name of the element contained in the particular type + - false + - true + ldsflags: type: string - maxLength: 4096 - value: - description: A regular expression used to match the value. Named groups can be used in the destination + helpers: + type: boolean + enum: + - false + - true + rust: type: string - maxLength: 4096 - - type: object - required: - - handle - additionalProperties: false - properties: - handle: - type: string - maxLength: 32 - enum: - - error - - filesystem - - hit - - miss - - resource - - rewrite - trailingSlash: - description: 'When `false`, visiting a path that ends with a forward slash will respond with a `308` status code and redirect to the path without the trailing slash.' - type: boolean - buildCommand: - description: The build command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - ignoreCommand: - maxLength: 256 - type: string - nullable: true - devCommand: - description: The dev command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - framework: - description: The framework that is being used for this project. When `null` is used no framework is selected - type: string - enum: - - null - - blitzjs - - nextjs - - gatsby - - remix - - astro - - hexo - - eleventy - - docusaurus-2 - - docusaurus - - preact - - solidstart - - dojo - - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app - - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - - vite - - vitepress - - vuepress - - parcel - - sanity - - storybook - nullable: true - installCommand: - description: The install command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - outputDirectory: - description: The output directory of the project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - crons: - description: An array of cron jobs that should be created for production Deployments. - type: array - maxItems: 20 - items: - type: object - required: - - schedule - - path - properties: - schedule: - type: string - maxLength: 256 - path: - type: string - maxLength: 512 - pattern: ^/.* - deploymentId: - description: An deployment id for an existing deployment to redeploy - type: string - files: - description: A list of objects with the files to be deployed - items: - oneOf: - - additionalProperties: false - description: Used in the case you want to inline a file inside the request - properties: - data: - description: 'The file content, it could be either a `base64` (useful for images, etc.) of the files or the plain content for source code' - type: string - encoding: - description: 'The file content encoding, it could be either a base64 (useful for images, etc.) of the files or the plain text for source code.' - enum: - - base64 - - utf-8 - file: - description: The file name including the whole path - example: folder/file.js - type: string - required: - - file - - data - title: InlinedFile - type: object - - additionalProperties: false - description: Used in the case you want to reference a file that was already uploaded - properties: - file: - description: The file path relative to the project root - example: folder/file.js - type: string - sha: - description: 'The file contents hashed with SHA1, used to check the integrity' - type: string - size: - description: The file size in bytes - type: integer - required: - - file - title: UploadedFile - type: object - type: array - gitMetadata: - description: Populates initial git metadata for different git providers. - additionalProperties: false - type: object - properties: - remoteUrl: - type: string - description: The git repository's remote origin url - example: 'https://github.com/vercel/next.js' - commitAuthorName: - type: string - description: The name of the author of the commit - example: kyliau - commitMessage: - type: string - description: The commit message - example: add method to measure Interaction to Next Paint (INP) (#36490) - commitRef: - type: string + debug: + type: boolean + enum: + - false + - true + zeroConfig: + type: boolean + enum: + - false + - true + import: + additionalProperties: + type: string + type: object + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + projectSettings: + properties: + framework: + nullable: true + type: string + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + rootDirectory: + nullable: true + type: string + nodeVersion: + type: string + monorepoManager: + nullable: true + type: string + createdAt: + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + directoryListing: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + commandForIgnoringBuildStep: + nullable: true + type: string + type: object + outputDirectory: + type: string + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + framework: + nullable: true + type: string + nodeVersion: + type: string + middleware: + type: boolean + enum: + - false + - true + middlewareRuntime: + type: string + enum: + - nodejs + description: Enforced runtime for explicitly configured Routing Middleware. + middlewareMatcher: + oneOf: + - type: string + - items: + type: string + type: array + description: Matcher supplied outside of the middleware source module. + serviceName: + type: string + description: Owning service name; scopes per-function config such as the v2beta consumer. + type: object + required: + - use + type: object + description: Builder selected by the resolver. + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + ignoreCommand: + type: string + outputDirectory: + type: string + bindings: + items: + properties: + type: + type: string + enum: + - service + description: If present, must be `"service"` for Service-to-Service HTTP bindings. + service: + type: string + description: Target service name from `services`. + format: + type: string + enum: + - url + description: Generated value shape, must be `"url"`. + env: + type: string + description: Environment variable name that will store the generated value + required: + - env + - format + - service + type: object + description: Caller-side bindings to other services. + type: array + description: Caller-side bindings to other services. + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + description: Function configuration scoped to this service. + type: object + description: Function configuration scoped to this service. + headers: + items: + properties: + source: + type: string + headers: + items: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: array + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + required: + - headers + - source + type: object + type: array + redirects: + items: + properties: + source: + type: string + destination: + type: string + permanent: + type: boolean + enum: + - false + - true + statusCode: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + env: + items: + type: string + type: array + required: + - destination + - source + type: object + type: array + rewrites: + items: + properties: + source: + type: string + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + transforms: + items: + properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + statusCode: + type: number + env: + items: + type: string + type: array + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - destination + - source + type: object + type: array + routes: + items: + oneOf: + - properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - resource + - rewrite + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + type: array + cleanUrls: + type: boolean + enum: + - false + - true + trailingSlash: + type: boolean + enum: + - false + - true + required: + - builder + - name + - root + - schema + type: object + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + type: array + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + gitRepo: + nullable: true + oneOf: + - properties: + namespace: + type: string + projectId: + type: number + type: + type: string + enum: + - gitlab + url: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - namespace + - ownerType + - path + - private + - projectId + - type + - url + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + repoOwnerId: + type: number + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - org + - ownerType + - path + - private + - repo + - repoId + - repoOwnerId + - type + type: object + - properties: + owner: + type: string + repoUuid: + type: string + slug: + type: string + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - owner + - ownerType + - path + - private + - repoUuid + - slug + - type + - workspaceUuid + type: object + - properties: + org: + type: string + repo: + type: string + type: + type: string + enum: + - vercel + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - org + - ownerType + - path + - private + - repo + - type + type: object + - properties: + owner: + type: string + description: Owner (namespace) slug. + repo: + type: string + repoId: + type: string + description: Origin repository id. + type: + type: string + enum: + - cursor-origin + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - owner + - ownerType + - path + - private + - repo + - repoId + - type + type: object + flags: + oneOf: + - properties: + definitions: + additionalProperties: + properties: + options: + items: + properties: + value: + $ref: '#/components/schemas/FlagJSONValue' + label: + type: string + required: + - value + type: object + type: array + url: + type: string + description: + type: string + type: object + type: object + required: + - definitions + type: object + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. + - items: + type: string + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. (opaque JSON object) + type: array + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. + microfrontends: + oneOf: + - properties: + isDefaultApp: + type: boolean + enum: + - false + defaultAppProjectName: + type: string + description: The project name of the default app of this deployment's microfrontends group. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + required: + - defaultAppProjectName + - groupIds + type: object + - properties: + isDefaultApp: + type: boolean + enum: + - true + mfeConfigUploadState: + type: string + enum: + - no_config + - success + - waiting_on_build + description: The result of the microfrontends config upload during deployment creation / build. Only set for default app deployments. The config upload is attempted during deployment create, and then again during the build. If the config is not in the root directory, or the deployment is prebuilt, the config cannot be uploaded during deployment create. The upload during deployment build finds the config even if it's not in the root directory, as it has access to all files. Uploading the config during create is ideal, as then all child deployments are guaranteed to have access to the default app deployment config even if the default app has not yet started building. If the config is not uploaded, the child app will show as building until the config has been uploaded during the default app build. - `success` - The config was uploaded successfully, either when the deployment was created or during the build. - `waiting_on_build` - The config could not be uploaded during deployment create, will be attempted again during the build. - `no_config` - No config was found. Only set once the build has not found the config in any of the deployment's files. - `undefined` - Legacy deployments, or there was an error uploading the config during deployment create. + defaultAppProjectName: + type: string + description: The project name of the default app of this deployment's microfrontends group. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + required: + - defaultAppProjectName + - groupIds + - isDefaultApp + type: object + platform: + properties: + source: + properties: + name: + type: string + description: Display name of the platform. + required: + - name + type: object + description: The external platform that created the deployment (e.g. its display name). + origin: + properties: + type: + type: string + enum: + - id + - url + description: Whether the value is an opaque identifier or a URL. + value: + type: string + description: The identifier or URL pointing to the originating entity. + required: + - type + - value + type: object + description: Reference back to the entity on the platform that initiated the deployment. + creator: + properties: + name: + type: string + description: Display name of the platform user. + avatar: + type: string + description: URL of the platform user's avatar image. + required: + - name + type: object + description: The user on the external platform who triggered the deployment. + meta: + additionalProperties: + type: string + type: object + description: Arbitrary key-value metadata provided by the platform. + required: + - creator + - origin + - source + type: object + description: Metadata about the source platform that triggered the deployment. Allows us to map a deployment back to a platform (e.g. the chat that created it) + config: + properties: + version: + type: number + functionType: + type: string + enum: + - fluid + - standard + functionMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionTimeout: + nullable: true + type: number + secureComputePrimaryRegion: + nullable: true + type: string + secureComputeFallbackRegion: + nullable: true + type: string + isUsingActiveCPU: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + description: Build resource configuration snapshot for this deployment. + type: object + description: Build resource configuration snapshot for this deployment. + elasticConcurrency: + type: string + enum: + - PROJECT_SETTING + - SKIP_QUEUE + - TEAM_SETTING + description: 'When elastic concurrency is used for this deployment, a value is set. The value tells the reason where the setting was coming from. - TEAM_SETTING: Inherited from team settings - PROJECT_SETTING: Inherited from project settings - SKIP_QUEUE: Manually triggered by user to skip the queues' + buildMachine: + properties: + purchaseType: + nullable: true + type: string + enum: + - basic + - enhanced + - standard + - turbo + - null + description: Machine type that was used for the build. + type: object + type: object + description: Build resource configuration snapshot for this deployment. + required: + - functionMemoryType + - functionTimeout + - functionType + - secureComputeFallbackRegion + - secureComputePrimaryRegion + type: object + description: Since February 2025 the configuration must include snapshot data at the time of deployment creation to capture properties for the /deployments/:id/config endpoint utilized for displaying Deployment Configuration on the frontend This is optional because older deployments may not have this data captured + checks: + properties: + deployment-alias: + properties: + state: + type: string + enum: + - failed + - pending + - succeeded + startedAt: + type: number + completedAt: + type: number + required: + - startedAt + - state + type: object + description: Condensed check data. Retrieve individual check and check run data using api-checks v2 routes. + required: + - deployment-alias + type: object + seatBlock: + properties: + blockCode: + type: string + enum: + - COMMIT_AUTHOR_REQUIRED + - TEAM_ACCESS_REQUIRED + description: 'The NSNB decision code for the seat block. TODO: We should consolidate block types.' + userId: + type: string + description: The blocked vercel user ID. + isVerified: + type: boolean + enum: + - false + - true + description: Determines if the user was verified during the block. In the git integration case, the commit sender was the author. + gitUserId: + oneOf: + - type: string + - type: number + gitProvider: + type: string + enum: + - bitbucket + - github + - gitlab + description: The git provider type associated with gitUserId. + required: + - blockCode + type: object + description: NSNB Blocked metadata + attribution: + properties: + commitMeta: + properties: + email: + type: string + description: Email from git commit author + name: + type: string + description: Name from git commit author + isVerified: + type: boolean + enum: + - false + - true + description: Whether the commit was signed/verified (GitHub only, others return undefined) + type: object + description: Commit metadata from the git commit author + gitUser: + properties: + id: + oneOf: + - type: string + - type: number + login: + type: string + description: Git provider username/login + type: + type: string + description: User type + provider: + type: string + description: The git provider (github, gitlab, bitbucket) + required: + - id + - login + type: object + description: Git provider user associated with the commit author email (only set if resolved) + vercelUser: + properties: + id: + type: string + description: Vercel user ID + username: + type: string + description: Vercel username + teamRoles: + items: + type: string + type: array + description: Team roles at time of deployment + required: + - id + - username + type: object + description: Vercel user linked to the git provider account (only set if resolved) + type: object + description: Attribution metadata for the deployment, linking commit author to git and Vercel users. Only populated when the `enable-deployment-attribution` flag is enabled. + required: + - aliasAssigned + - id + - readyState + - bootedAt + - build + - buildSkipped + - buildingAt + - createdAt + - createdIn + - creator + - env + - inspectorUrl + - isInConcurrentBuildsQueue + - isInSystemBuildsQueue + - meta + - name + - ownerId + - plan + - projectId + - projectSettings + - public + - regions + - routes + - status + - type + - url + - version + type: object + description: Returns the reduced deployment view for anonymous (`vcn_`) callers. Pool-team details are withheld. + '400': + description: One of the provided values in the request query is invalid. + '403': + description: You do not have permission to access this resource. + '404': + description: The deployment was not found + '410': + description: '' + '429': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - inspect + - get + parameters: + - name: id_or_url + description: The unique identifier or hostname of the deployment. + in: path + required: true + schema: + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + description: The unique identifier or hostname of the deployment. + type: string + - name: withGitRepoInfo + description: When `true`, the response includes the `gitSource` object with the commit SHA, branch name, and connected repository metadata. Defaults to `false`. + in: query + required: false + schema: + description: When `true`, the response includes the `gitSource` object with the commit SHA, branch name, and connected repository metadata. Defaults to `false`. + type: string + example: 'true' + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v13/deployments: + post: + description: Creates a new deployment for the authenticated team or user. For non-git deployments, upload files first via the file upload API, then reference them here by SHA — or inline small files directly in the request body. To redeploy an existing deployment, provide its `deploymentId`; all settings are inherited unless explicitly overridden. The deployment begins building immediately and transitions through `QUEUED` → `INITIALIZING` → `BUILDING` before reaching `READY` or `ERROR`. + operationId: createDeployment + security: + - bearerToken: [] + summary: Create a new deployment + tags: + - deployments + responses: + '200': + description: |- + Returns the newly created deployment object. Poll `readyState` to track build progress. See https://vercel.com/docs/deployments/deployment-states for possible states. + Returns the reduced deployment view for anonymous (`vcn_`) callers. Pool-team details are withheld. + content: + application/json: + schema: + properties: + alias: + items: + type: string + type: array + aliasAssigned: + type: boolean + enum: + - false + - true + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + description: An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null` + example: null + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + errorCode: + type: string + errorMessage: + nullable: true + type: string + aliasAssignedAt: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + alwaysRefuseToBuild: + type: boolean + enum: + - false + - true + build: + properties: + env: + items: + type: string + type: array + required: + - env + type: object + buildArtifactUrls: + items: + type: string + type: array + builds: + items: + properties: + use: + type: string + src: + type: string + config: + additionalProperties: true + type: object + required: + - use + type: object + type: array + env: + items: + type: string + type: array + resourceConfig: + properties: + buildMachine: + properties: + purchaseType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + description: Machine type which was purchased/selected for this build. `basic` is the 2vCPU tier, recorded on the deployment so the build pipeline can detect a basic build without consulting the project. + defaultPurchaseType: + type: string + enum: + - basic + - enhanced + - standard + description: The default plan type for the build machine — what the customer is *paying* for on their plan. For most customers, this is standard, but some customers have an entitlement for enhanced builds. + machineSelectionType: + type: string + enum: + - elastic + - fixed + description: Whether the build ran on a fixed or elastic machine. Used to drive billing for the build. + selectionSource: + type: string + enum: + - elastic-algorithm + - plan-default + - project-setting + - team-entitlement + - team-setting + description: The setting which selected the build machine when the deployment was created. Frozen here so later project or team changes do not rewrite its history. + cores: + type: number + description: Number of cores the build machine ran with. Set at dispatch time once the build lands on a hive. + memory: + type: number + description: Memory, in MiB, the build machine ran with. Set at dispatch time once the build lands on a hive. + type: object + description: Build machine configuration recorded for this deployment's build. See {@link DeploymentBuildMachine}. Distinct from the team/user `resourceConfig.buildMachine`, which only carries `default`. + type: object + inspectorUrl: + nullable: true + type: string + isInConcurrentBuildsQueue: + type: boolean + enum: + - false + - true + isInSystemBuildsQueue: + type: boolean + enum: + - false + - true + projectSettings: + properties: + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + buildCommand: + nullable: true + type: string + devCommand: + nullable: true + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + commandForIgnoringBuildStep: + nullable: true + type: string + installCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + type: object + integrations: + properties: + status: + type: string + enum: + - error + - pending + - ready + - skipped + - timeout + startedAt: + type: number + claimedAt: + type: number + completedAt: + type: number + skippedAt: + type: number + skippedBy: + type: string + required: + - startedAt + - status + type: object + images: + properties: + sizes: + items: + type: number + type: array + qualities: + items: + type: number + type: array + domains: + items: + type: string + type: array + remotePatterns: + items: + properties: + protocol: + type: string + enum: + - http + - https + description: Must be `http` or `https`. + hostname: + type: string + description: Can be literal or wildcard. Single `*` matches a single subdomain. Double `**` matches any number of subdomains. + port: + type: string + description: Can be literal port such as `8080` or empty string meaning no port. + pathname: + type: string + description: Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments. + search: + type: string + description: Can be literal query string such as `?v=1` or empty string meaning no query string. + required: + - hostname + type: object + type: array + localPatterns: + items: + properties: + pathname: + type: string + description: Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments. + search: + type: string + description: Can be literal query string such as `?v=1` or empty string meaning no query string. + type: object + type: array + minimumCacheTTL: + type: number + formats: + items: + type: string + enum: + - image/avif + - image/webp + type: array + dangerouslyAllowSVG: + type: boolean + enum: + - false + - true + contentSecurityPolicy: + type: string + contentDispositionType: + type: string + enum: + - attachment + - inline + type: object + bootedAt: + type: number + buildingAt: + type: number + buildContainerFinishedAt: + type: number + description: Since April 2025 it necessary for On-Demand Concurrency Minutes calculation + buildSkipped: + type: boolean + enum: + - false + - true + creator: + properties: + uid: + type: string + description: Stable creator id across principal types (user id, app id, integration configuration id, or `system`). + example: 96SnxkFiMyVKsK3pnoHfx3Hz + type: + type: string + enum: + - app + - integration + - system + - user + description: Principal type of the deployment creator. + username: + type: string + description: The username of the user that created the deployment + example: john-doe + avatar: + type: string + description: The avatar of the user that created the deployment + required: + - uid + type: object + description: Information about the deployment creator + initReadyAt: + type: number + isFirstBranchDeployment: + type: boolean + enum: + - false + - true + lambdas: + items: + properties: + id: + type: string + readyState: + type: string + enum: + - BUILDING + - ERROR + - INITIALIZING + - READY + createdAt: + type: number + entrypoint: + nullable: true + type: string + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - functionName + - path + type: object + type: array + required: + - id + - output + type: object + description: A partial representation of a Build used by the deployment endpoint. + type: array + public: + type: boolean + enum: + - false + - true + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + ready: + type: number + status: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + team: + properties: + id: + type: string + name: + type: string + slug: + type: string + avatar: + type: string + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + userAliases: + items: + type: string + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + ttyBuildLogs: + type: boolean + enum: + - false + - true + customEnvironment: + oneOf: + - properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: If the deployment was created using a Custom Environment, then this property contains information regarding the environment used. + - properties: + id: + type: string + required: + - id + type: object + description: If the deployment was created using a Custom Environment, then this property contains information regarding the environment used. + oomReport: + type: string + enum: + - out-of-memory + readyStateReason: + type: string + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + type: + type: string + enum: + - LAMBDAS + aliasFinal: + nullable: true + type: string + autoAssignCustomDomains: + type: boolean + enum: + - false + - true + description: applies to custom domains only, defaults to `true` + automaticAliases: + items: + type: string + type: array + buildErrorAt: + type: number + checksState: + type: string + enum: + - completed + - registered + - running + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + deletedAt: + nullable: true + type: number + description: A number containing the date when the deployment was deleted at milliseconds + example: 1540257589405 + defaultRoute: + type: string + description: Computed field that is only available for deployments with a microfrontend configuration. + canceledAt: + type: number + errorLink: + type: string + errorStep: + type: string + passiveRegions: + items: + type: string + type: array + description: Since November 2023 this field defines a set of regions that we will deploy the lambda to passively Lambdas will be deployed to these regions but only invoked if all of the primary `regions` are marked as out of service + gitSource: + oneOf: + - properties: + type: + type: string + enum: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - repoId + - type + type: object + - properties: + type: + type: string + enum: + - github + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - org + - repo + - type + type: object + - properties: + type: + type: string + enum: + - github-custom-host + host: + type: string + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - host + - repoId + - type + type: object + - properties: + type: + type: string + enum: + - github-custom-host + host: + type: string + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - host + - org + - repo + - type + type: object + - properties: + type: + type: string + enum: + - github-limited + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - repoId + - type + type: object + - properties: + type: + type: string + enum: + - github-limited + org: + type: string + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - org + - repo + - type + type: object + - properties: + type: + type: string + enum: + - gitlab + projectId: + oneOf: + - type: string + - type: number + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - projectId + - type + type: object + - properties: + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + repoUuid: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - repoUuid + - type + type: object + - properties: + type: + type: string + enum: + - bitbucket + owner: + type: string + slug: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - owner + - slug + - type + type: object + - properties: + type: + type: string + enum: + - vercel + org: + type: string + repo: + type: string + sha: + type: string + repoPushedAt: + type: number + ref: + nullable: true + type: string + prId: + nullable: true + type: number + required: + - sha + - type + type: object + - properties: + type: + type: string + enum: + - cursor-origin + repoId: + type: string + description: Origin repository id. + owner: + type: string + description: Owner (namespace) slug. + repo: + type: string + ref: + nullable: true + type: string + sha: + type: string + prId: + nullable: true + type: number + required: + - repoId + - type + type: object + - properties: + type: + type: string + enum: + - custom + ref: + type: string + sha: + type: string + gitUrl: + type: string + required: + - gitUrl + - ref + - sha + - type + type: object + description: Allows custom git sources (local folder mounted to the container) in test mode + - properties: + type: + type: string + enum: + - github + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - ref + - repoId + - sha + - type + type: object + - properties: + type: + type: string + enum: + - github-custom-host + host: + type: string + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - host + - ref + - repoId + - sha + - type + type: object + - properties: + type: + type: string + enum: + - github-limited + ref: + type: string + sha: + type: string + repoId: + type: number + org: + type: string + repo: + type: string + required: + - ref + - repoId + - sha + - type + type: object + - properties: + type: + type: string + enum: + - gitlab + ref: + type: string + sha: + type: string + projectId: + type: number + required: + - projectId + - ref + - sha + - type + type: object + - properties: + type: + type: string + enum: + - bitbucket + ref: + type: string + sha: + type: string + owner: + type: string + slug: + type: string + workspaceUuid: + type: string + repoUuid: + type: string + required: + - ref + - repoUuid + - sha + - type + - workspaceUuid + type: object + - properties: + type: + type: string + enum: + - vercel + ref: + type: string + sha: + type: string + org: + type: string + repo: + type: string + repoPushedAt: + type: number + required: + - org + - ref + - repo + - sha + - type + type: object + - properties: + type: + type: string + enum: + - cursor-origin + ref: + type: string + sha: + type: string + repoId: + type: string + owner: + type: string + repo: + type: string + required: + - owner + - ref + - repo + - repoId + - sha + - type + type: object + manualProvisioning: + properties: + state: + type: string + enum: + - COMPLETE + - PENDING + - TIMEOUT + description: Current provisioning state + completedAt: + type: number + description: Timestamp when manual provisioning completed + required: + - state + type: object + description: Present when deployment was created with manual provisioning enabled, either explicitly or via the experimental BYOC git flow. The deployment stays in INITIALIZING until /continue is called. + meta: + additionalProperties: + type: string + type: object + originCacheRegion: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + description: If set it overrides the `projectSettings.nodeVersion` for this deployment. + project: + properties: + id: + type: string + name: + type: string + framework: + nullable: true + type: string + required: + - id + - name + type: object + description: The public project information associated with the deployment. + prebuilt: + type: boolean + enum: + - false + - true + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + description: 'Substate of deployment when readyState is ''READY'' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of having production traffic gradually transitioned. - PROMOTED: has seen production traffic' + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + softDeletedByRetention: + type: boolean + enum: + - false + - true + description: flag to indicate if the deployment was deleted by retention policy + example: 'true' + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + undeletedAt: + type: number + description: A number containing the date when the deployment was undeleted at milliseconds + example: 1540257589405 + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userConfiguredDeploymentId: + type: string + description: Since January 2025 User-configured deployment ID for skew protection with pre-built deployments. This is set when users configure a custom deploymentId in their next.config.js file. This allows Next.js to use skew protection even when deployments are pre-built outside of Vercel's build system. + example: abc123 + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + projectId: + type: string + plan: + type: string + enum: + - enterprise + - hobby + - pro + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdIn: + type: string + crons: + items: + properties: + schedule: + type: string + path: + type: string + required: + - path + - schedule + type: object + type: array + atproto: + oneOf: + - properties: + enabled: + type: boolean + enum: + - false + required: + - enabled + type: object + - properties: + enabled: + type: boolean + enum: + - true + subscription: + properties: + collections: + items: + type: string + type: array + dids: + items: + type: string + type: array + kinds: + items: + type: string + enum: + - account + - commit + - identity + - sync + type: array + path: + type: string + required: + - collections + - path + type: object + required: + - enabled + - subscription + type: object + functions: + nullable: true + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + isInstantStatic: + type: boolean + enum: + - false + - true + description: Whether this deployment completed through the instant static fast path. + monorepoManager: + nullable: true + type: string + ownerId: + type: string + passiveConnectConfigurationId: + type: string + description: Since November 2023 this field defines a Secure Compute network that will only be used to deploy passive lambdas to (as in passiveRegions) + routes: + nullable: true + items: + oneOf: + - properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - resource + - rewrite + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + - properties: + src: + type: string + continue: + type: boolean + enum: + - false + - true + middleware: + type: number + enum: + - 0 + required: + - continue + - middleware + - src + type: object + type: array + services: + items: + oneOf: + - properties: + schema: + type: string + enum: + - experimentalServices + name: + type: string + type: + type: string + enum: + - cron + - job + - web + - worker + trigger: + type: string + enum: + - queue + - schedule + - workflow + group: + type: string + workspace: + type: string + entrypoint: + type: string + framework: + type: string + builder: + properties: + use: + type: string + src: + type: string + config: + properties: + bunVersion: + type: string + maxLambdaSize: + type: string + includeFiles: + oneOf: + - type: string + - items: + type: string + type: array + excludeFiles: + oneOf: + - type: string + - items: + type: string + type: array + bundle: + type: boolean + enum: + - false + - true + ldsflags: + type: string + helpers: + type: boolean + enum: + - false + - true + rust: + type: string + debug: + type: boolean + enum: + - false + - true + zeroConfig: + type: boolean + enum: + - false + - true + import: + additionalProperties: + type: string + type: object + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + projectSettings: + properties: + framework: + nullable: true + type: string + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + rootDirectory: + nullable: true + type: string + nodeVersion: + type: string + monorepoManager: + nullable: true + type: string + createdAt: + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + directoryListing: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + commandForIgnoringBuildStep: + nullable: true + type: string + type: object + outputDirectory: + type: string + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + framework: + nullable: true + type: string + nodeVersion: + type: string + middleware: + type: boolean + enum: + - false + - true + middlewareRuntime: + type: string + enum: + - nodejs + description: Enforced runtime for explicitly configured Routing Middleware. + middlewareMatcher: + oneOf: + - type: string + - items: + type: string + type: array + description: Matcher supplied outside of the middleware source module. + serviceName: + type: string + description: Owning service name; scopes per-function config such as the v2beta consumer. + type: object + required: + - use + type: object + runtime: + type: string + buildCommand: + type: string + installCommand: + type: string + preDeployCommand: + type: string + routePrefix: + type: string + routePrefixSource: + type: string + enum: + - configured + - generated + subdomain: + type: string + schedule: + oneOf: + - type: string + - items: + type: string + type: array + handlerFunction: + type: string + topics: + oneOf: + - items: + type: string + type: array + - items: + properties: + topic: + type: string + retryAfterSeconds: + type: number + initialDelaySeconds: + type: number + required: + - topic + type: object + type: array + env: + additionalProperties: + properties: + type: + type: string + enum: + - service-ref + service: + type: string + required: + - service + - type + type: object + type: object + required: + - builder + - name + - schema + - type + - workspace + type: object + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + - properties: + schema: + type: string + enum: + - experimentalServicesV2 + name: + type: string + root: + type: string + description: Path to the service root, relative to the project root. + framework: + type: string + runtime: + type: string + entrypoint: + type: string + description: Resolved entrypoint, relative to the service root. + command: + items: + type: string + type: array + description: 'Command override for `runtime: "container"` services.' + builder: + properties: + use: + type: string + src: + type: string + config: + properties: + bunVersion: + type: string + maxLambdaSize: + type: string + includeFiles: + oneOf: + - type: string + - items: + type: string + type: array + excludeFiles: + oneOf: + - type: string + - items: + type: string + type: array + bundle: + type: boolean + enum: + - false + - true + ldsflags: + type: string + helpers: + type: boolean + enum: + - false + - true + rust: + type: string + debug: + type: boolean + enum: + - false + - true + zeroConfig: + type: boolean + enum: + - false + - true + import: + additionalProperties: + type: string + type: object + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + projectSettings: + properties: + framework: + nullable: true + type: string + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + rootDirectory: + nullable: true + type: string + nodeVersion: + type: string + monorepoManager: + nullable: true + type: string + createdAt: + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + directoryListing: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + commandForIgnoringBuildStep: + nullable: true + type: string + type: object + outputDirectory: + type: string + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + framework: + nullable: true + type: string + nodeVersion: + type: string + middleware: + type: boolean + enum: + - false + - true + middlewareRuntime: + type: string + enum: + - nodejs + description: Enforced runtime for explicitly configured Routing Middleware. + middlewareMatcher: + oneOf: + - type: string + - items: + type: string + type: array + description: Matcher supplied outside of the middleware source module. + serviceName: + type: string + description: Owning service name; scopes per-function config such as the v2beta consumer. + type: object + required: + - use + type: object + description: Builder selected by the resolver. + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + ignoreCommand: + type: string + outputDirectory: + type: string + bindings: + items: + properties: + type: + type: string + enum: + - service + description: If present, must be `"service"` for Service-to-Service HTTP bindings. + service: + type: string + description: Target service name from `services`. + format: + type: string + enum: + - url + description: Generated value shape, must be `"url"`. + env: + type: string + description: Environment variable name that will store the generated value + required: + - env + - format + - service + type: object + description: Caller-side bindings to other services. + type: array + description: Caller-side bindings to other services. + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + description: Function configuration scoped to this service. + type: object + description: Function configuration scoped to this service. + headers: + items: + properties: + source: + type: string + headers: + items: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: array + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + required: + - headers + - source + type: object + type: array + redirects: + items: + properties: + source: + type: string + destination: + type: string + permanent: + type: boolean + enum: + - false + - true + statusCode: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + env: + items: + type: string + type: array + required: + - destination + - source + type: object + type: array + rewrites: + items: + properties: + source: + type: string + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + transforms: + items: + properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + statusCode: + type: number + env: + items: + type: string + type: array + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - destination + - source + type: object + type: array + routes: + items: + oneOf: + - properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - resource + - rewrite + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + type: array + cleanUrls: + type: boolean + enum: + - false + - true + trailingSlash: + type: boolean + enum: + - false + - true + required: + - builder + - name + - root + - schema + type: object + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + type: array + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + gitRepo: + nullable: true + oneOf: + - properties: + namespace: + type: string + projectId: + type: number + type: + type: string + enum: + - gitlab + url: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - namespace + - ownerType + - path + - private + - projectId + - type + - url + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + repoOwnerId: + type: number + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - org + - ownerType + - path + - private + - repo + - repoId + - repoOwnerId + - type + type: object + - properties: + owner: + type: string + repoUuid: + type: string + slug: + type: string + type: + type: string + enum: + - bitbucket + workspaceUuid: + type: string + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - owner + - ownerType + - path + - private + - repoUuid + - slug + - type + - workspaceUuid + type: object + - properties: + org: + type: string + repo: + type: string + type: + type: string + enum: + - vercel + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - org + - ownerType + - path + - private + - repo + - type + type: object + - properties: + owner: + type: string + description: Owner (namespace) slug. + repo: + type: string + repoId: + type: string + description: Origin repository id. + type: + type: string + enum: + - cursor-origin + path: + type: string + defaultBranch: + type: string + name: + type: string + private: + type: boolean + enum: + - false + - true + ownerType: + type: string + enum: + - team + - user + required: + - defaultBranch + - name + - owner + - ownerType + - path + - private + - repo + - repoId + - type + type: object + flags: + oneOf: + - properties: + definitions: + additionalProperties: + properties: + options: + items: + properties: + value: + $ref: '#/components/schemas/FlagJSONValue' + label: + type: string + required: + - value + type: object + type: array + url: + type: string + description: + type: string + type: object + type: object + required: + - definitions + type: object + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. + - items: + type: string + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. (opaque JSON object) + type: array + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. + microfrontends: + oneOf: + - properties: + isDefaultApp: + type: boolean + enum: + - false + defaultAppProjectName: + type: string + description: The project name of the default app of this deployment's microfrontends group. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + required: + - defaultAppProjectName + - groupIds + type: object + - properties: + isDefaultApp: + type: boolean + enum: + - true + mfeConfigUploadState: + type: string + enum: + - no_config + - success + - waiting_on_build + description: The result of the microfrontends config upload during deployment creation / build. Only set for default app deployments. The config upload is attempted during deployment create, and then again during the build. If the config is not in the root directory, or the deployment is prebuilt, the config cannot be uploaded during deployment create. The upload during deployment build finds the config even if it's not in the root directory, as it has access to all files. Uploading the config during create is ideal, as then all child deployments are guaranteed to have access to the default app deployment config even if the default app has not yet started building. If the config is not uploaded, the child app will show as building until the config has been uploaded during the default app build. - `success` - The config was uploaded successfully, either when the deployment was created or during the build. - `waiting_on_build` - The config could not be uploaded during deployment create, will be attempted again during the build. - `no_config` - No config was found. Only set once the build has not found the config in any of the deployment's files. - `undefined` - Legacy deployments, or there was an error uploading the config during deployment create. + defaultAppProjectName: + type: string + description: The project name of the default app of this deployment's microfrontends group. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + required: + - defaultAppProjectName + - groupIds + - isDefaultApp + type: object + platform: + properties: + source: + properties: + name: + type: string + description: Display name of the platform. + required: + - name + type: object + description: The external platform that created the deployment (e.g. its display name). + origin: + properties: + type: + type: string + enum: + - id + - url + description: Whether the value is an opaque identifier or a URL. + value: + type: string + description: The identifier or URL pointing to the originating entity. + required: + - type + - value + type: object + description: Reference back to the entity on the platform that initiated the deployment. + creator: + properties: + name: + type: string + description: Display name of the platform user. + avatar: + type: string + description: URL of the platform user's avatar image. + required: + - name + type: object + description: The user on the external platform who triggered the deployment. + meta: + additionalProperties: + type: string + type: object + description: Arbitrary key-value metadata provided by the platform. + required: + - creator + - origin + - source + type: object + description: Metadata about the source platform that triggered the deployment. Allows us to map a deployment back to a platform (e.g. the chat that created it) + config: + properties: + version: + type: number + functionType: + type: string + enum: + - fluid + - standard + functionMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionTimeout: + nullable: true + type: number + secureComputePrimaryRegion: + nullable: true + type: string + secureComputeFallbackRegion: + nullable: true + type: string + isUsingActiveCPU: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + description: Build resource configuration snapshot for this deployment. + type: object + description: Build resource configuration snapshot for this deployment. + elasticConcurrency: + type: string + enum: + - PROJECT_SETTING + - SKIP_QUEUE + - TEAM_SETTING + description: 'When elastic concurrency is used for this deployment, a value is set. The value tells the reason where the setting was coming from. - TEAM_SETTING: Inherited from team settings - PROJECT_SETTING: Inherited from project settings - SKIP_QUEUE: Manually triggered by user to skip the queues' + buildMachine: + properties: + purchaseType: + nullable: true + type: string + enum: + - basic + - enhanced + - standard + - turbo + - null + description: Machine type that was used for the build. + type: object + type: object + description: Build resource configuration snapshot for this deployment. + required: + - functionMemoryType + - functionTimeout + - functionType + - secureComputeFallbackRegion + - secureComputePrimaryRegion + type: object + description: Since February 2025 the configuration must include snapshot data at the time of deployment creation to capture properties for the /deployments/:id/config endpoint utilized for displaying Deployment Configuration on the frontend This is optional because older deployments may not have this data captured + checks: + properties: + deployment-alias: + properties: + state: + type: string + enum: + - failed + - pending + - succeeded + startedAt: + type: number + completedAt: + type: number + required: + - startedAt + - state + type: object + description: Condensed check data. Retrieve individual check and check run data using api-checks v2 routes. + required: + - deployment-alias + type: object + seatBlock: + properties: + blockCode: + type: string + enum: + - COMMIT_AUTHOR_REQUIRED + - TEAM_ACCESS_REQUIRED + description: 'The NSNB decision code for the seat block. TODO: We should consolidate block types.' + userId: + type: string + description: The blocked vercel user ID. + isVerified: + type: boolean + enum: + - false + - true + description: Determines if the user was verified during the block. In the git integration case, the commit sender was the author. + gitUserId: + oneOf: + - type: string + - type: number + gitProvider: + type: string + enum: + - bitbucket + - github + - gitlab + description: The git provider type associated with gitUserId. + required: + - blockCode + type: object + description: NSNB Blocked metadata + attribution: + properties: + commitMeta: + properties: + email: + type: string + description: Email from git commit author + name: + type: string + description: Name from git commit author + isVerified: + type: boolean + enum: + - false + - true + description: Whether the commit was signed/verified (GitHub only, others return undefined) + type: object + description: Commit metadata from the git commit author + gitUser: + properties: + id: + oneOf: + - type: string + - type: number + login: + type: string + description: Git provider username/login + type: + type: string + description: User type + provider: + type: string + description: The git provider (github, gitlab, bitbucket) + required: + - id + - login + type: object + description: Git provider user associated with the commit author email (only set if resolved) + vercelUser: + properties: + id: + type: string + description: Vercel user ID + username: + type: string + description: Vercel username + teamRoles: + items: + type: string + type: array + description: Team roles at time of deployment + required: + - id + - username + type: object + description: Vercel user linked to the git provider account (only set if resolved) + type: object + description: Attribution metadata for the deployment, linking commit author to git and Vercel users. Only populated when the `enable-deployment-attribution` flag is enabled. + required: + - aliasAssigned + - id + - readyState + - bootedAt + - build + - buildSkipped + - buildingAt + - createdAt + - createdIn + - creator + - env + - inspectorUrl + - isInConcurrentBuildsQueue + - isInSystemBuildsQueue + - meta + - name + - ownerId + - plan + - projectId + - projectSettings + - public + - regions + - routes + - status + - type + - url + - version + type: object + description: Returns the reduced deployment view for anonymous (`vcn_`) callers. Pool-team details are withheld. + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: |- + The account is missing a payment so payment method must be updated + Pro customers are allowed to deploy Serverless Functions to up to `proMaxRegions` regions, or if the project was created before the limit was introduced. + Deploying to Serverless Functions to multiple regions requires a plan update + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: The deployment project is being transferred + '410': + description: '' + '426': + description: '' + '429': + description: '' + '500': + description: '' + '503': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - name: forceNew + description: Forces a new deployment even if there is a previous similar deployment. Set to `1` to bypass deployment deduplication and always trigger a fresh build. + in: query + schema: + description: Forces a new deployment even if there is a previous similar deployment. Set to `1` to bypass deployment deduplication and always trigger a fresh build. + enum: + - '0' + - '1' + example: '1' + - name: skipAutoDetectionConfirmation + description: Set to `1` to skip framework auto-detection and proceed without confirmation. By default, if Vercel detects a framework that differs from the project setting, the API returns a `400` asking you to confirm. Use this to suppress that check in automated pipelines. + in: query + schema: + description: Set to `1` to skip framework auto-detection and proceed without confirmation. By default, if Vercel detects a framework that differs from the project setting, the API returns a `400` asking you to confirm. Use this to suppress that check in automated pipelines. + enum: + - '0' + - '1' + example: '1' + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + properties: + customEnvironmentSlugOrId: + description: The slug or ID of a custom environment to deploy to, overriding the default target environment. When omitted, the deployment targets the environment inferred from the branch (production or preview). + type: string + example: staging + deploymentId: + description: The ID of an existing deployment to redeploy. All project settings and environment variables are inherited from the original unless explicitly overridden in this request. The redeployment gets a new ID, URL, and build. + type: string + example: dpl_2qn7PZrx89yxY34vEZPD31Y9XVj6 + files: + description: The files to include in the deployment. Each entry is either an inlined file (with `data` and `encoding`) or a reference to a previously uploaded file (with `sha` and `size`). Required for non-git deployments. Cannot be used together with `gitSource`. + items: + oneOf: + - additionalProperties: false + description: Used in the case you want to inline a file inside the request + properties: + data: + description: The file content, it could be either a `base64` (useful for images, etc.) of the files or the plain content for source code + type: string + encoding: + description: The file content encoding, it could be either a base64 (useful for images, etc.) of the files or the plain text for source code. + enum: + - base64 + - utf-8 + file: + description: The file name including the whole path + example: folder/file.js + type: string + required: + - file + - data + title: InlinedFile + type: object + - additionalProperties: false + description: Used in the case you want to reference a file that was already uploaded + properties: + file: + description: The file path relative to the project root + example: folder/file.js + type: string + sha: + description: The file contents hashed with SHA1, used to check the integrity + type: string + size: + description: The file size in bytes + type: integer + required: + - file + title: UploadedFile + type: object + type: array + gitAccessToken: + description: Available only to Vercel platform accounts. A read-only GitHub access token scoped to the requested repository. Use a token with a lifetime of 24 hours or less that remains valid until source retrieval completes. + maxLength: 1024 + type: string + writeOnly: true + gitMetadata: + description: Populates initial git metadata for different git providers. + additionalProperties: false + type: object + properties: + remoteUrl: + type: string + description: The git repository's remote origin url + example: https://github.com/vercel/next.js + commitAuthorName: + type: string + description: The name of the author of the commit + example: kyliau + commitAuthorEmail: + type: string + description: The email of the author of the commit + example: kyliau@example.com + commitMessage: + type: string + description: The commit message + example: add method to measure Interaction to Next Paint (INP) (#36490) + commitRef: + type: string description: The branch on which the commit was made example: main commitSha: @@ -4664,705 +9543,1402 @@ paths: type: boolean description: Whether or not there have been modifications to the working tree since the latest commit example: true + ci: + type: boolean + description: True if process.env.CI was set when deploying + example: true + ciType: + type: string + description: The type of CI system used + example: github-actions + ciGitProviderUsername: + type: string + description: The username used for the Git Provider (e.g. GitHub) if their CI (e.g. GitHub Actions) was used, if available + example: rauchg + ciGitRepoVisibility: + type: string + description: The visibility of the Git repository if their CI (e.g. GitHub Actions) was used, if available + example: private + rootDirectory: + type: string + description: Path of the deployed directory relative to the detected git repository root. Empty string when deploying from the repository root. + example: apps/web gitSource: description: Defines the Git Repository source to be deployed. This property can not be used in combination with `files`. - anyOf: - - properties: - ref: - type: string - repoId: - oneOf: - - type: number - - type: string - sha: - type: string - type: - enum: - - github - type: string - required: - - type - - ref - - repoId - type: object - - properties: - org: - type: string - ref: - type: string - repo: - type: string - sha: - type: string - type: - enum: - - github - type: string - required: - - type - - ref - - org - - repo - type: object - - properties: - projectId: - oneOf: - - type: number - - type: string - ref: + properties: + type: + enum: + - vercel + type: string + sha: + type: string + example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0 + ref: + type: string + example: main + repoId: + oneOf: + - type: number + - type: string + example: 123456789 + org: + type: string + example: vercel + repo: + type: string + example: next.js + projectId: + oneOf: + - type: number + - type: string + example: 987654321 + repoUuid: + type: string + example: 123e4567-e89b-12d3-a456-426614174000 + workspaceUuid: + type: string + example: 987e6543-e21b-12d3-a456-426614174000 + owner: + type: string + example: bitbucket_user + slug: + type: string + example: my-awesome-project + required: + - type + - sha + - ref + - repoId + - org + - repo + - projectId + - repoUuid + - owner + - slug + type: object + meta: + additionalProperties: + maxLength: 65536 + type: string + description: An object containing the deployment's metadata. Multiple key-value pairs can be attached to a deployment. For deployments created with a Cursor Origin `gitSource`, Vercel automatically adds `cursorOriginDeployment`, `cursorOriginCommitSha`, `cursorOriginCommitRef`, `cursorOriginCommitMessage`, `cursorOriginCommitAuthorName`, `cursorOriginCommitAuthorEmail` when available, `cursorOriginOwner`, `cursorOriginRepo`, `cursorOriginRepoId`, and `cursorOriginPrId` for pull request deployments. + example: + foo: bar + maxProperties: 100 + type: object + monorepoManager: + description: The monorepo manager that is being used for this deployment. When `null` is used no monorepo manager is selected + type: string + nullable: true + name: + description: A string with the project name used in the deployment URL + example: my-instant-deployment + type: string + project: + description: The target project identifier in which the deployment will be created. When defined, this parameter overrides name + example: my-deployment-project + type: string + projectSettings: + additionalProperties: false + description: Project settings that will be applied to the deployment. It is required for the first deployment of a project and will be saved for any following deployments + properties: + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + example: next build + commandForIgnoringBuildStep: + maxLength: 256 + type: string + nullable: true + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + type: string + enum: + - null + - services + - container + - blitzjs + - nextjs + - gatsby + - remix + - react-router + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart-1 + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - tanstack-start + - tanstack-start-lovable + - vitepress + - vuepress + - parcel + - fastapi + - flask + - fasthtml + - django + - ash + - factory-eve + - eve + - sanity + - sanity-v2 + - storybook + - nitro + - hono + - express + - h3 + - koa + - nestjs + - elysia + - fastify + - xmcp + - python + - ruby + - rust + - axum + - actix-web + - bun + - node + - go + - mastra + nullable: true + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + example: pnpm install + nodeVersion: + description: Override the Node.js version that should be used for this deployment + enum: + - 24.x + - 22.x + - 20.x + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + - 8.10.x + type: string + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + rootDirectory: + description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + maxLength: 256 + type: string + nullable: true + serverlessFunctionRegion: + description: The region to deploy Serverless Functions in this project + maxLength: 4 + type: string + nullable: true + skipGitConnectDuringLink: + description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + type: boolean + deprecated: true + sourceFilesOutsideRootDirectory: + description: Indicates if there are source files outside of the root directory, typically used for monorepos + type: boolean + type: object + target: + description: Either not defined, `staging`, `production`, or a custom environment identifier. If `staging`, a staging alias in the format `-.vercel.app` will be assigned. If `production`, any aliases defined in `alias` will be assigned. If omitted, the target will be `preview`. + type: string + example: production + withLatestCommit: + description: When `true` and `deploymentId` is passed in, the sha from the previous deployment's `gitSource` is removed forcing the latest commit to be used. + type: boolean + required: + - name + type: object + required: true + /v12/deployments/{id}/cancel: + patch: + description: 'Cancels a deployment that is currently in progress, stopping the build before it completes. Use this to recover quickly from accidental deploys, wrong-branch pushes, or builds with known errors — without waiting for them to finish. Returns 400 if the deployment is no longer cancelable (already `READY`, `ERROR`, or `CANCELED`). Returns the updated deployment object with `readyState: ''CANCELED''` on success.' + operationId: cancelDeployment + security: + - bearerToken: [] + summary: Cancel a deployment + tags: + - deployments + responses: + '200': + description: Returns the updated deployment object with `readyState` set to `CANCELED`. The build has been stopped and this action is irreversible. + content: + application/json: + schema: + properties: + aliasAssignedAt: + nullable: true + type: number + enum: + - false + - true + alwaysRefuseToBuild: + type: boolean + enum: + - false + - true + build: + properties: + env: + items: type: string - sha: + type: array + required: + - env + type: object + buildArtifactUrls: + items: + type: string + type: array + builds: + items: + properties: + use: type: string - type: - enum: - - gitlab + src: type: string + config: + additionalProperties: true + type: object required: - - type - - ref - - projectId + - use type: object - - properties: - ref: - type: string - repoUuid: + type: array + env: + items: + type: string + type: array + resourceConfig: + properties: + buildMachine: + properties: + purchaseType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + description: Machine type which was purchased/selected for this build. `basic` is the 2vCPU tier, recorded on the deployment so the build pipeline can detect a basic build without consulting the project. + defaultPurchaseType: + type: string + enum: + - basic + - enhanced + - standard + description: The default plan type for the build machine — what the customer is *paying* for on their plan. For most customers, this is standard, but some customers have an entitlement for enhanced builds. + machineSelectionType: + type: string + enum: + - elastic + - fixed + description: Whether the build ran on a fixed or elastic machine. Used to drive billing for the build. + selectionSource: + type: string + enum: + - elastic-algorithm + - plan-default + - project-setting + - team-entitlement + - team-setting + description: The setting which selected the build machine when the deployment was created. Frozen here so later project or team changes do not rewrite its history. + cores: + type: number + description: Number of cores the build machine ran with. Set at dispatch time once the build lands on a hive. + memory: + type: number + description: Memory, in MiB, the build machine ran with. Set at dispatch time once the build lands on a hive. + type: object + description: Build machine configuration recorded for this deployment's build. See {@link DeploymentBuildMachine}. Distinct from the team/user `resourceConfig.buildMachine`, which only carries `default`. + type: object + inspectorUrl: + nullable: true + type: string + isInConcurrentBuildsQueue: + type: boolean + enum: + - false + - true + isInSystemBuildsQueue: + type: boolean + enum: + - false + - true + projectSettings: + properties: + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + buildCommand: + nullable: true + type: string + devCommand: + nullable: true + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + commandForIgnoringBuildStep: + nullable: true + type: string + installCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + type: object + integrations: + properties: + status: + type: string + enum: + - error + - pending + - ready + - skipped + - timeout + startedAt: + type: number + claimedAt: + type: number + completedAt: + type: number + skippedAt: + type: number + skippedBy: + type: string + required: + - startedAt + - status + type: object + images: + properties: + sizes: + items: + type: number + type: array + qualities: + items: + type: number + type: array + domains: + items: type: string - sha: + type: array + remotePatterns: + items: + properties: + protocol: + type: string + enum: + - http + - https + description: Must be `http` or `https`. + hostname: + type: string + description: Can be literal or wildcard. Single `*` matches a single subdomain. Double `**` matches any number of subdomains. + port: + type: string + description: Can be literal port such as `8080` or empty string meaning no port. + pathname: + type: string + description: Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments. + search: + type: string + description: Can be literal query string such as `?v=1` or empty string meaning no query string. + required: + - hostname + type: object + type: array + localPatterns: + items: + properties: + pathname: + type: string + description: Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments. + search: + type: string + description: Can be literal query string such as `?v=1` or empty string meaning no query string. + type: object + type: array + minimumCacheTTL: + type: number + formats: + items: type: string - type: enum: - - bitbucket - type: string - workspaceUuid: - type: string - required: - - type - - ref - - repoUuid - type: object - - properties: - owner: - type: string - ref: - type: string - sha: + - image/avif + - image/webp + type: array + dangerouslyAllowSVG: + type: boolean + enum: + - false + - true + contentSecurityPolicy: + type: string + contentDispositionType: + type: string + enum: + - attachment + - inline + type: object + alias: + items: + type: string + type: array + description: A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation + example: [] + aliasAssigned: + type: boolean + enum: + - false + - true + description: A boolean that will be true when the aliases from the alias property were assigned successfully + example: true + bootedAt: + type: number + buildingAt: + type: number + buildContainerFinishedAt: + type: number + description: Since April 2025 it necessary for On-Demand Concurrency Minutes calculation + buildSkipped: + type: boolean + enum: + - false + - true + creator: + properties: + uid: + type: string + description: Stable creator id across principal types (user id, app id, integration configuration id, or `system`). + example: 96SnxkFiMyVKsK3pnoHfx3Hz + type: + type: string + enum: + - app + - integration + - system + - user + description: Principal type of the deployment creator. + username: + type: string + description: The username of the user that created the deployment + example: john-doe + avatar: + type: string + description: The avatar of the user that created the deployment + required: + - uid + type: object + description: Information about the deployment creator + initReadyAt: + type: number + isFirstBranchDeployment: + type: boolean + enum: + - false + - true + lambdas: + items: + properties: + id: type: string - slug: + readyState: type: string - type: enum: - - bitbucket + - BUILDING + - ERROR + - INITIALIZING + - READY + createdAt: + type: number + entrypoint: + nullable: true type: string + readyStateAt: + type: number + output: + items: + properties: + path: + type: string + functionName: + type: string + required: + - functionName + - path + type: object + type: array required: - - type - - ref - - owner - - slug + - id + - output type: object - meta: - additionalProperties: - maxLength: 65536 + description: A partial representation of a Build used by the deployment endpoint. + type: array + public: + type: boolean + enum: + - false + - true + description: A boolean representing if the deployment is public or not. By default this is `false` + example: false + ready: + type: number + status: type: string - description: An object containing the deployment's metadata. Multiple key-value pairs can be attached to a deployment - example: - foo: bar - maxProperties: 100 - type: object - monorepoManager: - description: The monorepo manager that is being used for this deployment. When `null` is used no monorepo manager is selected - type: string - nullable: true - project: - type: object - required: - - id - - region_id - - name - - pg_version - - proxy_host - - branch_logical_size_limit - - branch_logical_size_limit_bytes - - store_passwords - - created_at - - updated_at - - owner_id - properties: - id: - type: string - region_id: - type: string - name: - type: string - pg_version: - type: number - proxy_host: - type: string - branch_logical_size_limit: - type: number - description: The logical size limit for a branch in MiB. - branch_logical_size_limit_bytes: - type: number - description: The logical size limit for a branch in bytes. - synthetic_storage_size: - type: number - description: The data storage size in bytes. - store_passwords: - type: boolean - created_at: - type: string - updated_at: - type: string - owner_id: - type: string - quota_reset_at: + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + team: + properties: + id: + type: string + name: + type: string + slug: + type: string + avatar: + type: string + required: + - id + - name + - slug + type: object + description: The team that owns the deployment if any + userAliases: + items: type: string - data_storage_bytes_hour: - type: number - data_transfer_bytes: - type: number - written_data_bytes: - type: number - active_time_seconds: - type: number - compute_time_seconds: - type: number - settings: - type: object - properties: - quota: - type: object + type: array + description: An array of domains that were provided by the user when creating the Deployment. + example: + - sub1.example.com + - sub2.example.com + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + ttyBuildLogs: + type: boolean + enum: + - false + - true + customEnvironment: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: properties: - compute_time_seconds: - type: number - description: The total amount of CPU seconds allowed to be spent by a project's compute endpoints. - active_time_seconds: - type: number - description: The total amount of wall-clock time allowed to be spent by a project's compute endpoints. - written_data_bytes: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true type: number - description: The total amount of data written to all project's branches. - data_transfer_bytes: + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: type: number - description: The total amount of data transferred from all project's branches using proxy. - logical_size_bytes: + createdAt: type: number - description: The logical size of every project's branch. - projectSettings: - additionalProperties: false - description: Project settings that will be applied to the deployment. It is required for the first deployment of a project and will be saved for any following deployments - properties: - buildCommand: - description: The build command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - commandForIgnoringBuildStep: - maxLength: 256 - type: string - nullable: true - devCommand: - description: The dev command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - framework: - description: The framework that is being used for this project. When `null` is used no framework is selected - type: string - enum: - - null - - blitzjs - - nextjs - - gatsby - - remix - - astro - - hexo - - eleventy - - docusaurus-2 - - docusaurus - - preact - - solidstart - - dojo - - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app - - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - - vite - - vitepress - - vuepress - - parcel - - sanity - - storybook - nullable: true - installCommand: - description: The install command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - outputDirectory: - description: The output directory of the project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - rootDirectory: - description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root - maxLength: 256 - type: string - nullable: true - serverlessFunctionRegion: - description: The region to deploy Serverless Functions in this project - maxLength: 4 - type: string - nullable: true - skipGitConnectDuringLink: - description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. - type: boolean - deprecated: true - sourceFilesOutsideRootDirectory: - description: 'Indicates if there are source files outside of the root directory, typically used for monorepos' - type: boolean - type: object - target: - description: 'Either not defined, `staging`, or `production`. If `staging`, a staging alias in the format `-.vercel.app` will be assigned. If `production`, any aliases defined in `alias` will be assigned. If omitted, the target will be `preview`' - enum: - - staging - - production - type: string - withLatestCommit: - description: 'When `true` and `deploymentId` is passed in, the sha from the previous deployment''s `gitSource` is removed forcing the latest commit to be used.' - type: boolean - connection_uris: - type: array - items: - type: object + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated required: - - connection_uri + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: If the deployment was created using a Custom Environment, then this property contains information regarding the environment used. + oomReport: + type: string + enum: + - out-of-memory + readyStateReason: + type: string + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + aliasError: + nullable: true properties: - connection_uri: + code: + type: string + message: type: string - example: 'postgres://user:pw@endpoint.us-east-2.aws.neon.tech/neondb' - roles: - type: array - items: - type: object required: - - branch_id - - name - - created_at - - updated_at + - code + - message + type: object + description: An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null` + example: null + aliasWarning: + nullable: true properties: - branch_id: - type: string - name: + code: type: string - created_at: + message: type: string - updated_at: + link: type: string - protected: - type: boolean - password: + action: type: string - databases: - type: array - items: - type: object required: - - id - - branch_id - - name - - owner_name - - created_at - - updated_at + - code + - message + type: object + errorCode: + type: string + errorMessage: + nullable: true + type: string + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + type: + type: string + enum: + - LAMBDAS + aliasFinal: + nullable: true + type: string + autoAssignCustomDomains: + type: boolean + enum: + - false + - true + description: applies to custom domains only, defaults to `true` + automaticAliases: + items: + type: string + type: array + buildErrorAt: + type: number + checksState: + type: string + enum: + - completed + - registered + - running + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + deletedAt: + nullable: true + type: number + description: A number containing the date when the deployment was deleted at milliseconds + example: 1540257589405 + defaultRoute: + type: string + description: Computed field that is only available for deployments with a microfrontend configuration. + canceledAt: + type: number + errorLink: + type: string + errorStep: + type: string + passiveRegions: + items: + type: string + type: array + description: Since November 2023 this field defines a set of regions that we will deploy the lambda to passively Lambdas will be deployed to these regions but only invoked if all of the primary `regions` are marked as out of service + gitSource: properties: - id: - type: number - branch_id: + type: type: string - name: + enum: + - github + repoId: + oneOf: + - type: string + - type: number + ref: + nullable: true type: string - owner_name: + sha: type: string - created_at: + prId: + nullable: true + type: number + org: type: string - updated_at: + repo: type: string - branch: - type: object - required: - - id - - project_id - - name - - current_state - - primary - - created_at - - updated_at - properties: - id: - type: string - project_id: - type: string - name: - type: string - current_state: - type: string - enum: - - init - - ready - primary: - type: boolean - created_at: - type: string - updated_at: - type: string - parent_id: - type: string - endpoints: - type: array - items: - type: object - required: - - host - - id - - project_id - - branch_id - - autoscaling_limit_min_cu - - autoscaling_limit_max_cu - - region_id - - type - - current_state - - pooler_enabled - - pooler_mode - - disabled - - passwordless_access - - created_at - - updated_at - - suspend_timeout_seconds - properties: host: type: string - id: - type: string - project_id: - type: string - branch_id: - type: string - autoscaling_limit_min_cu: - type: number - autoscaling_limit_max_cu: - type: number - region_id: - type: string - type: + projectId: + oneOf: + - type: string + - type: number + workspaceUuid: type: string - current_state: + repoUuid: type: string - pooler_enabled: - type: boolean - pooler_mode: + owner: type: string - disabled: - type: boolean - passwordless_access: - type: boolean - last_active: + slug: type: string - created_at: + repoPushedAt: + type: number + gitUrl: type: string - updated_at: + required: + - repoId + - type + - org + - repo + - host + - projectId + - repoUuid + - owner + - slug + - sha + - gitUrl + - ref + - workspaceUuid + type: object + description: Allows custom git sources (local folder mounted to the container) in test mode + manualProvisioning: + properties: + state: type: string - suspend_timeout_seconds: + enum: + - COMPLETE + - PENDING + - TIMEOUT + description: Current provisioning state + completedAt: type: number - endpoint: - type: object - required: - - host - - id - - project_id - - branch_id - - autoscaling_limit_min_cu - - autoscaling_limit_max_cu - - region_id - - type - - current_state - - pooler_enabled - - pooler_mode - - disabled - - passwordless_access - - created_at - - updated_at - - suspend_timeout_seconds - properties: - host: - type: string - id: - type: string - project_id: - type: string - branch_id: - type: string - autoscaling_limit_min_cu: - type: number - autoscaling_limit_max_cu: - type: number - region_id: - type: string - type: - type: string - current_state: - type: string - pooler_enabled: - type: boolean - pooler_mode: - type: string - disabled: - type: boolean - passwordless_access: - type: boolean - last_active: - type: string - created_at: - type: string - updated_at: - type: string - suspend_timeout_seconds: - type: number - database: - type: object - required: - - id - - branch_id - - name - - owner_name - - created_at - - updated_at - properties: - id: - type: number - branch_id: - type: string - name: - type: string - owner_name: - type: string - created_at: - type: string - updated_at: - type: string - role: - type: object - required: - - branch_id - - name - - created_at - - updated_at - properties: - branch_id: - type: string - name: - type: string - created_at: - type: string - updated_at: - type: string - protected: - type: boolean - password: + description: Timestamp when manual provisioning completed + required: + - state + type: object + description: Present when deployment was created with manual provisioning enabled, either explicitly or via the experimental BYOC git flow. The deployment stays in INITIALIZING until /continue is called. + meta: + additionalProperties: type: string - password: - type: string - projects: - type: array - items: type: object + originCacheRegion: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + description: If set it overrides the `projectSettings.nodeVersion` for this deployment. + project: + properties: + id: + type: string + name: + type: string + framework: + nullable: true + type: string required: - id - - data_storage_bytes_hour - - data_transfer_bytes - - written_data_bytes - - compute_time_seconds - - synthetic_storage_size + - name + type: object + description: The public project information associated with the deployment. + prebuilt: + type: boolean + enum: + - false + - true + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + description: 'Substate of deployment when readyState is ''READY'' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of having production traffic gradually transitioned. - PROMOTED: has seen production traffic' + regions: + items: + type: string + type: array + description: The regions the deployment exists in + example: + - sfo1 + softDeletedByRetention: + type: boolean + enum: + - false + - true + description: flag to indicate if the deployment was deleted by retention policy + example: 'true' + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + undeletedAt: + type: number + description: A number containing the date when the deployment was undeleted at milliseconds + example: 1540257589405 + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + userConfiguredDeploymentId: + type: string + description: Since January 2025 User-configured deployment ID for skew protection with pre-built deployments. This is set when users configure a custom deploymentId in their next.config.js file. This allows Next.js to use skew protection even when deployments are pre-built outside of Vercel's build system. + example: abc123 + version: + type: number + enum: + - 2 + description: The platform version that was used to create the deployment. + example: 2 + oidcTokenClaims: properties: - id: + iss: type: string - data_storage_bytes_hour: - type: number - data_storage_bytes_hour_updated_at: + sub: type: string - data_transfer_bytes: - type: number - data_transfer_bytes_updated_at: + scope: type: string - written_data_bytes: - type: number - written_data_bytes_updated_at: + aud: type: string - compute_time_seconds: - type: number - compute_time_seconds_updated_at: + owner: type: string - synthetic_storage_size: - type: number - synthetic_storage_size_updated_at: + owner_id: type: string - pagination: - type: object - required: - - cursor - properties: - cursor: - type: string - required: - - name - - project - - connection_uris - - roles - - databases - - branch - - endpoints - - endpoint - - database - - role - - password - - projects - - pagination - '/v12/deployments/{id}/cancel': - patch: - description: 'This endpoint allows you to cancel a deployment which is currently building, by supplying its `id` in the URL.' - operationId: cancelDeployment - security: - - bearerToken: [] - summary: Cancel a deployment - tags: - - deployments - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - build: - properties: - env: + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: items: type: string type: array - description: The keys of the environment variables that were assigned during the build phase. - example: - - MY_ENV_VAR + plan: + type: string required: - - env + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub type: object - builds: - items: - type: object - type: array + projectId: + type: string + plan: + type: string + enum: + - enterprise + - hobby + - pro connectBuildsEnabled: type: boolean - description: The flag saying if Vercel Connect configuration is used for builds + enum: + - false + - true connectConfigurationId: type: string - description: The ID of Vercel Connect configuration used for this deployment createdIn: type: string - description: The region where the deployment was first created - example: sfo1 - env: + crons: items: - type: string + properties: + schedule: + type: string + path: + type: string + required: + - path + - schedule + type: object type: array - description: The keys of the environment variables that were assigned during runtime - example: - - MY_SECRET + atproto: + properties: + enabled: + type: boolean + enum: + - false + subscription: + properties: + collections: + items: + type: string + type: array + dids: + items: + type: string + type: array + kinds: + items: + type: string + enum: + - account + - commit + - identity + - sync + type: array + path: + type: string + required: + - collections + - path + type: object + required: + - enabled + - subscription + type: object functions: nullable: true additionalProperties: properties: + architecture: + type: string + enum: + - arm64 + - x86_64 memory: type: number maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array runtime: type: string includeFiles: type: string excludeFiles: type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true type: object - description: An object used to configure your Serverless Functions - example: - api/test.js: - memory: 3008 type: object - description: An object used to configure your Serverless Functions - example: - api/test.js: - memory: 3008 - inspectorUrl: - nullable: true - type: string - description: Vercel URL to inspect the deployment. - example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' - isInConcurrentBuildsQueue: + isInstantStatic: type: boolean - description: Is the deployment currently queued waiting for a Concurrent Build Slot to be available - example: false - meta: - additionalProperties: - type: string - description: An object containing the deployment's metadata - example: - foo: bar - type: object - description: An object containing the deployment's metadata - example: - foo: bar + enum: + - false + - true + description: Whether this deployment completed through the instant static fast path. monorepoManager: nullable: true type: string - description: An monorepo manager that was used for the deployment - example: turbo - name: - type: string - description: The name of the project associated with the deployment at the time that the deployment was created - example: my-project ownerId: type: string - description: The unique ID of the user or team the deployment belongs to - example: ZspSRT4ljIEEmMHgoDwKWDei - plan: - type: string - enum: - - pro - - enterprise - - hobby - - oss - description: The pricing plan the deployment was made under - example: pro - projectId: + passiveConnectConfigurationId: type: string - description: The ID of the project the deployment is associated with - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: Since November 2023 this field defines a Secure Compute network that will only be used to deploy passive lambdas to (as in passiveRegions) routes: nullable: true items: @@ -5370,730 +10946,2680 @@ paths: - properties: src: type: string - dest: + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + - properties: + handle: + type: string + enum: + - error + - filesystem + - hit + - miss + - resource + - rewrite + src: + type: string + dest: + type: string + status: + type: number + required: + - handle + type: object + - properties: + src: + type: string + continue: + type: boolean + enum: + - false + - true + middleware: + type: number + enum: + - 0 + required: + - continue + - middleware + - src + type: object + type: array + services: + items: + oneOf: + - properties: + schema: + type: string + enum: + - experimentalServices + name: + type: string + type: + type: string + enum: + - cron + - job + - web + - worker + trigger: + type: string + enum: + - queue + - schedule + - workflow + group: + type: string + workspace: + type: string + entrypoint: + type: string + framework: + type: string + builder: + properties: + use: + type: string + src: + type: string + config: + properties: + bunVersion: + type: string + maxLambdaSize: + type: string + includeFiles: + oneOf: + - type: string + - items: + type: string + type: array + excludeFiles: + oneOf: + - type: string + - items: + type: string + type: array + bundle: + type: boolean + enum: + - false + - true + ldsflags: + type: string + helpers: + type: boolean + enum: + - false + - true + rust: + type: string + debug: + type: boolean + enum: + - false + - true + zeroConfig: + type: boolean + enum: + - false + - true + import: + additionalProperties: + type: string + type: object + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + projectSettings: + properties: + framework: + nullable: true + type: string + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + rootDirectory: + nullable: true + type: string + nodeVersion: + type: string + monorepoManager: + nullable: true + type: string + createdAt: + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + directoryListing: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + commandForIgnoringBuildStep: + nullable: true + type: string + type: object + outputDirectory: + type: string + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + framework: + nullable: true + type: string + nodeVersion: + type: string + middleware: + type: boolean + enum: + - false + - true + middlewareRuntime: + type: string + enum: + - nodejs + description: Enforced runtime for explicitly configured Routing Middleware. + middlewareMatcher: + oneOf: + - type: string + - items: + type: string + type: array + description: Matcher supplied outside of the middleware source module. + serviceName: + type: string + description: Owning service name; scopes per-function config such as the v2beta consumer. + type: object + required: + - use + type: object + runtime: + type: string + buildCommand: type: string - headers: + installCommand: + type: string + preDeployCommand: + type: string + routePrefix: + type: string + routePrefixSource: + type: string + enum: + - configured + - generated + subdomain: + type: string + schedule: + oneOf: + - type: string + - items: + type: string + type: array + handlerFunction: + type: string + topics: + oneOf: + - items: + type: string + type: array + - items: + properties: + topic: + type: string + retryAfterSeconds: + type: number + initialDelaySeconds: + type: number + required: + - topic + type: object + type: array + env: additionalProperties: - type: string + properties: + type: + type: string + enum: + - service-ref + service: + type: string + required: + - service + - type + type: object type: object - methods: + required: + - builder + - name + - schema + - type + - workspace + type: object + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + - properties: + schema: + type: string + enum: + - experimentalServicesV2 + name: + type: string + root: + type: string + description: Path to the service root, relative to the project root. + framework: + type: string + runtime: + type: string + entrypoint: + type: string + description: Resolved entrypoint, relative to the service root. + command: items: type: string type: array - continue: - type: boolean - override: - type: boolean - caseSensitive: - type: boolean - check: - type: boolean - important: - type: boolean - status: - type: number - has: - items: - oneOf: - - properties: - type: + description: 'Command override for `runtime: "container"` services.' + builder: + properties: + use: + type: string + src: + type: string + config: + properties: + bunVersion: + type: string + maxLambdaSize: + type: string + includeFiles: + oneOf: + - type: string + - items: + type: string + type: array + excludeFiles: + oneOf: + - type: string + - items: + type: string + type: array + bundle: + type: boolean + enum: + - false + - true + ldsflags: + type: string + helpers: + type: boolean + enum: + - false + - true + rust: + type: string + debug: + type: boolean + enum: + - false + - true + zeroConfig: + type: boolean + enum: + - false + - true + import: + additionalProperties: type: string + type: object + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string + enum: + - max + affinity: + properties: + mode: + type: string + enum: + - strict + required: + - mode + type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + type: object + projectSettings: + properties: + framework: + nullable: true + type: string + devCommand: + nullable: true + type: string + installCommand: + nullable: true + type: string + buildCommand: + nullable: true + type: string + outputDirectory: + nullable: true + type: string + rootDirectory: + nullable: true + type: string + nodeVersion: + type: string + monorepoManager: + nullable: true + type: string + createdAt: + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + directoryListing: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + commandForIgnoringBuildStep: + nullable: true + type: string + type: object + outputDirectory: + type: string + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + framework: + nullable: true + type: string + nodeVersion: + type: string + middleware: + type: boolean + enum: + - false + - true + middlewareRuntime: + type: string + enum: + - nodejs + description: Enforced runtime for explicitly configured Routing Middleware. + middlewareMatcher: + oneOf: + - type: string + - items: + type: string + type: array + description: Matcher supplied outside of the middleware source module. + serviceName: + type: string + description: Owning service name; scopes per-function config such as the v2beta consumer. + type: object + required: + - use + type: object + description: Builder selected by the resolver. + installCommand: + type: string + buildCommand: + type: string + devCommand: + type: string + ignoreCommand: + type: string + outputDirectory: + type: string + bindings: + items: + properties: + type: + type: string + enum: + - service + description: If present, must be `"service"` for Service-to-Service HTTP bindings. + service: + type: string + description: Target service name from `services`. + format: + type: string + enum: + - url + description: Generated value shape, must be `"url"`. + env: + type: string + description: Environment variable name that will store the generated value + required: + - env + - format + - service + type: object + description: Caller-side bindings to other services. + type: array + description: Caller-side bindings to other services. + functions: + additionalProperties: + properties: + architecture: + type: string + enum: + - arm64 + - x86_64 + memory: + type: number + maxDuration: + oneOf: + - type: number + - type: string enum: - - host - value: + - max + affinity: + properties: + mode: type: string + enum: + - strict required: - - type - - value + - mode type: object + maxConcurrency: + type: number + regions: + items: + type: string + type: array + functionFailoverRegions: + items: + type: string + type: array + runtime: + type: string + includeFiles: + type: string + excludeFiles: + type: string + experimentalTriggers: + items: + oneOf: + - properties: + type: + type: string + enum: + - queue/v1beta + description: Event type - must be "queue/v1beta" (REQUIRED) + consumer: + type: string + description: Name of the consumer group for this trigger (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - consumer + - topic + - type + type: object + description: Queue trigger input event for v1beta (from vercel.json config). Requires explicit consumer name. + - properties: + type: + type: string + enum: + - queue/v2beta + description: Event type - must be "queue/v2beta" (REQUIRED) + topic: + type: string + description: Name of the queue topic to consume from (REQUIRED) + maxDeliveries: + type: number + description: Maximum number of delivery attempts for message processing (OPTIONAL) This represents the total number of times a message can be delivered, not the number of retries. Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + retryAfterSeconds: + type: number + description: Delay in seconds before retrying failed executions (OPTIONAL) Behavior when not specified depends on the server's default configuration. + initialDelaySeconds: + type: number + description: Initial delay in seconds before first execution attempt (OPTIONAL) Must be 0 or greater. Use 0 for no initial delay. Behavior when not specified depends on the server's default configuration. + maxConcurrency: + type: number + description: Maximum number of concurrent executions for this consumer (OPTIONAL) Must be at least 1 if specified. Behavior when not specified depends on the server's default configuration. + required: + - topic + - type + type: object + description: Queue trigger input event for v2beta (from vercel.json config). Consumer name is implicitly derived from the function path. Only one trigger per function is allowed. + - properties: + type: + type: string + enum: + - schedule/v1beta + description: Event type - must be "schedule/v1beta" (REQUIRED) + required: + - type + type: object + type: array + supportsCancellation: + type: boolean + enum: + - false + - true + type: object + description: Function configuration scoped to this service. + type: object + description: Function configuration scoped to this service. + headers: + items: + properties: + source: + type: string + headers: + items: + properties: + key: + type: string + value: + type: string + required: + - key + - value + type: object + type: array + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + required: + - headers + - source + type: object + type: array + redirects: + items: + properties: + source: + type: string + destination: + type: string + permanent: + type: boolean + enum: + - false + - true + statusCode: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + env: + items: + type: string + type: array + required: + - destination + - source + type: object + type: array + rewrites: + items: + properties: + source: + type: string + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + transforms: + items: + properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + statusCode: + type: number + env: + items: + type: string + type: array + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - destination + - source + type: object + type: array + routes: + items: + oneOf: - properties: - type: + src: type: string - enum: - - header - - cookie - - query - key: + dest: type: string - value: + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: type: string - required: - - type - - key - type: object - type: array - missing: - items: - oneOf: - - properties: - type: + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean enum: - - host - value: - type: string + - false + - true required: - - type - - value + - src type: object - properties: - type: + handle: type: string enum: - - header - - cookie - - query - key: + - error + - filesystem + - hit + - miss + - resource + - rewrite + src: type: string - value: + dest: type: string + status: + type: number required: - - type - - key + - handle type: object type: array - locale: - properties: - redirect: - additionalProperties: - type: string - type: object - cookie: - type: string - type: object - middlewarePath: - type: string - description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. - middlewareRawSrc: - items: - type: string - type: array - description: The original middleware matchers. - middleware: - type: number - description: A middleware index in the `middleware` key under the build result - required: - - src - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - - properties: - handle: - type: string + cleanUrls: + type: boolean enum: - - error - - filesystem - - hit - - miss - - rewrite - - resource - src: - type: string - dest: - type: string - status: - type: number - required: - - handle - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - - properties: - src: - type: string - continue: + - false + - true + trailingSlash: type: boolean - middleware: - type: number enum: - - 0 + - false + - true required: - - src - - continue - - middleware - type: object - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - type: array - description: A list of routes objects used to rewrite paths to point towards other internal or external paths - example: - - src: /docs - dest: 'https://docs.example.com' - gitRepo: - nullable: true - oneOf: - - properties: - namespace: - type: string - projectId: - type: number - type: - type: string - enum: - - gitlab - url: - type: string - path: - type: string - defaultBranch: - type: string - name: - type: string - private: - type: boolean - ownerType: - type: string - enum: - - user - - team - required: - - namespace - - projectId - - type - - url - - path - - defaultBranch - - name - - private - - ownerType - type: object - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: - type: string - enum: - - github - repoOwnerId: - type: string - path: - type: string - defaultBranch: - type: string - name: - type: string - private: - type: boolean - ownerType: - type: string - enum: - - user - - team - required: - - org - - repo - - repoId - - type - - repoOwnerId - - path - - defaultBranch - - name - - private - - ownerType - type: object - - properties: - owner: - type: string - repoUuid: - type: string - slug: - type: string - type: - type: string - enum: - - bitbucket - workspaceUuid: - type: string - path: - type: string - defaultBranch: - type: string - name: - type: string - private: - type: boolean - ownerType: - type: string - enum: - - user - - team - required: - - owner - - repoUuid - - slug - - type - - workspaceUuid - - path - - defaultBranch - - name - - private - - ownerType - type: object - aliasAssignedAt: - nullable: true - oneOf: - - type: number - - type: boolean - lambdas: - items: - properties: - id: - type: string - createdAt: - type: number - entrypoint: - nullable: true - type: string - readyState: - type: string - enum: - - INITIALIZING - - BUILDING - - READY - - ERROR - readyStateAt: - type: number - output: - items: - properties: - path: - type: string - functionName: - type: string - required: - - path - - functionName - type: object - type: array - required: - - id - - output - type: object - type: array - public: - type: boolean - description: A boolean representing if the deployment is public or not. By default this is `false` - example: false - readyState: - type: string - enum: - - INITIALIZING - - BUILDING - - READY - - ERROR - - QUEUED - - CANCELED - description: 'The state of the deployment depending on the process of deploying, or if it is ready or in an error state' - example: READY - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - description: The substate of the deployment when the state is "READY" - example: STAGED - regions: - items: - type: string + - builder + - name + - root + - schema + type: object + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. type: array - description: The regions the deployment exists in - example: - - sfo1 - source: - type: string - enum: - - cli - - git - - import - - import/repo - - clone/repo - description: Where was the deployment created from - example: cli - target: + description: Services detected during build from vercel.json experimentalServices or auto-detected from project structure. Used to inject service URLs as environment variables at runtime. + gitRepo: nullable: true - type: string - enum: - - staging - - production - description: 'If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned' - example: null - team: properties: - id: + namespace: + type: string + projectId: + type: number + type: + type: string + enum: + - gitlab + url: + type: string + path: + type: string + defaultBranch: type: string - description: The ID of the team owner - example: team_LLHUOMOoDlqOp8wPE4kFo9pE name: type: string - description: The name of the team owner - example: FSociety - slug: + private: + type: boolean + enum: + - false + - true + ownerType: type: string - description: The slug of the team owner - example: fsociety - required: - - id - - name - - slug - type: object - description: The team that owns the deployment if any - type: - type: string - enum: - - LAMBDAS - url: - type: string - description: A string with the unique URL of the deployment - example: my-instant-deployment-3ij3cxz9qr.now.sh - userAliases: - items: - type: string - type: array - description: An array of domains that were provided by the user when creating the Deployment. - example: - - sub1.example.com - - sub2.example.com - version: - type: number - enum: - - 2 - description: The platform version that was used to create the deployment. - example: 2 - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - alias: - items: - type: string - type: array - description: 'A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation' - example: [] - aliasAssigned: - type: boolean - description: A boolean that will be true when the aliases from the alias property were assigned successfully - example: true - aliasError: - nullable: true - properties: - code: + enum: + - team + - user + org: type: string - message: + repo: type: string - required: - - code - - message - type: object - description: 'An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`' - example: null - aliasFinal: - nullable: true - type: string - aliasWarning: - nullable: true - properties: - code: + repoId: + type: number + repoOwnerId: + type: number + owner: type: string - message: + repoUuid: type: string - link: + slug: type: string - action: + workspaceUuid: type: string required: - - code - - message + - defaultBranch + - name + - namespace + - ownerType + - path + - private + - projectId + - type + - url + - org + - repo + - repoId + - repoOwnerId + - owner + - repoUuid + - slug + - workspaceUuid type: object - autoAssignCustomDomains: - type: boolean - automaticAliases: + flags: + properties: + definitions: + additionalProperties: + properties: + options: + items: + properties: + value: + $ref: '#/components/schemas/FlagJSONValue' + label: + type: string + required: + - value + type: object + type: array + url: + type: string + description: + type: string + type: object + type: object + required: + - definitions + type: object + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. items: type: string - type: array - bootedAt: - type: number - buildErrorAt: - type: number - buildingAt: - type: number - canceledAt: - type: number - checksState: - type: string - enum: - - registered - - running - - completed - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - createdAt: - type: number - description: A number containing the date when the deployment was created in milliseconds - example: 1540257589405 - creator: + description: Flags defined in the Build Output API, used by this deployment. Primarily used by the Toolbar to know about the used flags. (opaque JSON object) + microfrontends: properties: - uid: + isDefaultApp: + type: boolean + enum: + - false + defaultAppProjectName: type: string - description: The ID of the user that created the deployment - example: 96SnxkFiMyVKsK3pnoHfx3Hz - username: + description: The project name of the default app of this deployment's microfrontends group. + defaultRoute: type: string - description: The username of the user that created the deployment - example: john-doe - required: - - uid - type: object - description: Information about the deployment creator - errorCode: - type: string - errorLink: - type: string - errorMessage: - nullable: true - type: string - errorStep: - type: string - gitSource: - oneOf: - - properties: - type: - type: string - enum: - - github - repoId: - oneOf: - - type: string - - type: number - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - repoId - type: object - - properties: - type: - type: string - enum: - - github - org: - type: string - repo: - type: string - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - org - - repo - type: object - - properties: - type: - type: string - enum: - - gitlab - projectId: - oneOf: - - type: string - - type: number - ref: - nullable: true - type: string - sha: - type: string - prId: - nullable: true - type: number - required: - - type - - projectId - type: object - - properties: - type: - type: string - enum: - - bitbucket - workspaceUuid: - type: string - repoUuid: - type: string - ref: - nullable: true - type: string - sha: + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + mfeConfigUploadState: + type: string + enum: + - no_config + - success + - waiting_on_build + description: The result of the microfrontends config upload during deployment creation / build. Only set for default app deployments. The config upload is attempted during deployment create, and then again during the build. If the config is not in the root directory, or the deployment is prebuilt, the config cannot be uploaded during deployment create. The upload during deployment build finds the config even if it's not in the root directory, as it has access to all files. Uploading the config during create is ideal, as then all child deployments are guaranteed to have access to the default app deployment config even if the default app has not yet started building. If the config is not uploaded, the child app will show as building until the config has been uploaded during the default app build. - `success` - The config was uploaded successfully, either when the deployment was created or during the build. - `waiting_on_build` - The config could not be uploaded during deployment create, will be attempted again during the build. - `no_config` - No config was found. Only set once the build has not found the config in any of the deployment's files. - `undefined` - Legacy deployments, or there was an error uploading the config during deployment create. + required: + - defaultAppProjectName + - groupIds + - isDefaultApp + type: object + platform: + properties: + source: + properties: + name: type: string - prId: - nullable: true - type: number + description: Display name of the platform. required: - - type - - repoUuid + - name type: object - - properties: + description: The external platform that created the deployment (e.g. its display name). + origin: + properties: type: type: string enum: - - bitbucket - owner: - type: string - slug: - type: string - ref: - nullable: true - type: string - sha: + - id + - url + description: Whether the value is an opaque identifier or a URL. + value: type: string - prId: - nullable: true - type: number + description: The identifier or URL pointing to the originating entity. required: - type - - owner - - slug + - value type: object - - properties: - type: - type: string - enum: - - custom - ref: - type: string - sha: + description: Reference back to the entity on the platform that initiated the deployment. + creator: + properties: + name: type: string - gitUrl: + description: Display name of the platform user. + avatar: type: string + description: URL of the platform user's avatar image. required: - - type - - ref - - sha - - gitUrl + - name type: object - - properties: - type: + description: The user on the external platform who triggered the deployment. + meta: + additionalProperties: + type: string + type: object + description: Arbitrary key-value metadata provided by the platform. + required: + - creator + - origin + - source + type: object + description: Metadata about the source platform that triggered the deployment. Allows us to map a deployment back to a platform (e.g. the chat that created it) + config: + properties: + version: + type: number + functionType: + type: string + enum: + - fluid + - standard + functionMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionTimeout: + nullable: true + type: number + secureComputePrimaryRegion: + nullable: true + type: string + secureComputeFallbackRegion: + nullable: true + type: string + isUsingActiveCPU: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + description: Build resource configuration snapshot for this deployment. + type: object + description: Build resource configuration snapshot for this deployment. + elasticConcurrency: type: string enum: - - github - ref: - type: string - sha: - type: string - repoId: - type: number - org: - type: string - repo: - type: string - required: - - type - - ref - - sha - - repoId + - PROJECT_SETTING + - SKIP_QUEUE + - TEAM_SETTING + description: 'When elastic concurrency is used for this deployment, a value is set. The value tells the reason where the setting was coming from. - TEAM_SETTING: Inherited from team settings - PROJECT_SETTING: Inherited from project settings - SKIP_QUEUE: Manually triggered by user to skip the queues' + buildMachine: + properties: + purchaseType: + nullable: true + type: string + enum: + - basic + - enhanced + - standard + - turbo + - null + description: Machine type that was used for the build. + type: object type: object - - properties: - type: + description: Build resource configuration snapshot for this deployment. + required: + - functionMemoryType + - functionTimeout + - functionType + - secureComputeFallbackRegion + - secureComputePrimaryRegion + type: object + description: Since February 2025 the configuration must include snapshot data at the time of deployment creation to capture properties for the /deployments/:id/config endpoint utilized for displaying Deployment Configuration on the frontend This is optional because older deployments may not have this data captured + checks: + properties: + deployment-alias: + properties: + state: type: string enum: - - gitlab - ref: - type: string - sha: - type: string - projectId: + - failed + - pending + - succeeded + startedAt: + type: number + completedAt: type: number required: - - type - - ref - - sha - - projectId + - startedAt + - state type: object - - properties: - type: + description: Condensed check data. Retrieve individual check and check run data using api-checks v2 routes. + required: + - deployment-alias + type: object + seatBlock: + properties: + blockCode: + type: string + enum: + - COMMIT_AUTHOR_REQUIRED + - TEAM_ACCESS_REQUIRED + description: 'The NSNB decision code for the seat block. TODO: We should consolidate block types.' + userId: + type: string + description: The blocked vercel user ID. + isVerified: + type: boolean + enum: + - false + - true + description: Determines if the user was verified during the block. In the git integration case, the commit sender was the author. + gitUserId: + oneOf: + - type: string + - type: number + gitProvider: + type: string + enum: + - bitbucket + - github + - gitlab + description: The git provider type associated with gitUserId. + required: + - blockCode + type: object + description: NSNB Blocked metadata + attribution: + properties: + commitMeta: + properties: + email: type: string - enum: - - bitbucket - ref: + description: Email from git commit author + name: type: string - sha: + description: Name from git commit author + isVerified: + type: boolean + enum: + - false + - true + description: Whether the commit was signed/verified (GitHub only, others return undefined) + type: object + description: Commit metadata from the git commit author + gitUser: + properties: + id: + oneOf: + - type: string + - type: number + login: type: string - owner: + description: Git provider username/login + type: type: string - slug: + description: User type + provider: type: string - workspaceUuid: + description: The git provider (github, gitlab, bitbucket) + required: + - id + - login + type: object + description: Git provider user associated with the commit author email (only set if resolved) + vercelUser: + properties: + id: type: string - repoUuid: + description: Vercel user ID + username: type: string + description: Vercel username + teamRoles: + items: + type: string + type: array + description: Team roles at time of deployment required: - - type - - ref - - sha - - workspaceUuid - - repoUuid + - id + - username type: object - id: - type: string - description: A string holding the unique ID of the deployment - example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + description: Vercel user linked to the git provider account (only set if resolved) + type: object + description: Attribution metadata for the deployment, linking commit author to git and Vercel users. Only populated when the `enable-deployment-attribution` flag is enabled. required: + - aliasAssigned + - bootedAt - build + - buildSkipped + - buildingAt + - createdAt - createdIn + - creator - env + - id - inspectorUrl - isInConcurrentBuildsQueue + - isInSystemBuildsQueue - meta - name - ownerId - plan - projectId - - routes + - projectSettings - public - readyState - regions + - routes + - status - type - url - version - - alias - - aliasAssigned - - bootedAt - - buildingAt - - createdAt - - creator - - id type: object + description: Returns the updated deployment object with `readyState` set to `CANCELED`. The build has been stopped and this action is irreversible. '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - name: id description: The unique identifier of the deployment. @@ -6103,15 +13629,118 @@ paths: type: string example: dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd description: The unique identifier of the deployment. - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id}/deployments/{deployment_id}/runtime-logs: + get: + description: Returns a stream of logs for a given deployment. + operationId: getRuntimeLogs + security: + - bearerToken: [] + summary: Get logs for a deployment + tags: + - logs + responses: + '200': + description: '' + content: + application/stream+json: + schema: + properties: + level: + type: string + enum: + - debug + - error + - fatal + - info + - trace + - warning + message: + type: string + rowId: + type: string + source: + type: string + enum: + - delimiter + - edge-function + - edge-middleware + - request + - serverless + timestampInMs: + type: number + domain: + type: string + messageTruncated: + type: boolean + enum: + - false + - true + requestMethod: + type: string + requestPath: + type: string + responseStatusCode: + type: number + required: + - domain + - level + - message + - messageTruncated + - requestMethod + - requestPath + - responseStatusCode + - rowId + - source + - timestampInMs + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - name: deployment_id + in: path required: true schema: type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug /v2/files: post: - description: 'Before you create a deployment you need to upload the required files for that deployment. To do it, you need to first upload each file to this endpoint. Once that''s completed, you can create a new deployment with the uploaded files. The file content must be placed inside the body of the request. In the case of a successful response you''ll receive a status code 200 with an empty body.' + description: Before you create a deployment you need to upload the required files for that deployment. To do it, you need to first upload each file to this endpoint. Once that's completed, you can create a new deployment with the uploaded files. The file content must be placed inside the body of the request. In the case of a successful response you'll receive a status code 200 with an empty body. operationId: uploadFile security: - bearerToken: [] @@ -6126,28 +13755,30 @@ paths: content: application/json: schema: - oneOf: - - properties: - urls: - items: - type: string - type: array - description: Array of URLs where the file was updated - example: - - example-upload.aws.com - required: - - urls - type: object - - type: object + properties: + urls: + items: + type: string + type: array + description: Array of URLs where the file was updated + example: + - example-upload.aws.com + required: + - urls + type: object '400': description: |- One of the provided values in the headers is invalid Digest is not valid File size is not valid '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' + '426': + description: '' parameters: - in: header description: The file size in bytes @@ -6165,10 +13796,10 @@ paths: - in: header description: The file SHA1 used to check the integrity schema: - deprecated: true type: string description: The file SHA1 used to check the integrity maxLength: 40 + deprecated: true name: x-now-digest - in: header description: The file size as an alternative to `Content-Length` @@ -6177,15 +13808,26 @@ paths: deprecated: true description: The file size as an alternative to `Content-Length` name: x-now-size - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v6/deployments/{id}/files': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/StackqlOctetStreamBody' + /v6/deployments/{id}/files: get: - description: Allows to retrieve the file structure of a deployment by supplying the deployment unique identifier. + description: Allows to retrieve the file structure of the source code of a deployment by supplying the deployment unique identifier. If the deployment was created with the Vercel CLI or the API directly with the `files` key, it will have a file tree that can be retrievable. operationId: listDeploymentFiles security: - bearerToken: [] @@ -6198,19 +13840,19 @@ paths: content: application/json: schema: - items: - $ref: '#/components/schemas/FileTree' - type: array + $ref: '#/components/schemas/ListDeploymentFilesResponse' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: |- File tree not found Deployment not found + '410': + description: '' parameters: - name: id description: The unique deployment identifier @@ -6219,15 +13861,21 @@ paths: schema: description: The unique deployment identifier type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v6/deployments/{id}/files/{fileId}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v8/deployments/{id}/files/{file_id}: get: - description: Allows to retrieve the content of a file by supplying the file identifier and the deployment unique identifier. The response body will contain the raw content of the file. + description: Allows to retrieve the content of a file by supplying the file identifier and the deployment unique identifier. The response body will contain a JSON response containing the contents of the file encoded as base64. operationId: getDeploymentFileContents security: - bearerToken: [] @@ -6238,13 +13886,15 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: |- File not found Deployment not found + '410': + description: Invalid API version. parameters: - name: id description: The unique deployment identifier @@ -6253,7 +13903,7 @@ paths: schema: description: The unique deployment identifier type: string - - name: fileId + - name: file_id description: The unique file identifier in: path required: true @@ -6267,15 +13917,21 @@ paths: schema: description: Path to the file to fetch (only for Git deployments) type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - /v6/deployments: + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v7/deployments: get: - description: 'List deployments under the authenticated user or team. If a deployment hasn''t finished uploading (is incomplete), the `url` property will have a value of `null`.' + description: List deployments under the authenticated user or team. If a deployment hasn't finished uploading (is incomplete), the `url` property will have a value of `null`. operationId: getDeployments security: - bearerToken: [] @@ -6294,6 +13950,19 @@ paths: deployments: items: properties: + createdAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - DELETED + - ERROR + - INITIALIZING + - QUEUED + - READY uid: type: string description: The unique identifier of the deployment. @@ -6302,6 +13971,9 @@ paths: type: string description: The name of the deployment. example: docs + projectId: + type: string + description: The project ID of the deployment url: type: string description: The URL of the deployment. @@ -6310,36 +13982,51 @@ paths: type: number description: Timestamp of when the deployment got created. example: 1609492210000 + defaultRoute: + type: string + description: The default route that should be used for screenshots and links if configured with microfrontends. + example: /docs + deleted: + type: number + description: Timestamp of when the deployment got deleted. + example: 1609492210000 + undeleted: + type: number + description: Timestamp of when the deployment was undeleted. + example: 1609492210000 + softDeletedByRetention: + type: boolean + enum: + - false + - true + description: Optional flag to indicate if the deployment was soft deleted by retention policy. + example: true source: type: string enum: + - api-trigger-git-deploy - cli + - clone/repo + - drop - git + - git-deploy-hook - import - import/repo - - clone/repo + - redeploy + - v0-web description: The source of the deployment. example: cli state: type: string enum: + - BLOCKED - BUILDING - - ERROR - - INITIALIZING - - QUEUED - - READY - CANCELED - description: In which state is the deployment. - example: READY - readyState: - type: string - enum: - - BUILDING + - DELETED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED description: In which state is the deployment. example: READY type: @@ -6352,8 +14039,16 @@ paths: properties: uid: type: string - description: The unique identifier of the user. + description: Stable creator id across principal types. This may be a user ID, an app ID, an integration configuration ID, or `system`. example: eLrCnEgbKhsHyfbiNR7E8496 + type: + type: string + enum: + - app + - integration + - system + - user + description: Principal type of the deployment creator. Defaults to `"user"` if absent (legacy deployments created before principal attribution was recorded). email: type: string description: The email address of the user. @@ -6373,7 +14068,7 @@ paths: required: - uid type: object - description: Metadata information of the user who created the deployment. + description: Metadata information of the deployment creator. meta: additionalProperties: type: string @@ -6386,6 +14081,7 @@ paths: enum: - production - staging + - null description: On which environment has the deployment been deployed to. example: production aliasError: @@ -6405,10 +14101,9 @@ paths: oneOf: - type: number - type: boolean - createdAt: - type: number - description: Timestamp of when the deployment got created. - example: 1609492210000 + enum: + - false + - true buildingAt: type: number description: Timestamp of when the deployment started building at. @@ -6420,87 +14115,192 @@ paths: readySubstate: type: string enum: - - STAGED - PROMOTED - description: 'Since June 2023 Substate of deployment when readyState is ''READY'' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - PROMOTED: has seen production traffic' + - ROLLING + - STAGED + description: 'Substate of deployment when readyState is ''READY'' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of gradually transitioning production traffic - PROMOTED: has seen production traffic' checksState: type: string enum: + - completed - registered - running - - completed description: State of all registered checks checksConclusion: type: string enum: - - succeeded + - canceled - failed - skipped - - canceled + - succeeded description: Conclusion for checks + checks: + properties: + deployment-alias: + properties: + state: + type: string + enum: + - failed + - pending + - succeeded + startedAt: + type: number + completedAt: + type: number + required: + - startedAt + - state + type: object + description: Detailed information about v2 deployment checks. Includes information about blocked workflows in the deployment lifecycle. + required: + - deployment-alias + type: object + description: Detailed information about v2 deployment checks. Includes information about blocked workflows in the deployment lifecycle. inspectorUrl: nullable: true type: string description: Vercel URL to inspect the deployment. - example: 'https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq' + example: https://vercel.com/acme/nextjs/J1hXN00qjUeoYfpEEf7dnDtpSiVq + errorCode: + type: string + description: Error code when the deployment is in an error state. + example: BUILD_FAILED + errorMessage: + nullable: true + type: string + description: Error message when the deployment is in an canceled or error state. + example: The Deployment has been canceled because this project was not affected + oomReport: + type: string + enum: + - out-of-memory + description: Indicates if the deployment encountered an out-of-memory error. + example: out-of-memory isRollbackCandidate: nullable: true type: boolean + enum: + - false + - true + - null description: Deployment can be used for instant rollback + prebuilt: + type: boolean + enum: + - false + - true + manualProvisioning: + properties: + state: + type: string + enum: + - COMPLETE + - PENDING + - TIMEOUT + description: Current provisioning state + completedAt: + type: number + description: Timestamp when manual provisioning completed + required: + - state + type: object projectSettings: properties: framework: nullable: true type: string enum: - - blitzjs - - nextjs - - gatsby - - remix + - actix-web + - angular + - ash - astro - - hexo - - eleventy - - docusaurus-2 + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django - docusaurus - - preact - - solidstart + - docusaurus-2 - dojo + - eleventy + - elysia - ember - - vue - - scully + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen - ionic-angular - - angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook - svelte - sveltekit - sveltekit-1 - - ionic-react - - create-react-app - - gridsome + - tanstack-start + - tanstack-start-lovable - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - vite - vitepress + - vue - vuepress - - parcel - - sanity - - storybook + - xmcp + - zola + - null gitForkProtection: type: boolean + enum: + - false + - true customerSupportCodeVisibility: type: boolean + enum: + - false + - true gitLFS: type: boolean + enum: + - false + - true devCommand: nullable: true type: string @@ -6513,77 +14313,300 @@ paths: nodeVersion: type: string enum: - - 18.x - - 16.x - - 14.x - - 12.x - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x outputDirectory: nullable: true type: string - publicSource: - nullable: true - type: boolean rootDirectory: nullable: true type: string - serverlessFunctionRegion: - nullable: true - type: string sourceFilesOutsideRootDirectory: type: boolean + enum: + - false + - true commandForIgnoringBuildStep: nullable: true type: string createdAt: type: number + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object skipGitConnectDuringLink: type: boolean - gitComments: + enum: + - false + - true + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + description: Since June '23 + type: object + description: The project settings which was used for this deployment + connectBuildsEnabled: + type: boolean + enum: + - false + - true + description: The flag saying if Secure Compute network is used for builds + connectConfigurationId: + type: string + description: The ID of Secure Compute network used for this deployment + passiveConnectConfigurationId: + type: string + description: The ID of Secure Compute network used for this deployment's passive functions + expiration: + type: number + description: The expiration configured by the project retention policy + proposedExpiration: + type: number + description: The expiration proposed to replace the existing expiration + platform: + properties: + source: + properties: + name: + type: string + description: Display name of the platform. + required: + - name + type: object + description: The external platform that created the deployment (e.g. its display name). + origin: + properties: + type: + type: string + enum: + - id + - url + description: Whether the value is an opaque identifier or a URL. + value: + type: string + description: The identifier or URL pointing to the originating entity. + required: + - type + - value + type: object + description: Reference back to the entity on the platform that initiated the deployment. + creator: + properties: + name: + type: string + description: Display name of the platform user. + avatar: + type: string + description: URL of the platform user's avatar image. + required: + - name + type: object + description: The user on the external platform who triggered the deployment. + meta: + additionalProperties: + type: string + type: object + description: Arbitrary key-value metadata provided by the platform. + required: + - creator + - origin + - source + type: object + description: Metadata about the source platform that triggered the deployment. + customEnvironment: + properties: + id: + type: string + slug: + type: string + required: + - id + type: object + description: The custom environment used for this deployment, if any + seatBlock: + properties: + blockCode: + type: string + enum: + - COMMIT_AUTHOR_REQUIRED + - TEAM_ACCESS_REQUIRED + description: 'The NSNB decision code for the seat block. TODO: We should consolidate block types.' + userId: + type: string + description: The blocked vercel user ID. + isVerified: + type: boolean + enum: + - false + - true + description: Determines if the user was verified during the block. In the git integration case, the commit sender was the author. + gitUserId: + oneOf: + - type: string + - type: number + gitProvider: + type: string + enum: + - bitbucket + - github + - gitlab + description: The git provider type associated with gitUserId. + required: + - blockCode + type: object + description: NSNB Blocked metadata + attribution: + properties: + commitMeta: properties: - onPullRequest: - type: boolean - description: Whether the Vercel bot should comment on PRs - onCommit: + email: + type: string + description: Email from git commit author + name: + type: string + description: Name from git commit author + isVerified: type: boolean - description: Whether the Vercel bot should comment on commits + enum: + - false + - true + description: Whether the commit was signed/verified (GitHub only, others return undefined) + type: object + description: Commit metadata from the git commit author + gitUser: + properties: + id: + oneOf: + - type: string + - type: number + login: + type: string + description: Git provider username/login + type: + type: string + description: User type + provider: + type: string + description: The git provider (github, gitlab, bitbucket) required: - - onPullRequest - - onCommit + - id + - login type: object - description: Since June '23 + description: Git provider user associated with the commit author email (only set if resolved) + vercelUser: + properties: + id: + type: string + description: Vercel user ID + username: + type: string + description: Vercel username + teamRoles: + items: + type: string + type: array + description: Team roles at time of deployment + required: + - id + - username + type: object + description: Vercel user linked to the git provider account (only set if resolved) type: object - description: The project settings which was used for this deployment - connectBuildsEnabled: - type: boolean - description: The flag saying if Vercel Connect configuration is used for builds - connectConfigurationId: - type: string - description: The ID of Vercel Connect configuration used for this deployment + description: Commit attribution metadata required: - - uid - - name - - url - created - - type + - createdAt - creator - inspectorUrl + - name + - projectId + - readyState + - type + - uid + - url type: object type: array required: - - pagination - deployments + - pagination type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' '422': description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - ls + - list parameters: - name: app description: Name of the deployment. @@ -6608,21 +14631,31 @@ paths: type: number example: 10 - name: projectId - description: Filter deployments from the given `projectId`. + description: Filter deployments from the given ID or name. in: query schema: - description: Filter deployments from the given `projectId`. + description: Filter deployments from the given ID or name. type: string example: QmXGTs7mvAMMC7WW5ebrM33qKG32QK3h4vmQMjmY + - name: projectIds + description: Filter deployments from the given project IDs. Cannot be used when projectId is specified. + in: query + schema: + description: Filter deployments from the given project IDs. Cannot be used when projectId is specified. + type: array + items: + type: string + example: + - prj_123 + - prj_456 + minItems: 1 + maxItems: 20 - name: target description: Filter deployments based on the environment. in: query schema: description: Filter deployments based on the environment. type: string - enum: - - production - - preview example: production - name: to description: 'Gets the deployment created before this Date timestamp. (default: current time)' @@ -6638,7 +14671,7 @@ paths: schema: description: Filter out deployments based on users who have created the deployment. type: string - example: 'kr1PsOIzqEL5Xg6M4VZcZosf,K4amb7K9dAt5R2vBJWF32bmY' + example: kr1PsOIzqEL5Xg6M4VZcZosf,K4amb7K9dAt5R2vBJWF32bmY - name: since description: Get Deployments created after this JavaScript timestamp. in: query @@ -6654,27 +14687,45 @@ paths: type: number example: 1540095775951 - name: state - description: 'Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`)' + description: Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`, `BLOCKED`) in: query schema: - description: 'Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`)' + description: Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`, `BLOCKED`) type: string - example: 'BUILDING,READY' + example: BUILDING,READY - name: rollbackCandidate description: Filter deployments based on their rollback candidacy in: query schema: description: Filter deployments based on their rollback candidacy type: boolean - - description: The Team identifier or slug to perform the request on behalf of. + - name: branch + description: Filter deployments based on the branch name + in: query + schema: + description: Filter deployments based on the branch name + type: string + - name: sha + description: Filter deployments based on the SHA + in: query + schema: + description: Filter deployments based on the SHA + type: string + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v13/deployments/{id}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v13/deployments/{id}: delete: - description: 'This API allows you to delete a deployment, either by supplying its `id` in the URL or the `url` of the deployment as a query parameter. You can obtain the ID, for example, by listing all deployments.' + description: This API allows you to delete a deployment, either by supplying its `id` in the URL or the `url` of the deployment as a query parameter. You can obtain the ID, for example, by listing all deployments. operationId: deleteDeployment security: - bearerToken: [] @@ -6698,17 +14749,19 @@ paths: - DELETED description: A constant with the final state of the deployment. required: - - uid - state + - uid type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: The deployment was not found + '410': + description: '' parameters: - name: id description: The ID of the deployment to be deleted @@ -6719,16 +14772,763 @@ paths: example: dpl_5WJWYSyB7BpgTj3EuwF37WMRBXBtPQ2iTMJHJBJyRfd type: string - name: url - description: 'A Deployment or Alias URL. In case it is passed, the ID will be ignored' + description: A Deployment or Alias URL. In case it is passed, the ID will be ignored in: query required: false schema: - description: 'A Deployment or Alias URL. In case it is passed, the ID will be ignored' - example: 'https://files-orcin-xi.vercel.app/' + description: A Deployment or Alias URL. In case it is passed, the ID will be ignored + example: https://files-orcin-xi.vercel.app/ type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + FlagJSONValue: + nullable: true + type: string + items: + $ref: '#/components/schemas/FlagJSONValue' + description: 'TODO: The following types will eventually be exported by a more relevant package.' + additionalProperties: + $ref: '#/components/schemas/FlagJSONValue' + enum: + - false + - true + FileTree: + properties: + name: + type: string + description: The name of the file tree entry + example: my-file.json + type: + type: string + enum: + - directory + - file + - invalid + - lambda + - middleware + - symlink + description: String indicating the type of file tree entry. + example: file + uid: + type: string + description: The unique identifier of the file (only valid for the `file` type) + example: 2d4aad419917f15b1146e9e03ddc9bb31747e4d0 + children: + items: + $ref: '#/components/schemas/FileTree' + type: array + description: The list of children files of the directory (only valid for the `directory` type) + contentType: + type: string + description: The content-type of the file (only valid for the `file` type) + example: application/json + mode: + type: number + description: The file "mode" indicating file type and permissions. + required: + - mode + - name + - type + type: object + description: A deployment file tree entry + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + GetDeploymentEventsResponse: + type: object + properties: + deployment_events: + type: array + items: + oneOf: + - properties: + type: + type: string + enum: + - command + - delimiter + - deployment-state + - edge-function-invocation + - exit + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + created: + type: number + statusCode: + type: number + requestId: + type: string + proxy: + properties: + timestamp: + type: number + method: + type: string + host: + type: string + path: + type: string + statusCode: + type: number + userAgent: + items: + type: string + type: array + referer: + type: string + clientIp: + type: string + region: + type: string + scheme: + type: string + responseByteSize: + type: number + cacheId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + vercelId: + type: string + vercelCache: + type: string + enum: + - BYPASS + - HIT + - MISS + - PRERENDER + - REVALIDATED + - STALE + lambdaRegion: + type: string + wafAction: + type: string + enum: + - bypass + - challenge + - deny + - log + - rate_limit + wafRuleId: + type: string + required: + - host + - method + - timestamp + type: object + required: + - date + - deploymentId + - id + - serial + type: object + required: + - created + - payload + - type + type: object + - properties: + created: + type: number + date: + type: number + deploymentId: + type: string + id: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + serial: + type: string + text: + type: string + type: + type: string + enum: + - command + - delimiter + - deployment-state + - edge-function-invocation + - exit + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + level: + type: string + enum: + - error + - warning + required: + - created + - date + - deploymentId + - id + - info + - serial + - type + type: object + - oneOf: + - properties: + type: + type: string + enum: + - command + - delimiter + - deployment-state + - edge-function-invocation + - exit + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + created: + type: number + payload: + properties: + deploymentId: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + text: + type: string + id: + type: string + date: + type: number + serial: + type: string + created: + type: number + statusCode: + type: number + requestId: + type: string + proxy: + properties: + timestamp: + type: number + method: + type: string + host: + type: string + path: + type: string + statusCode: + type: number + userAgent: + items: + type: string + type: array + referer: + type: string + clientIp: + type: string + region: + type: string + scheme: + type: string + responseByteSize: + type: number + cacheId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + vercelId: + type: string + vercelCache: + type: string + enum: + - BYPASS + - HIT + - MISS + - PRERENDER + - REVALIDATED + - STALE + lambdaRegion: + type: string + wafAction: + type: string + enum: + - bypass + - challenge + - deny + - log + - rate_limit + wafRuleId: + type: string + required: + - host + - method + - timestamp + type: object + required: + - date + - deploymentId + - id + - serial + type: object + required: + - created + - payload + - type + type: object + - properties: + created: + type: number + date: + type: number + deploymentId: + type: string + id: + type: string + info: + properties: + type: + type: string + name: + type: string + entrypoint: + type: string + path: + type: string + step: + type: string + readyState: + type: string + serviceName: + type: string + required: + - name + - type + type: object + serial: + type: string + text: + type: string + type: + type: string + enum: + - command + - delimiter + - deployment-state + - edge-function-invocation + - exit + - fatal + - metric + - middleware + - middleware-invocation + - report + - stderr + - stdout + level: + type: string + enum: + - error + - warning + required: + - created + - date + - deploymentId + - id + - info + - serial + - type + type: object + - properties: + type: + type: string + enum: + - alias-assigned + deploymentId: + type: string + date: + type: number + alias: + items: + type: string + type: array + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasWarning: + nullable: true + properties: + code: + type: string + message: + type: string + link: + type: string + action: + type: string + required: + - code + - message + type: object + required: + - alias + - aliasError + - aliasWarning + - date + - deploymentId + - type + type: object + nullable: true + ListDeploymentFilesResponse: + type: object + properties: + deployment_files: + type: array + items: + $ref: '#/components/schemas/FileTree' + StackqlTextResponse: + type: object + description: 'Wrapper for non-JSON response bodies (jsonl, ndjson, streamed json, octet-stream): one row carrying the raw body text.' + properties: + items: + type: array + items: + type: object + properties: + contents: + type: string + description: Raw response body. + StackqlOctetStreamBody: + type: object + description: 'Raw request body for octet-stream uploads: the text in `value` is sent verbatim as the request body.' + properties: + value: + type: string + description: Raw body content (sent as-is). + required: + - value + x-stackQL-resources: + deployment_events: + id: vercel.deployments.deployment_events + name: deployment_events + title: Deployment Events + methods: + list: + operation: + $ref: '#/paths/~1v3~1deployments~1{id_or_url}~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deployment_events + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetDeploymentEventsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"deployment_events\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployment_events/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + deployments: + id: vercel.deployments.deployments + name: deployments + title: Deployments + methods: + update_integration_action: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1integrations~1{integration_configuration_id}~1resources~1{resource_id}~1actions~1{action}/patch' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v13~1deployments~1{id_or_url}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v13~1deployments/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + cancel: + operation: + $ref: '#/paths/~1v12~1deployments~1{id}~1cancel/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v7~1deployments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deployments + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + delete: + operation: + $ref: '#/paths/~1v13~1deployments~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployments/methods/get' + - $ref: '#/components/x-stackQL-resources/deployments/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/deployments/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/deployments/methods/delete' + replace: [] + runtime_logs: + id: vercel.deployments.runtime_logs + name: runtime_logs + title: Runtime Logs + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1deployments~1{deployment_id}~1runtime-logs/get' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/runtime_logs/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + files: + id: vercel.deployments.files + name: files + title: Files + methods: + upload: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1files/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/octet-stream + required: + - value + schema_override: + $ref: '#/components/schemas/StackqlOctetStreamBody' + transform: + type: golang_template_json_v0.1.0 + body: '{{ .value }}' + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + deployment_files: + id: vercel.deployments.deployment_files + name: deployment_files + title: Deployment Files + methods: + list: + operation: + $ref: '#/paths/~1v6~1deployments~1{id}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.deployment_files + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/ListDeploymentFilesResponse' + transform: + body: |- + {{- $wrapped := printf "{\"deployment_files\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployment_files/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/dns.yaml b/providers/src/vercel/v00.00.00000/services/dns.yaml index a2145939..e67f2aaa 100644 --- a/providers/src/vercel/v00.00.00000/services/dns.yaml +++ b/providers/src/vercel/v00.00.00000/services/dns.yaml @@ -1,99 +1,10 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: dns API + description: vercel dns API version: 0.0.1 - title: Vercel API - dns - description: dns -components: - schemas: - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - domains_records: - id: vercel.dns.domains_records - name: domains_records - title: Domains Records - methods: - get_records: - operation: - $ref: '#/paths/~1v4~1domains~1{domain}~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $._records - _get_records: - operation: - $ref: '#/paths/~1v4~1domains~1{domain}~1records/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_record: - operation: - $ref: '#/paths/~1v2~1domains~1{domain}~1records/post' - response: - mediaType: application/json - openAPIDocKey: '200' - update_record: - operation: - $ref: '#/paths/~1v1~1domains~1records~1{recordId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_record: - operation: - $ref: '#/paths/~1v2~1domains~1{domain}~1records~1{recordId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/domains_records/methods/get_records' - insert: - - $ref: '#/components/x-stackQL-resources/domains_records/methods/create_record' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/domains_records/methods/remove_record' paths: - '/v4/domains/{domain}/records': + /v5/domains/{domain}/records: get: description: Retrieves a list of DNS records created for a domain name. By default it returns 20 records if no limit is provided. The rest can be retrieved using the pagination options. operationId: getRecords @@ -108,136 +19,89 @@ paths: content: application/json: schema: - oneOf: - - type: string - - properties: - records: - items: - properties: - id: - type: string - slug: - type: string - name: - type: string - type: - type: string - enum: - - A - - AAAA - - ALIAS - - CAA - - CNAME - - MX - - SRV - - TXT - - NS - value: - type: string - mxPriority: - type: number - priority: - type: number - creator: - type: string - created: - nullable: true - type: number - updated: - nullable: true - type: number - createdAt: - nullable: true - type: number - updatedAt: - nullable: true - type: number - required: - - id - - slug - - name - - type - - value - - creator - - created - - updated - - createdAt - - updatedAt - type: object - type: array - required: - - records - type: object - - properties: - records: - items: - properties: - id: - type: string - slug: - type: string - name: - type: string - type: - type: string - enum: - - A - - AAAA - - ALIAS - - CAA - - CNAME - - MX - - SRV - - TXT - - NS - value: - type: string - mxPriority: - type: number - priority: - type: number - creator: - type: string - created: - nullable: true - type: number - updated: - nullable: true - type: number - createdAt: - nullable: true - type: number - updatedAt: - nullable: true - type: number - required: - - id - - slug - - name - - type - - value - - creator - - created - - updated - - createdAt - - updatedAt - type: object - type: array - pagination: - $ref: '#/components/schemas/Pagination' - required: - - records - - pagination - type: object - description: Successful response retrieving a list of paginated DNS records. + properties: + records: + items: + properties: + id: + type: string + slug: + type: string + name: + type: string + type: + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - HTTPS + - MX + - NS + - SRV + - TXT + value: + type: string + mxPriority: + type: number + priority: + type: number + creator: + type: string + created: + nullable: true + type: number + updated: + nullable: true + type: number + createdAt: + nullable: true + type: number + updatedAt: + nullable: true + type: number + ttl: + type: number + comment: + type: string + required: + - created + - createdAt + - creator + - id + - name + - slug + - type + - updated + - updatedAt + - value + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - records + - pagination + type: object + description: Successful response retrieving a list of paginated DNS records. '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - ls + - list parameters: - name: domain in: path @@ -245,6 +109,8 @@ paths: schema: type: string example: example.com + x-vercel-cli: + kind: argument - name: limit description: Maximum number of records to list from a request. in: query @@ -269,13 +135,19 @@ paths: description: Get records created before this JavaScript timestamp. type: string example: 1612264332000 - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v2/domains/{domain}/records': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/domains/{domain}/records: post: description: Creates a DNS record for a domain. operationId: createRecord @@ -290,40 +162,38 @@ paths: content: application/json: schema: - oneOf: - - properties: - uid: - type: string - updated: - type: number - required: - - uid - - updated - type: object - - properties: - uid: - type: string - description: The id of the newly created DNS record - example: rec_V0fra8eEgQwEpFhYG2vTzC3K - required: - - uid - type: object + properties: + uid: + type: string + updated: + type: number + required: + - updated + - uid + type: object '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' '409': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + bodyArguments: + - name + - type + - value parameters: - name: domain description: The domain used to create the DNS record. @@ -333,21 +203,34 @@ paths: description: The domain used to create the DNS record. type: string example: example.com - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: required: - type + - value + - name + - mxPriority + - srv + - https properties: type: - description: 'The type of record, it could be one of the valid DNS records.' + description: The type of record, it could be one of the valid DNS records. type: string enum: - A @@ -355,325 +238,94 @@ paths: - ALIAS - CAA - CNAME + - HTTPS - MX - SRV - TXT - NS - anyOf: - - type: object - additionalProperties: false - required: - - type - - value - - name - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - example: subdomain - type: - description: Must be of type `A`. - type: string - enum: - - A - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: The record value must be a valid IPv4 address. - type: string - format: ipv4 - example: 192.0.2.42 - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object - additionalProperties: false - required: - - type - - value - - name - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - example: subdomain - type: - description: Must be of type `AAAA`. - type: string - enum: - - AAAA - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: An AAAA record pointing to an IPv6 address. - type: string - format: ipv6 - example: '2001:DB8::42' - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object - additionalProperties: false - required: - - type - - value - - name - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - example: subdomain - type: - description: Must be of type `ALIAS`. - type: string - enum: - - ALIAS - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: An ALIAS virtual record pointing to a hostname resolved to an A record on server side. - type: string - example: cname.vercel-dns.com - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object - additionalProperties: false - required: - - type - - value - - name - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - example: subdomain - type: - description: Must be of type `CAA`. - type: string - enum: - - CAA - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: A CAA record to specify which Certificate Authorities (CAs) are allowed to issue certificates for the domain. - type: string - example: 0 issue \"letsencrypt.org\" - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object - additionalProperties: false - required: - - type - - name - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - example: subdomain - type: - description: Must be of type `CNAME`. - type: string - enum: - - CNAME - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: A CNAME record mapping to another domain name. - type: string - example: cname.vercel-dns.com - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object - additionalProperties: false - required: - - type - - value - - name - - mxPriority - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - example: subdomain - type: - description: Must be of type `MX`. - type: string - enum: - - MX - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: An MX record specifying the mail server responsible for accepting messages on behalf of the domain name. - type: string - example: 10 mail.example.com. - mxPriority: - type: number - minimum: 0 - maximum: 65535 - example: 10 - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object - additionalProperties: false - required: - - type - - name - - srv - properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - name: subdomain - type: - description: Must be of type `SRV`. - type: string - enum: - - SRV - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - srv: - type: object - additionalProperties: false - required: - - weight - - port - - priority - properties: - priority: - anyOf: - - type: number - minimum: 0 - maximum: 65535 - example: 10 - - type: 'null' - weight: - anyOf: - - type: number - minimum: 0 - maximum: 65535 - example: 10 - - type: 'null' - port: - anyOf: - - type: number - minimum: 0 - maximum: 65535 - example: 5000 - - type: 'null' - target: - type: string - example: host.example.com - comment: - type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object + name: + description: A subdomain name or an empty string for the root domain. + type: string + example: subdomain + ttl: + description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. + type: number + minimum: 60 + maximum: 2147483647 + example: 60 + value: + description: The record value must be a valid IPv4 address. + type: string + format: ipv4 + example: 192.0.2.42 + comment: + type: string + description: A comment to add context on what this DNS record is for + example: used to verify ownership of domain + maxLength: 500 + mxPriority: + type: number + minimum: 0 + maximum: 65535 + example: 10 + srv: + type: object additionalProperties: false required: - - type - - value - - name + - weight + - port + - priority + - target properties: - name: - description: A subdomain name or an empty string for the root domain. - type: string - name: subdomain - type: - description: Must be of type `TXT`. - type: string - enum: - - TXT - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: A TXT record containing arbitrary text. - type: string - example: hello - comment: + priority: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 10 + nullable: true + weight: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 10 + nullable: true + port: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 5000 + nullable: true + target: type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - - type: object + example: host.example.com + https: + type: object additionalProperties: false required: - - type - - name + - priority + - target properties: - name: - description: A subdomain name. - type: string - example: subdomain - type: - description: Must be of type `NS`. - type: string - enum: - - NS - ttl: - description: The TTL value. Must be a number between 60 and 2147483647. Default value is 60. - type: number - minimum: 60 - maximum: 2147483647 - example: 60 - value: - description: An NS domain value. + priority: + anyOf: + - type: number + minimum: 0 + maximum: 65535 + example: 10 + nullable: true + target: type: string - example: ns1.example.com - comment: + example: host.example.com + params: type: string - description: A comment to add context on what this DNS record is for - example: used to verify ownership of domain - maxLength: 500 - '/v1/domains/records/{recordId}': + example: alpn=h2,h3 + type: object + additionalProperties: false + required: true + x-speakeasy-test: false + /v1/domains/records/{record_id}: patch: description: Updates an existing DNS record for a domain name. operationId: updateRecord @@ -689,18 +341,24 @@ paths: application/json: schema: properties: - comment: + id: + type: string + name: + type: string + type: + type: string + enum: + - record + - record-sys + value: type: string - createdAt: - nullable: true - type: number creator: type: string domain: type: string - id: - type: string - name: + ttl: + type: number + comment: type: string recordType: type: string @@ -710,19 +368,14 @@ paths: - ALIAS - CAA - CNAME + - HTTPS - MX + - NS - SRV - TXT - - NS - ttl: + createdAt: + nullable: true type: number - type: - type: string - enum: - - record - - record-sys - value: - type: string required: - creator - domain @@ -737,19 +390,22 @@ paths: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' '409': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - - name: recordId + - name: record_id description: The id of the DNS record in: path required: true @@ -757,16 +413,25 @@ paths: description: The id of the DNS record example: rec_2qn7pzrx89yxy34vezpd31y9 type: string - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: + additionalProperties: false properties: name: type: string @@ -785,10 +450,12 @@ paths: - ALIAS - CAA - CNAME + - HTTPS - MX - SRV - TXT - NS + - null type: string description: The type of the DNS record example: A @@ -833,13 +500,162 @@ paths: nullable: true type: object nullable: true + https: + additionalProperties: false + required: + - priority + - target + properties: + priority: + description: '' + type: integer + nullable: true + target: + type: string + description: '' + example: example2.com. + maxLength: 255 + nullable: true + params: + description: '' + type: string + nullable: true + type: object + nullable: true comment: type: string description: A comment to add context on what this DNS record is for example: used to verify ownership of domain maxLength: 500 type: object - '/v2/domains/{domain}/records/{recordId}': + required: true + /domains/{domain}/records: + put: + description: '' + operationId: replaceDomainsByDomainRecords + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + recordIds: + items: + type: string + type: array + required: + - recordIds + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '415': + description: '' + parameters: + - name: domain + description: The domain name + in: path + required: true + schema: + type: string + description: The domain name + example: example.com + /domains/records/{record_id}: + get: + description: '' + operationId: getDomainsRecordsByRecordId + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + type: + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - HTTPS + - MX + - NS + - SRV + - TXT + id: + type: string + name: + type: string + value: + type: string + creator: + type: string + domain: + type: string + ttl: + type: number + comment: + type: string + recordType: + type: string + enum: + - A + - AAAA + - ALIAS + - CAA + - CNAME + - HTTPS + - MX + - NS + - SRV + - TXT + createdAt: + nullable: true + type: number + required: + - creator + - domain + - id + - name + - recordType + - type + - value + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: record_id + description: The unique ID of the DNS record + in: path + required: true + schema: + type: string + description: The unique ID of the DNS record + /v2/domains/{domain}/records/{record_id}: delete: description: Removes an existing DNS record from a domain name. operationId: removeRecord @@ -854,15 +670,21 @@ paths: content: application/json: schema: - type: object + type: string + description: (opaque JSON object) '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - name: domain in: path @@ -870,15 +692,136 @@ paths: schema: type: string example: example.com - - name: recordId + x-vercel-cli: + kind: argument + - name: record_id in: path required: true schema: type: string example: rec_V0fra8eEgQwEpFhYG2vTzC3K - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + x-stackQL-resources: + records: + id: vercel.dns.records + name: records + title: Records + methods: + list: + operation: + $ref: '#/paths/~1v5~1domains~1{domain}~1records/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.records + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1records/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1domains~1records~1{record_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + replace: + operation: + $ref: '#/paths/~1domains~1{domain}~1records/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1domains~1records~1{record_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1domains~1{domain}~1records~1{record_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/records/methods/list' + - $ref: '#/components/x-stackQL-resources/records/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/records/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/records/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/records/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/records/methods/replace' +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/domains.yaml b/providers/src/vercel/v00.00.00000/services/domains.yaml index 85273b2e..0d015dfc 100644 --- a/providers/src/vercel/v00.00.00000/services/domains.yaml +++ b/providers/src/vercel/v00.00.00000/services/domains.yaml @@ -1,527 +1,511 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: domains API + description: vercel domains API version: 0.0.1 - title: Vercel API - domains - description: domains -components: - schemas: - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - domains: - id: vercel.domains.domains - name: domains - title: Domains - methods: - buy_domain: - operation: - $ref: '#/paths/~1v4~1domains~1buy/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_domain: - operation: - $ref: '#/paths/~1v5~1domains~1{domain}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.domain - _get_domain: - operation: - $ref: '#/paths/~1v5~1domains~1{domain}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_domains: - operation: - $ref: '#/paths/~1v5~1domains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.domains - _get_domains: - operation: - $ref: '#/paths/~1v5~1domains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_or_transfer_domain: - operation: - $ref: '#/paths/~1v5~1domains/post' - response: - mediaType: application/json - openAPIDocKey: '200' - patch_domain: - operation: - $ref: '#/paths/~1v3~1domains~1{domain}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_domain: - operation: - $ref: '#/paths/~1v6~1domains~1{domain}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/domains/methods/get_domain' - - $ref: '#/components/x-stackQL-resources/domains/methods/get_domains' - insert: - - $ref: '#/components/x-stackQL-resources/domains/methods/create_or_transfer_domain' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/domains/methods/delete_domain' - price: - id: vercel.domains.price - name: price - title: Price - methods: - check_domain_price: - operation: - $ref: '#/paths/~1v4~1domains~1price/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/price/methods/check_domain_price' - insert: [] - update: [] - delete: [] - status: - id: vercel.domains.status - name: status - title: Status - methods: - check_domain_status: - operation: - $ref: '#/paths/~1v4~1domains~1status/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/status/methods/check_domain_status' - insert: [] - update: [] - delete: [] - domain_registry: - id: vercel.domains.domain_registry - name: domain_registry - title: Domain Registry - methods: - get_domain_transfer: - operation: - $ref: '#/paths/~1v1~1domains~1{domain}~1registry/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/domain_registry/methods/get_domain_transfer' - insert: [] - update: [] - delete: [] - config: - id: vercel.domains.config - name: config - title: Config - methods: - get_domain_config: - operation: - $ref: '#/paths/~1v6~1domains~1{domain}~1config/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/config/methods/get_domain_config' - insert: [] - update: [] - delete: [] paths: - /v4/domains/buy: - post: - description: Allows to purchase the specified domain. - operationId: buyDomain + /v6/domains/{domain}/config: + get: + description: Get a Domain's configuration. + operationId: getDomainConfig security: - bearerToken: [] - summary: Purchase a domain + summary: Get a Domain's configuration tags: - domains responses: - '201': - description: Successful response for purchasing a Domain. + '200': + description: '' content: application/json: schema: properties: - domain: - properties: - uid: - type: string - ns: - items: + configuredBy: + nullable: true + type: string + enum: + - A + - CNAME + - dns-01 + - http + - null + description: 'How we see the domain''s configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain''s A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `dns-01`: Domain is not resolving to Vercel but dns-01 challenge is enabled. - `null`: Domain is not resolving to Vercel.' + acceptedChallenges: + items: + type: string + enum: + - dns-01 + - http-01 + description: Which challenge types the domain can use for issuing certs. + type: array + description: Which challenge types the domain can use for issuing certs. + recommendedIPv4: + items: + properties: + rank: + type: number + value: + items: + type: string + type: array + required: + - rank + - value + type: object + description: Recommended IPv4s for the domain. rank=1 is the preferred value(s) to use. Only using 1 ip value is acceptable. + type: array + description: Recommended IPv4s for the domain. rank=1 is the preferred value(s) to use. Only using 1 ip value is acceptable. + recommendedCNAME: + items: + properties: + rank: + type: number + value: type: string - type: array - verified: - type: boolean - created: - type: number - pending: - type: boolean - required: - - uid - - ns - - verified - - created - - pending - type: object + required: + - rank + - value + type: object + description: Recommended CNAMEs for the domain. rank=1 is the preferred value to use. + type: array + description: Recommended CNAMEs for the domain. rank=1 is the preferred value to use. + misconfigured: + type: boolean + enum: + - false + - true + description: Whether or not the domain is configured AND we can automatically generate a TLS certificate. required: - - domain + - acceptedChallenges + - configuredBy + - misconfigured + - recommendedCNAME + - recommendedIPv4 type: object - '202': - description: Domain purchase is being processed asynchronously. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: domain + description: The name of the domain. + in: path + required: true + schema: + description: The name of the domain. + type: string + example: example.com + - name: projectIdOrName + description: The project id or name that will be associated with the domain. Use this when the domain is not yet associated with a project. + in: query + required: false + schema: + description: The project id or name that will be associated with the domain. Use this when the domain is not yet associated with a project. + type: string + - name: strict + description: When true, the response will only include the nameservers assigned directly to the specified domain. When false and there are no nameservers assigned directly to the specified domain, the response will include the nameservers of the domain's parent zone. + in: query + required: false + schema: + enum: + - 'true' + - 'false' + description: When true, the response will only include the nameservers assigned directly to the specified domain. When false and there are no nameservers assigned directly to the specified domain, the response will include the nameservers of the domain's parent zone. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v9/domains/{domain}/verification: + get: + description: Get the TXT verification record needed to claim ownership of a domain for the authenticated team. The caller must add this TXT record to `_vercel.{domain}` in their DNS configuration, then call POST /domains/:domain/claim to complete the ownership transfer. + operationId: getDomainVerificationRecord + security: + - bearerToken: [] + summary: Get Domain Verification Record + tags: + - domains + responses: + '200': + description: Returns the TXT record needed to verify domain ownership. content: application/json: schema: properties: - domain: - properties: - uid: - type: string - ns: - items: - type: string - type: array - verified: - type: boolean - created: - type: number - pending: - type: boolean - required: - - uid - - ns - - verified - - created - - pending - type: object + txtRecord: + type: string + verificationDomain: + type: string required: - - domain + - txtRecord + - verificationDomain type: object '400': - description: One of the provided values in the request body is invalid. + description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. - '409': + '404': description: '' - '429': + '410': description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - name: domain + description: The domain name to get the verification record for + in: path + required: true + schema: + description: The domain name to get the verification record for + type: string + example: example.com + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - requestBody: - content: - application/json: - schema: - additionalProperties: false - type: object - required: - - name - properties: - name: - description: The domain name to purchase. - type: string - example: example.com - expectedPrice: - description: The price you expect to be charged for the purchase. - type: number - example: 10 - renew: - description: Indicates whether the domain should be automatically renewed. - type: boolean - example: true - /v4/domains/price: - get: - description: Check the price to purchase a domain and how long a single purchase period is. - operationId: checkDomainPrice + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v9/domains/{domain}/claim: + post: + description: Claim ownership of a domain for the authenticated team by verifying a TXT record. The caller must first add a TXT record to `_vercel.{domain}` (obtained from GET /domains/:domain/verification), then call this endpoint to complete the ownership transfer. If the TXT record is verified, the domain ownership will be transferred to the caller's team, even if the domain is currently owned by another user or team. + operationId: claimDomainOwnership security: - bearerToken: [] - summary: Check the price for a domain + summary: Claim Domain Ownership tags: - domains responses: '200': - description: Successful response which returns the price of the domain and the period. + description: Domain ownership successfully claimed. content: application/json: schema: properties: - price: - type: number - description: The domain price in USD. - example: 20 - period: - type: number - description: The number of years the domain could be held before paying again. - example: 1 + domain: + properties: + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. null if not bought with Vercel. + verified: + type: boolean + enum: + - false + - true + description: If the domain has the ownership verified. + example: true + nameservers: + items: + type: string + type: array + description: A list of the current nameservers of the domain. + example: + - ns1.nameserver.net + - ns2.nameserver.net + intendedNameservers: + items: + type: string + type: array + description: A list of the intended nameservers for the domain to point to Vercel DNS. + example: + - ns1.vercel-dns.com + - ns2.vercel-dns.com + customNameservers: + items: + type: string + type: array + description: A list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel. + example: + - ns1.nameserver.net + - ns2.nameserver.net + creator: + properties: + username: + type: string + email: + type: string + customerId: + nullable: true + type: string + isDomainReseller: + type: boolean + enum: + - false + - true + id: + type: string + required: + - email + - id + - username + type: object + description: An object containing information of the domain creator, including the user's id, username, and email. + example: + id: ZspSRT4ljIEEmMHgoDwKWDei + username: vercel_user + email: demo@example.com + echMode: + type: string + enum: + - auto + - disabled + - enabled + description: Whether the domain is enrolled in Encrypted Client Hello. `auto` leaves the decision to Vercel, `enabled` always enrolls, and `disabled` never enrolls and opts out of automatic enrollment. + example: auto + name: + type: string + description: The domain name. + example: example.com + teamId: + nullable: true + type: string + boughtAt: + nullable: true + type: number + description: If it was purchased through Vercel, the timestamp in milliseconds when it was purchased. + example: 1613602938882 + createdAt: + type: number + description: Timestamp in milliseconds when the domain was created in the registry. + example: 1613602938882 + id: + type: string + description: The unique identifier of the domain. + example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 + renew: + type: boolean + enum: + - false + - true + description: Indicates whether the domain is set to automatically renew. + example: true + serviceType: + type: string + enum: + - external + - na + - zeit.world + description: The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available. + example: zeit.world + transferredAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in. + example: 1613602938882 + transferStartedAt: + type: number + description: If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated. + example: 1613602938882 + userId: + type: string + required: + - boughtAt + - createdAt + - creator + - echMode + - expiresAt + - id + - intendedNameservers + - name + - nameservers + - serviceType + - teamId + - userId + - verified + type: object required: - - price - - period + - domain type: object - description: Successful response which returns the price of the domain and the period. '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. - parameters: - - name: name - description: The name of the domain for which the price needs to be checked. - in: query - required: true - schema: - description: The name of the domain for which the price needs to be checked. - type: string - example: example.com - - name: type - description: In which status of the domain the price needs to be checked. - in: query - required: false - schema: - description: In which status of the domain the price needs to be checked. - type: string - enum: - - new - - renewal - example: new - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - /v4/domains/status: - get: - description: Check if a domain name is available for purchase. - operationId: checkDomainStatus - security: - - bearerToken: [] - summary: Check a Domain Availability - tags: - - domains - responses: - '200': - description: Successful response checking if a Domain's name is available. - content: - application/json: - schema: - properties: - available: - type: boolean - required: - - available - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': + '404': + description: '' + '410': description: '' - '403': - description: You do not have permission to access this resource. parameters: - - name: name - description: The name of the domain for which we would like to check the status. - in: query + - name: domain + description: The domain name to claim ownership of + in: path required: true schema: - description: The name of the domain for which we would like to check the status. + description: The domain name to claim ownership of type: string example: example.com - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true - schema: - type: string - '/v1/domains/{domain}/registry': - get: - description: Fetch domain transfer availability or transfer status if a transfer is in progress. - operationId: getDomainTransfer - security: - - bearerToken: [] - summary: Get domain transfer info. - tags: - - domains - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - transferable: - type: boolean - description: Whether or not the domain is transferable - transferPolicy: - nullable: true - type: string - enum: - - charge-and-renew - - no-charge-no-change - - no-change - - new-term - - not-supported - description: 'The domain''s transfer policy (depends on TLD requirements). `charge-and-renew`: transfer will charge for renewal and will renew the existing domain''s registration. `no-charge-no-change`: transfer will have no change to registration period and does not require charge. `no-change`: transfer charge is required, but no change in registration period. `new-term`: transfer charge is required and a new registry term is set based on the transfer date. `not-supported`: transfers are not supported for this domain or TLD. `null`: This TLD is not supported by Vercel''s Registrar.' - reason: - type: string - description: Description associated with transferable state. - status: - type: string - enum: - - pending_owner - - pending_admin - - pending_registry - - completed - - cancelled - - undef - - unknown - description: 'The current state of an ongoing transfer. `pending_owner`: Awaiting approval by domain''s admin contact (every transfer begins with this status). If approval is not given within five days, the transfer is cancelled. `pending_admin`: Waiting for approval by Vercel Registrar admin. `pending_registry`: Awaiting registry approval (the transfer completes after 7 days unless it is declined by the current registrar). `completed`: The transfer completed successfully. `cancelled`: The transfer was cancelled. `undef`: No transfer exists for this domain. `unknown`: This TLD is not supported by Vercel''s Registrar.' - required: - - transferable - - transferPolicy - - reason - - status - type: object - '400': - description: '' - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: domain - description: The name of the domain. - in: path - required: true schema: type: string - description: The name of the domain. - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string - '/v6/domains/{domain}/config': + example: my-team-url-slug + /v1/domains/{domain}/project-domains: get: - description: Get a Domain's configuration. - operationId: getDomainConfig + description: List all project domains associated with an apex domain owned by the authenticated account. + operationId: getDomainProjectDomains security: - bearerToken: [] - summary: Get a Domain's configuration + summary: List Project Domains by Apex Domain tags: - domains responses: '200': - description: '' + description: Successful response retrieving project domains for an apex domain. content: application/json: schema: properties: - configuredBy: - nullable: true - type: string - enum: - - CNAME - - A - - http - description: 'How we see the domain''s configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain''s A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `null`: Domain is not resolving to Vercel.' - acceptedChallenges: + projectDomains: items: - type: string - enum: - - dns-01 - - http-01 - description: Which challenge types the domain can use for issuing certs. + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object type: array - description: Which challenge types the domain can use for issuing certs. - misconfigured: - type: boolean - description: Whether or not the domain is configured AND we can automatically generate a TLS certificate. + pagination: + $ref: '#/components/schemas/Pagination' required: - - misconfigured + - pagination + - projectDomains type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' parameters: - name: domain - description: The name of the domain. + description: The apex domain name. in: path required: true schema: - description: The name of the domain. + description: The apex domain name. type: string example: example.com - - description: The Team identifier or slug to perform the request on behalf of. + - name: limit + description: Maximum number of project domains to list from a request. + in: query + required: false + schema: + description: Maximum number of project domains to list from a request. + type: number + example: 20 + - name: since + description: Get project domains created after this JavaScript timestamp. + in: query + required: false + schema: + description: Get project domains created after this JavaScript timestamp. + type: number + example: 1609499532000 + - name: until + description: Get project domains created before this JavaScript timestamp. + in: query + required: false + schema: + description: Get project domains created before this JavaScript timestamp. + type: number + example: 1612264332000 + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v5/domains/{domain}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v5/domains/{domain}: get: description: Get information for a single domain in an account or team. operationId: getDomain @@ -541,8 +525,18 @@ paths: properties: suffix: type: boolean + enum: + - false + - true + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. null if not bought with Vercel. verified: type: boolean + enum: + - false + - true description: If the domain has the ownership verified. example: true nameservers: @@ -580,55 +574,63 @@ paths: type: string isDomainReseller: type: boolean + enum: + - false + - true id: type: string required: - - username - email - id + - username type: object - description: 'An object containing information of the domain creator, including the user''s id, username, and email.' + description: An object containing information of the domain creator, including the user's id, username, and email. example: id: ZspSRT4ljIEEmMHgoDwKWDei username: vercel_user email: demo@example.com + echMode: + type: string + enum: + - auto + - disabled + - enabled + description: Whether the domain is enrolled in Encrypted Client Hello. `auto` leaves the decision to Vercel, `enabled` always enrolls, and `disabled` never enrolls and opts out of automatic enrollment. + example: auto + name: + type: string + description: The domain name. + example: example.com + teamId: + nullable: true + type: string boughtAt: nullable: true type: number - description: 'If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.' + description: If it was purchased through Vercel, the timestamp in milliseconds when it was purchased. example: 1613602938882 createdAt: type: number description: Timestamp in milliseconds when the domain was created in the registry. example: 1613602938882 - expiresAt: - nullable: true - type: number - description: Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel. - example: 1613602938882 id: type: string description: The unique identifier of the domain. example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 - name: - type: string - description: The domain name. - example: example.com - orderedAt: - type: number - description: Timestamp in milliseconds at which the domain was ordered. - example: 1613602938882 renew: type: boolean + enum: + - false + - true description: Indicates whether the domain is set to automatically renew. example: true serviceType: type: string enum: - - zeit.world - external - na - description: 'The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.' + - zeit.world + description: The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available. example: zeit.world transferredAt: nullable: true @@ -637,20 +639,25 @@ paths: example: 1613602938882 transferStartedAt: type: number - description: 'If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.' + description: If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated. example: 1613602938882 + userId: + type: string required: - - suffix - - verified - - nameservers - - intendedNameservers - - creator - boughtAt - createdAt + - creator + - echMode - expiresAt - id + - intendedNameservers - name + - nameservers - serviceType + - suffix + - teamId + - userId + - verified type: object required: - domain @@ -658,11 +665,16 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - name: domain description: The name of the domain. @@ -672,12 +684,20 @@ paths: description: The name of the domain. type: string example: example.com - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug /v5/domains: get: description: Retrieves a list of domains registered for the authenticated user or team. By default it returns the last 20 domains if no limit is provided. @@ -697,8 +717,15 @@ paths: domains: items: properties: + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. null if not bought with Vercel. verified: type: boolean + enum: + - false + - true description: If the domain has the ownership verified. example: true nameservers: @@ -736,55 +763,63 @@ paths: type: string isDomainReseller: type: boolean + enum: + - false + - true id: type: string required: - - username - email - id + - username type: object - description: 'An object containing information of the domain creator, including the user''s id, username, and email.' + description: An object containing information of the domain creator, including the user's id, username, and email. example: id: ZspSRT4ljIEEmMHgoDwKWDei username: vercel_user email: demo@example.com - renew: - type: boolean - description: Indicates whether the domain is set to automatically renew. - example: true + echMode: + type: string + enum: + - auto + - disabled + - enabled + description: Whether the domain is enrolled in Encrypted Client Hello. `auto` leaves the decision to Vercel, `enabled` always enrolls, and `disabled` never enrolls and opts out of automatic enrollment. + example: auto + name: + type: string + description: The domain name. + example: example.com + teamId: + nullable: true + type: string boughtAt: nullable: true type: number - description: 'If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.' + description: If it was purchased through Vercel, the timestamp in milliseconds when it was purchased. example: 1613602938882 createdAt: type: number description: Timestamp in milliseconds when the domain was created in the registry. example: 1613602938882 - expiresAt: - nullable: true - type: number - description: Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel. - example: 1613602938882 id: type: string description: The unique identifier of the domain. example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 - name: - type: string - description: The domain name. - example: example.com - orderedAt: - type: number - description: Timestamp in milliseconds at which the domain was ordered. - example: 1613602938882 + renew: + type: boolean + enum: + - false + - true + description: Indicates whether the domain is set to automatically renew. + example: true serviceType: type: string enum: - - zeit.world - external - na - description: 'The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.' + - zeit.world + description: The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available. example: zeit.world transferredAt: nullable: true @@ -793,19 +828,24 @@ paths: example: 1613602938882 transferStartedAt: type: number - description: 'If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.' + description: If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated. example: 1613602938882 + userId: + type: string required: - - verified - - nameservers - - intendedNameservers - - creator - boughtAt - createdAt + - creator + - echMode - expiresAt - id + - intendedNameservers - name + - nameservers - serviceType + - teamId + - userId + - verified type: object type: array pagination: @@ -817,11 +857,19 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '409': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - ls + - list parameters: - name: limit description: Maximum number of domains to list from a request. @@ -844,18 +892,25 @@ paths: description: Get domains created before this JavaScript timestamp. type: number example: 1612264332000 - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v7/domains: post: - description: This endpoint is used for adding a new apex domain name with Vercel for the authenticating user. Can also be used for initiating a domain transfer request from an external Registrar to Vercel. + description: 'This endpoint is used for adding a new apex domain name with Vercel for the authenticating user. Note: This endpoint is no longer used for initiating domain transfers from external registrars to Vercel. For this, please use the endpoint [Transfer-in a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/transfer-in-a-domain).' operationId: createOrTransferDomain security: - bearerToken: [] - summary: Register or transfer-in a new Domain + summary: Add an existing domain to the Vercel platform tags: - domains responses: @@ -867,8 +922,15 @@ paths: properties: domain: properties: + expiresAt: + nullable: true + type: number + description: Timestamp in milliseconds at which the domain is set to expire. null if not bought with Vercel. verified: type: boolean + enum: + - false + - true description: If the domain has the ownership verified. example: true nameservers: @@ -906,55 +968,63 @@ paths: type: string isDomainReseller: type: boolean + enum: + - false + - true id: type: string required: - - username - email - id + - username type: object - description: 'An object containing information of the domain creator, including the user''s id, username, and email.' + description: An object containing information of the domain creator, including the user's id, username, and email. example: id: ZspSRT4ljIEEmMHgoDwKWDei username: vercel_user email: demo@example.com - id: + echMode: + type: string + enum: + - auto + - disabled + - enabled + description: Whether the domain is enrolled in Encrypted Client Hello. `auto` leaves the decision to Vercel, `enabled` always enrolls, and `disabled` never enrolls and opts out of automatic enrollment. + example: auto + name: + type: string + description: The domain name. + example: example.com + teamId: + nullable: true type: string - description: The unique identifier of the domain. - example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 boughtAt: nullable: true type: number - description: 'If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.' + description: If it was purchased through Vercel, the timestamp in milliseconds when it was purchased. example: 1613602938882 createdAt: type: number description: Timestamp in milliseconds when the domain was created in the registry. example: 1613602938882 - expiresAt: - nullable: true - type: number - description: Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel. - example: 1613602938882 - name: + id: type: string - description: The domain name. - example: example.com - orderedAt: - type: number - description: Timestamp in milliseconds at which the domain was ordered. - example: 1613602938882 + description: The unique identifier of the domain. + example: EmTbe5CEJyTk2yVAHBUWy4A3sRusca3GCwRjTC1bpeVnt1 renew: type: boolean + enum: + - false + - true description: Indicates whether the domain is set to automatically renew. example: true serviceType: type: string enum: - - zeit.world - external - na - description: 'The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.' + - zeit.world + description: The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available. example: zeit.world transferredAt: nullable: true @@ -963,19 +1033,24 @@ paths: example: 1613602938882 transferStartedAt: type: number - description: 'If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.' + description: If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated. example: 1613602938882 + userId: + type: string required: - - verified - - nameservers - - intendedNameservers - - creator - - id - boughtAt - createdAt + - creator + - echMode - expiresAt + - id + - intendedNameservers - name + - nameservers - serviceType + - teamId + - userId + - verified type: object required: - domain @@ -983,99 +1058,68 @@ paths: '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' '409': + description: The domain is not allowed to be used + '410': description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + bodyArguments: + - name parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: properties: method: - description: The domain operation to perform. It can be either `add` or `transfer-in`. + description: The domain operation to perform. It can be either `add` or `move-in`. type: string - example: transfer-in - oneOf: - - additionalProperties: false - type: object - description: add - required: - - name - properties: - name: - description: The domain name you want to add. - type: string - example: example.com - cdnEnabled: - description: Whether the domain has the Vercel Edge Network enabled or not. - type: boolean - example: true - zone: - type: boolean - method: - description: The domain operation to perform. - type: string - example: add - - additionalProperties: false - type: object - description: move-in - required: - - method - - name - properties: - name: - description: The domain name you want to add. - type: string - example: example.com - method: - description: The domain operation to perform. - type: string - example: move-in - token: - description: The move-in token from Move Requested email. - type: string - example: fdhfr820ad#@FAdlj$$ - - additionalProperties: false - type: object - description: transfer-in - required: - - method - - name - properties: - name: - description: The domain name you want to add. - type: string - example: example.com - method: - description: The domain operation to perform. - type: string - example: transfer-in - authCode: - description: The authorization code assigned to the domain. - type: string - example: fdhfr820ad#@FAdlj$$ - expectedPrice: - description: The price you expect to be charged for the required 1 year renewal. - type: number - example: 8 - '/v3/domains/{domain}': + example: add + name: + description: The domain name you want to add. + type: string + example: example.com + cdnEnabled: + description: Whether the domain has the Vercel CDN enabled or not. + type: boolean + example: true + zone: + description: Whether to create a DNS zone on Vercel. Set `true` if using Vercel nameservers. + type: boolean + token: + description: The move-in token from Move Requested email. + type: string + example: fdhfr820ad#@FAdlj$$ + type: object + additionalProperties: false + description: add + required: + - name + - method + /v3/domains/{domain}: patch: - description: Update or move apex domain. + description: 'Update or move apex domain. Note: This endpoint is no longer used for updating auto-renew or nameservers. For this, please use the endpoints [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) and [Update nameservers for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-nameservers-for-a-domain).' operationId: patchDomain security: - bearerToken: [] @@ -1088,95 +1132,112 @@ paths: content: application/json: schema: - oneOf: - - properties: - moved: - type: boolean - required: - - moved - type: object - - properties: - moved: - type: boolean - token: - type: string - required: - - moved - - token - type: object - - properties: - renew: - type: boolean - customNameservers: - items: - type: string - type: array - zone: - type: boolean - type: object + properties: + moved: + type: boolean + enum: + - false + - true + token: + type: string + renew: + type: boolean + enum: + - false + - true + customNameservers: + items: + type: string + type: array + zone: + type: boolean + enum: + - false + - true + echMode: + type: string + enum: + - auto + - disabled + - enabled + required: + - moved + - token + - echMode + type: object '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' '409': description: '' + '410': + description: '' + '500': + description: '' parameters: - name: domain - description: The name of the domain. in: path - required: true schema: type: string - description: The name of the domain. - - description: The Team identifier or slug to perform the request on behalf of. + required: true + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: - oneOf: - - type: object - description: update - additionalProperties: false - properties: - op: - example: update - type: string - renew: - description: Specifies whether domain should be renewed. - type: boolean - customNameservers: - description: The custom nameservers for this project. - items: - type: string - maxItems: 4 - minItems: 0 - type: array - uniqueItems: true - zone: - description: Specifies whether this is a DNS zone that intends to use Vercel's nameservers. - type: boolean - - type: object - description: move-out - additionalProperties: false - properties: - op: - example: move-out - type: string - destination: - description: User or team to move domain to - type: string - '/v6/domains/{domain}': + type: object + description: update + additionalProperties: false + properties: + op: + example: update + type: string + renew: + description: This field is deprecated. Please use PATCH /v1/registrar/domains/{domainName}/auto-renew instead. + type: boolean + deprecated: true + customNameservers: + description: This field is deprecated. Please use PATCH /v1/registrar/domains/{domainName}/nameservers instead. + items: + type: string + maxItems: 4 + minItems: 0 + type: array + uniqueItems: true + deprecated: true + zone: + description: Specifies whether this is a DNS zone that intends to use Vercel's nameservers. + type: boolean + echMode: + description: Encrypted Client Hello enrollment. 'auto' leaves it to Vercel, 'disabled' never enrolls and opts out of automatic enrollment. + type: string + enum: + - auto + - disabled + destination: + description: User or team to move domain to + type: string + required: true + x-speakeasy-test: false + /v6/domains/{domain}: delete: description: Delete a previously registered domain name from Vercel. Deleting a domain will automatically remove any associated aliases. operationId: deleteDomain @@ -1200,13 +1261,18 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' '409': description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - name: domain description: The name of the domain. @@ -1216,9 +1282,201 @@ paths: description: The name of the domain. type: string example: example.com - - description: The Team identifier or slug to perform the request on behalf of. + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + x-stackQL-resources: + domain_config: + id: vercel.domains.domain_config + name: domain_config + title: Domain Config + methods: + get: + operation: + $ref: '#/paths/~1v6~1domains~1{domain}~1config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_config/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domain_verification: + id: vercel.domains.domain_verification + name: domain_verification + title: Domain Verification + methods: + get: + operation: + $ref: '#/paths/~1v9~1domains~1{domain}~1verification/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_verification/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domains: + id: vercel.domains.domains + name: domains + title: Domains + methods: + claim_ownership: + operation: + $ref: '#/paths/~1v9~1domains~1{domain}~1claim/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v5~1domains~1{domain}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domain + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v5~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domains + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v7~1domains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1domains~1{domain}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v6~1domains~1{domain}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get' + - $ref: '#/components/x-stackQL-resources/domains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/domains/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/domains/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/delete' + replace: [] + domain_project_domains: + id: vercel.domains.domain_project_domains + name: domain_project_domains + title: Domain Project Domains + methods: + list: + operation: + $ref: '#/paths/~1v1~1domains~1{domain}~1project-domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.projectDomains + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_project_domains/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/domains_registrar.yaml b/providers/src/vercel/v00.00.00000/services/domains_registrar.yaml new file mode 100644 index 00000000..60c558e6 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/domains_registrar.yaml @@ -0,0 +1,3578 @@ +openapi: 3.0.3 +info: + title: domains_registrar API + description: vercel domains_registrar API + version: 0.0.1 +paths: + /v1/registrar/tlds/supported: + get: + tags: + - domains-registrar + operationId: getSupportedTlds + parameters: + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: A list of the TLDs supported by Vercel. + content: + application/json: + schema: + $ref: '#/components/schemas/GetSupportedTldsResponse' + '400': + description: There was something wrong with the request + content: + application/json: + schema: + $ref: '#/components/schemas/HttpApiDecodeError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get a list of TLDs supported by Vercel + summary: Get supported TLDs + /v1/registrar/tlds/{tld}: + get: + tags: + - domains-registrar + operationId: getTld + parameters: + - name: tld + in: path + schema: + $ref: '#/components/schemas/TldName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - supportedLanguageCodes + properties: + supportedLanguageCodes: + type: object + properties: {} + additionalProperties: + type: string + description: The language codes that are supported for the TLD. The key is the language code, and the value is the name of the language. + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - tld_not_supported + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The TLD is not currently supported. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get the metadata for a specific TLD. + summary: Get TLD + /v1/registrar/tlds/{tld}/price: + get: + tags: + - domains-registrar + operationId: getTldPrice + parameters: + - name: tld + in: path + schema: + $ref: '#/components/schemas/TldName' + required: true + - name: years + in: query + schema: + type: string + description: The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used. + required: false + description: The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used. + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - years + - purchasePrice + - renewalPrice + - transferPrice + properties: + years: + type: number + description: The number of years the returned price is for. + purchasePrice: + type: number + minimum: 0.01 + renewalPrice: + type: number + minimum: 0.01 + transferPrice: + type: number + minimum: 0.01 + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - tld_not_supported + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The TLD is not currently supported. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get price data for a specific TLD. This only reflects base prices for the given TLD. Premium domains may have different prices. Use the [Get price data for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-price-data-for-a-domain) endpoint to get the price data for a specific domain. + summary: Get TLD price data + /v1/registrar/domains/{domain}/availability: + get: + tags: + - domains-registrar + operationId: getDomainAvailability + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - available + properties: + available: + type: boolean + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + $ref: '#/components/schemas/HttpApiDecodeError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '404': + description: NotFound + content: + application/json: + schema: + $ref: '#/components/schemas/NotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get availability for a specific domain. If the domain is available, it can be purchased using the [Buy a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/buy-a-domain) endpoint or the [Buy multiple domains](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/buy-multiple-domains) endpoint. + summary: Get availability for a domain + /v1/registrar/domains/{domain}/price: + get: + tags: + - domains-registrar + operationId: getDomainPrice + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: years + in: query + schema: + type: string + description: The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used. + required: false + description: The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used. + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - years + - purchasePrice + - renewalPrice + - transferPrice + properties: + years: + type: number + purchasePrice: + type: number + minimum: 0.01 + renewalPrice: + type: number + minimum: 0.01 + transferPrice: + type: number + minimum: 0.01 + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bad_request + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain name (excluding the TLD) is too short. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get price data for a specific domain + summary: Get price data for a domain + /v1/registrar/domains/availability: + post: + tags: + - domains-registrar + operationId: getBulkAvailability + parameters: + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - results + properties: + results: + type: array + items: + type: object + required: + - domain + - available + properties: + domain: + $ref: '#/components/schemas/DomainName' + available: + type: boolean + additionalProperties: false + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + $ref: '#/components/schemas/HttpApiDecodeError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get availability for multiple domains. If the domains are available, they can be purchased using the [Buy a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/buy-a-domain) endpoint or the [Buy multiple domains](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/buy-multiple-domains) endpoint. + summary: Get availability for multiple domains + requestBody: + content: + application/json: + schema: + type: object + required: + - domains + properties: + domains: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/DomainName' + description: an array of at most 50 item(s) + title: maxItems(50) + maxItems: 50 + additionalProperties: false + required: true + /v1/registrar/domains/{domain}/auth-code: + get: + tags: + - domains-registrar + operationId: getDomainAuthCode + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - authCode + properties: + authCode: + type: string + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_not_registered + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain is not registered with Vercel. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: The domain was not found in our system. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainNotFound' + '409': + description: The domain cannot be transfered out until the specified date. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainCannotBeTransferedOutUntil' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get the auth code for a domain. This is required to transfer a domain from Vercel to another registrar. + summary: Get the auth code for a domain + /v1/registrar/domains/{domain}/buy: + post: + tags: + - domains-registrar + operationId: buySingleDomain + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - orderId + - _links + properties: + orderId: + $ref: '#/components/schemas/OrderId' + _links: + type: object + additionalProperties: + type: object + required: + - href + - method + properties: + href: + type: string + method: + type: string + enum: + - GET + - POST + - PUT + - DELETE + - PATCH + additionalProperties: false + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_too_short + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain name (excluding the TLD) is too short. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Buy a domain + summary: Buy a domain + requestBody: + content: + application/json: + schema: + type: object + required: + - autoRenew + - years + - expectedPrice + - contactInformation + properties: + autoRenew: + type: boolean + description: Whether the domain should be auto-renewed before it expires. This can be configured later through the Vercel Dashboard or the [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) endpoint. + years: + type: number + description: The number of years to purchase the domain for. + expectedPrice: + type: number + minimum: 0.01 + contactInformation: + type: object + required: + - firstName + - lastName + - email + - phone + - address1 + - city + - state + - zip + - country + properties: + firstName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + lastName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + email: + $ref: '#/components/schemas/EmailAddress' + phone: + $ref: '#/components/schemas/E164PhoneNumber' + address1: + $ref: '#/components/schemas/NonEmptyTrimmedString' + address2: + $ref: '#/components/schemas/NonEmptyTrimmedString' + city: + $ref: '#/components/schemas/NonEmptyTrimmedString' + state: + $ref: '#/components/schemas/NonEmptyTrimmedString' + zip: + $ref: '#/components/schemas/NonEmptyTrimmedString' + country: + $ref: '#/components/schemas/CountryCode' + companyName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + fax: + $ref: '#/components/schemas/E164PhoneNumber' + additional: + type: object + properties: {} + additionalProperties: false + description: The contact information for the domain. Some TLDs require additional contact information. Use the [Get contact info schema](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-contact-info-schema) endpoint to retrieve the required fields. + languageCode: + type: string + description: The language code for the domain. For punycode domains, this must be provided. The list of supported language codes for a TLD can be retrieved from the [Get TLD](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-tld) endpoint. + additionalProperties: false + required: true + /v1/registrar/domains/buy: + post: + tags: + - domains-registrar + operationId: buyDomains + parameters: + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - orderId + - _links + properties: + orderId: + $ref: '#/components/schemas/OrderId' + _links: + type: object + additionalProperties: + type: object + required: + - href + - method + properties: + href: + type: string + method: + type: string + enum: + - GET + - POST + - PUT + - DELETE + - PATCH + additionalProperties: false + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_too_short + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain name (excluding the TLD) is too short. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Buy multiple domains at once + summary: Buy multiple domains + requestBody: + content: + application/json: + schema: + type: object + required: + - domains + - contactInformation + properties: + domains: + type: array + minItems: 1 + items: + type: object + required: + - domainName + - autoRenew + - years + - expectedPrice + properties: + domainName: + $ref: '#/components/schemas/DomainName' + autoRenew: + type: boolean + description: Whether the domain should be auto-renewed before it expires. This can be configured later through the Vercel Dashboard or the [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) endpoint. + years: + type: number + description: The number of years to purchase the domain for. + expectedPrice: + type: number + minimum: 0.01 + languageCode: + type: string + description: The language code for the domain. For punycode domains, this must be provided. The list of supported language codes for a TLD can be retrieved from the [Get TLD](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-tld) endpoint. + additionalProperties: false + contactInformation: + type: object + required: + - firstName + - lastName + - email + - phone + - address1 + - city + - state + - zip + - country + properties: + firstName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + lastName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + email: + $ref: '#/components/schemas/EmailAddress' + phone: + $ref: '#/components/schemas/E164PhoneNumber' + address1: + $ref: '#/components/schemas/NonEmptyTrimmedString' + address2: + $ref: '#/components/schemas/NonEmptyTrimmedString' + city: + $ref: '#/components/schemas/NonEmptyTrimmedString' + state: + $ref: '#/components/schemas/NonEmptyTrimmedString' + zip: + $ref: '#/components/schemas/NonEmptyTrimmedString' + country: + $ref: '#/components/schemas/CountryCode' + companyName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + fax: + $ref: '#/components/schemas/E164PhoneNumber' + additional: + type: object + properties: {} + additionalProperties: false + description: The contact information for the domain. Some TLDs require additional contact information. Use the [Get contact info schema](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-contact-info-schema) endpoint to retrieve the required fields. + additionalProperties: false + required: true + /v1/registrar/domains/{domain}/transfer: + post: + tags: + - domains-registrar + operationId: transferInDomain + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - orderId + - _links + properties: + orderId: + $ref: '#/components/schemas/OrderId' + _links: + type: object + additionalProperties: + type: object + required: + - href + - method + properties: + href: + type: string + method: + type: string + enum: + - GET + - POST + - PUT + - DELETE + - PATCH + additionalProperties: false + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bad_request + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain is already owned by another team or user. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Transfer a domain in from another registrar + summary: Transfer-in a domain + requestBody: + content: + application/json: + schema: + type: object + required: + - authCode + - autoRenew + - years + - expectedPrice + - contactInformation + properties: + authCode: + type: string + description: The auth code for the domain. You must obtain this code from the losing registrar. + autoRenew: + type: boolean + description: Whether the domain should be auto-renewed before it expires. This can be configured later through the Vercel Dashboard or the [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) endpoint. + years: + type: number + description: The number of years to renew the domain for once it is transferred in. This must be a valid number of transfer years for the TLD. + expectedPrice: + type: number + minimum: 0.01 + contactInformation: + type: object + required: + - firstName + - lastName + - email + - phone + - address1 + - city + - state + - zip + - country + properties: + firstName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + lastName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + email: + $ref: '#/components/schemas/EmailAddress' + phone: + $ref: '#/components/schemas/E164PhoneNumber' + address1: + $ref: '#/components/schemas/NonEmptyTrimmedString' + address2: + $ref: '#/components/schemas/NonEmptyTrimmedString' + city: + $ref: '#/components/schemas/NonEmptyTrimmedString' + state: + $ref: '#/components/schemas/NonEmptyTrimmedString' + zip: + $ref: '#/components/schemas/NonEmptyTrimmedString' + country: + $ref: '#/components/schemas/CountryCode' + companyName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + fax: + $ref: '#/components/schemas/E164PhoneNumber' + additionalProperties: false + additionalProperties: false + required: true + get: + tags: + - domains-registrar + operationId: getDomainTransferIn + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - status + properties: + status: + type: string + enum: + - canceled + - canceled_pending_refund + - completed + - created + - failed + - pending + - pending_insert + - pending_new_auth_code + - pending_transfer + - pending_unlock + - pending_registry_unlock + - rejected + - submitting_transfer + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + $ref: '#/components/schemas/HttpApiDecodeError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: NotFound + content: + application/json: + schema: + $ref: '#/components/schemas/NotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get the transfer status for a domain + summary: Get a domain's transfer status + /v1/registrar/domains/{domain}/renew: + post: + tags: + - domains-registrar + operationId: renewDomain + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - orderId + - _links + properties: + orderId: + $ref: '#/components/schemas/OrderId' + _links: + type: object + additionalProperties: + type: object + required: + - href + - method + properties: + href: + type: string + method: + type: string + enum: + - GET + - POST + - PUT + - DELETE + - PATCH + additionalProperties: false + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bad_request + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain name (excluding the TLD) is too short. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: The domain was not found in our system. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainNotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Renew a domain + summary: Renew a domain + requestBody: + content: + application/json: + schema: + type: object + required: + - years + - expectedPrice + properties: + years: + type: number + description: The number of years to renew the domain for. + expectedPrice: + type: number + minimum: 0.01 + contactInformation: + type: object + required: + - firstName + - lastName + - email + - phone + - address1 + - city + - state + - zip + - country + properties: + firstName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + lastName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + email: + $ref: '#/components/schemas/EmailAddress' + phone: + $ref: '#/components/schemas/E164PhoneNumber' + address1: + $ref: '#/components/schemas/NonEmptyTrimmedString' + address2: + $ref: '#/components/schemas/NonEmptyTrimmedString' + city: + $ref: '#/components/schemas/NonEmptyTrimmedString' + state: + $ref: '#/components/schemas/NonEmptyTrimmedString' + zip: + $ref: '#/components/schemas/NonEmptyTrimmedString' + country: + $ref: '#/components/schemas/CountryCode' + companyName: + $ref: '#/components/schemas/NonEmptyTrimmedString' + fax: + $ref: '#/components/schemas/E164PhoneNumber' + additionalProperties: false + additionalProperties: false + required: true + /v1/registrar/domains/{domain}/auto-renew: + patch: + tags: + - domains-registrar + operationId: updateDomainAutoRenew + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '204': + description: Success + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_already_renewing + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain is already renewing. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: The domain was not found in our system. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainNotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Update the auto-renew setting for a domain + summary: Update auto-renew for a domain + requestBody: + content: + application/json: + schema: + type: object + required: + - autoRenew + properties: + autoRenew: + type: boolean + additionalProperties: false + required: true + /v1/registrar/domains/{domain}/nameservers: + patch: + tags: + - domains-registrar + operationId: updateDomainNameservers + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '204': + description: Success + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_not_registered + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain is not registered with Vercel. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: The domain was not found in our system. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainNotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Update the nameservers for a domain. Pass an empty array to use Vercel's default nameservers. + summary: Update nameservers for a domain + requestBody: + content: + application/json: + schema: + type: object + required: + - nameservers + properties: + nameservers: + type: array + items: + $ref: '#/components/schemas/Nameserver' + additionalProperties: false + required: true + /v1/registrar/domains/{domain}/contact-verification: + get: + tags: + - domains-registrar + operationId: getDomainContactVerification + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: The registrant contact has been verified. + content: + application/json: + schema: + type: object + required: + - verified + - verifyBy + - email + properties: + verified: + type: boolean + enum: + - true + verifyBy: + $ref: '#/components/schemas/DateFromString' + email: + type: string + additionalProperties: false + description: The registrant contact has been verified. + title: Verified + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bought_too_recently + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The domain was bought too recently to determine verification status. + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: The domain was not found in our system. + content: + application/json: + schema: + $ref: '#/components/schemas/DomainNotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get the registrant contact verification status for a domain. Use this after purchasing a domain to determine whether the contact has been verified. Note that a bought_too_recently error will be returned if the domain was bought less than 30 minutes before the request. + summary: Get contact verification status for a domain + /v1/registrar/domains/{domain}/contact-info/schema: + get: + tags: + - domains-registrar + operationId: getContactInfoSchema + parameters: + - name: domain + in: path + schema: + $ref: '#/components/schemas/DomainName' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + properties: {} + '400': + description: There was something wrong with the request + content: + application/json: + schema: + type: object + required: + - status + - code + - message + - issues + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bad_request + message: + type: string + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + additionalProperties: false + description: The request did not match the expected schema + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + $ref: '#/components/schemas/NotAuthorizedForScope' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Some TLDs require additional contact information. Use this endpoint to get the schema for the tld-specific contact information for a domain. + summary: Get contact info schema + /v1/registrar/orders/{order_id}: + get: + tags: + - domains-registrar + operationId: getOrder + parameters: + - name: order_id + in: path + schema: + $ref: '#/components/schemas/OrderId' + required: true + - name: teamId + in: query + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: false + security: + - bearerToken: [] + responses: + '200': + description: Success + content: + application/json: + schema: + type: object + required: + - orderId + - domains + - status + properties: + orderId: + $ref: '#/components/schemas/OrderId' + domains: + type: array + items: + anyOf: + - type: object + required: + - purchaseType + - autoRenew + - years + - domainName + - status + - price + properties: + purchaseType: + type: string + enum: + - purchase + autoRenew: + type: boolean + years: + type: number + description: The number of years the domain is being purchased for. + domainName: + $ref: '#/components/schemas/DomainName' + status: + type: string + enum: + - pending + - completed + - failed + - refunded + - refund-failed + price: + type: number + minimum: 0.01 + error: + anyOf: + - anyOf: + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - unsupported-language-code + details: + type: object + required: + - detectedLanguageCode + properties: + detectedLanguageCode: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - incorrect-language-code + details: + type: object + required: + - detectedLanguageCode + properties: + detectedLanguageCode: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - client-transfer-prohibited + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - incorrect-auth-code + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - claims-notice-required + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - cannot-transfer-in-until + details: + type: object + required: + - numDaysUntilTransferrable + properties: + numDaysUntilTransferrable: + type: number + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - account-transfer-required + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - price-change + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - unavailable-legal + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - invalid-contact + details: + type: object + properties: + invalidField: + type: string + enum: + - firstName + - lastName + - email + - phone + - address1 + - address2 + - city + - state + - zip + - country + - companyName + - fax + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + details: + title: unknown + additionalProperties: false + additionalProperties: false + - type: object + required: + - purchaseType + - years + - domainName + - status + - price + properties: + purchaseType: + type: string + enum: + - renewal + years: + type: number + description: The number of years the domain is being renewed for. + domainName: + $ref: '#/components/schemas/DomainName' + status: + type: string + enum: + - pending + - completed + - failed + - refunded + - refund-failed + price: + type: number + minimum: 0.01 + error: + anyOf: + - anyOf: + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - unsupported-language-code + details: + type: object + required: + - detectedLanguageCode + properties: + detectedLanguageCode: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - incorrect-language-code + details: + type: object + required: + - detectedLanguageCode + properties: + detectedLanguageCode: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - client-transfer-prohibited + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - incorrect-auth-code + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - claims-notice-required + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - cannot-transfer-in-until + details: + type: object + required: + - numDaysUntilTransferrable + properties: + numDaysUntilTransferrable: + type: number + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - account-transfer-required + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - price-change + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - unavailable-legal + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - invalid-contact + details: + type: object + properties: + invalidField: + type: string + enum: + - firstName + - lastName + - email + - phone + - address1 + - address2 + - city + - state + - zip + - country + - companyName + - fax + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + details: + title: unknown + additionalProperties: false + additionalProperties: false + - type: object + required: + - purchaseType + - autoRenew + - years + - domainName + - status + - price + properties: + purchaseType: + type: string + enum: + - transfer + autoRenew: + type: boolean + years: + type: number + description: The number of years the domain is being transferred for. + domainName: + $ref: '#/components/schemas/DomainName' + status: + type: string + enum: + - pending + - completed + - failed + - refunded + - refund-failed + price: + type: number + minimum: 0.01 + error: + anyOf: + - anyOf: + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - unsupported-language-code + details: + type: object + required: + - detectedLanguageCode + properties: + detectedLanguageCode: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - incorrect-language-code + details: + type: object + required: + - detectedLanguageCode + properties: + detectedLanguageCode: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - client-transfer-prohibited + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - incorrect-auth-code + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - claims-notice-required + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - cannot-transfer-in-until + details: + type: object + required: + - numDaysUntilTransferrable + properties: + numDaysUntilTransferrable: + type: number + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - account-transfer-required + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - price-change + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - unavailable-legal + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - invalid-contact + details: + type: object + properties: + invalidField: + type: string + enum: + - firstName + - lastName + - email + - phone + - address1 + - address2 + - city + - state + - zip + - country + - companyName + - fax + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + details: + title: unknown + additionalProperties: false + additionalProperties: false + status: + type: string + enum: + - draft + - purchasing + - completed + - failed + error: + anyOf: + - type: object + required: + - code + properties: + code: + type: string + enum: + - payment-failed + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - tld-outage + details: + type: object + required: + - tlds + properties: + tlds: + type: array + items: + type: object + required: + - tldName + - endsAt + properties: + tldName: + type: string + endsAt: + type: string + additionalProperties: false + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - price-mismatch + details: + type: object + required: + - expectedPrice + properties: + expectedPrice: + type: number + actualPrice: + type: number + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - unexpected-error + additionalProperties: false + - type: object + required: + - code + - details + properties: + code: + type: string + enum: + - claims-required + details: + type: object + required: + - message + - domainNames + properties: + message: + type: string + domainNames: + type: array + items: + type: string + additionalProperties: false + additionalProperties: false + - type: object + required: + - code + properties: + code: + type: string + enum: + - domain-mismatch + additionalProperties: false + type: object + required: + - code + properties: + code: + type: string + details: + title: unknown + additionalProperties: false + additionalProperties: false + '400': + description: There was something wrong with the request + content: + application/json: + schema: + $ref: '#/components/schemas/HttpApiDecodeError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/Unauthorized' + '403': + description: NotAuthorizedForScope + content: + application/json: + schema: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + '404': + description: NotFound + content: + application/json: + schema: + $ref: '#/components/schemas/NotFound' + '429': + description: TooManyRequests + content: + application/json: + schema: + $ref: '#/components/schemas/TooManyRequests' + '500': + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/InternalServerError' + description: Get information about a domain order by its ID + summary: Get a domain order +components: + schemas: + TldName: + type: string + description: A valid TLD name + HttpApiDecodeError: + type: object + required: + - issues + - message + properties: + issues: + type: array + items: + $ref: '#/components/schemas/Issue' + message: + type: string + additionalProperties: false + description: The request did not match the expected schema + Unauthorized: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 401 + code: + type: string + enum: + - unauthorized + message: + type: string + reason: + type: string + additionalProperties: false + NotAuthorizedForScope: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - not_authorized_for_scope + message: + type: string + additionalProperties: false + TooManyRequests: + type: object + required: + - status + - code + - message + - retryAfter + - limit + properties: + status: + type: number + enum: + - 429 + code: + type: string + enum: + - too_many_requests + message: + type: string + retryAfter: + type: object + required: + - value + - str + properties: + value: + type: number + str: + type: string + additionalProperties: false + limit: + type: object + required: + - total + - remaining + - reset + properties: + total: + type: number + remaining: + type: number + reset: + type: number + additionalProperties: false + additionalProperties: false + InternalServerError: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 500 + code: + type: string + enum: + - internal_server_error + message: + type: string + additionalProperties: false + TldNotSupported: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - tld_not_supported + message: + type: string + additionalProperties: false + description: The TLD is not currently supported. + DomainName: + type: string + description: A valid domain name + NotFound: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 404 + code: + type: string + enum: + - not_found + message: + type: string + additionalProperties: false + BadRequest: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bad_request + message: + type: string + additionalProperties: false + DomainTooShort: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_too_short + message: + type: string + additionalProperties: false + description: The domain name (excluding the TLD) is too short. + DomainNotRegistered: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_not_registered + message: + type: string + additionalProperties: false + description: The domain is not registered with Vercel. + Forbidden: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 403 + code: + type: string + enum: + - forbidden + message: + type: string + additionalProperties: false + DomainNotFound: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 404 + code: + type: string + enum: + - domain_not_found + message: + type: string + additionalProperties: false + description: The domain was not found in our system. + DomainCannotBeTransferedOutUntil: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 409 + code: + type: string + enum: + - domain_cannot_be_transfered_out_until + message: + type: string + additionalProperties: false + description: The domain cannot be transfered out until the specified date. + OrderId: + type: string + description: A valid order ID + OrderTooExpensive: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - order_too_expensive + message: + type: string + additionalProperties: false + description: The total price of the order is too high. + InvalidAdditionalContactInfo: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - invalid_additional_contact_info + message: + type: string + additionalProperties: false + description: Additional contact information provided for the TLD is invalid. + AdditionalContactInfoRequired: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - additional_contact_info_required + message: + type: string + additionalProperties: false + description: Additional contact information is required for the TLD. + ExpectedPriceMismatch: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - expected_price_mismatch + message: + type: string + additionalProperties: false + description: The expected price passed does not match the actual price. + DomainNotAvailable: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_not_available + message: + type: string + additionalProperties: false + description: The domain is not available. + LanguageCodeRequired: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - language_code_required + message: + type: string + additionalProperties: false + description: A language code is required for punycode domains. + NonEmptyTrimmedString: + type: string + description: a non empty string + title: nonEmptyString + pattern: ^\S[\s\S]*\S$|^\S$|^$ + minLength: 1 + EmailAddress: + type: string + description: A valid RFC 5322 email address + title: nonEmptyString + minLength: 1 + E164PhoneNumber: + type: string + description: A valid E.164 phone number + title: nonEmptyString + minLength: 1 + pattern: ^(?=(?:\D*\d){8,15}$)\+[1-9]\d{0,2}\.?\d+$ + CountryCode: + type: string + description: A valid ISO 3166-1 alpha-2 country code + TooManyDomains: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - too_many_domains + message: + type: string + additionalProperties: false + description: The number of domains in the order is too high. + DuplicateDomains: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - duplicate_domains + message: + type: string + additionalProperties: false + description: Duplicate domains were provided. + DomainAlreadyOwned: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_already_owned + message: + type: string + additionalProperties: false + description: The domain is already owned by another team or user. + DNSSECEnabled: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - dnssec_enabled + message: + type: string + additionalProperties: false + description: The operation cannot be completed because DNSSEC is enabled for the domain. + DomainAlreadyRenewing: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_already_renewing + message: + type: string + additionalProperties: false + description: The domain is already renewing. + DomainNotRenewable: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - domain_not_renewable + message: + type: string + additionalProperties: false + description: The domain is not renewable. + Nameserver: + type: string + description: A valid nameserver + ContactVerified: + type: object + required: + - verified + properties: + verified: + type: boolean + enum: + - true + additionalProperties: false + description: The registrant contact has been verified. + title: Verified + ContactPendingVerification: + type: object + required: + - verified + - verifyBy + - email + properties: + verified: + type: boolean + enum: + - false + verifyBy: + $ref: '#/components/schemas/DateFromString' + email: + type: string + additionalProperties: false + description: The registrant contact has not yet been verified. The contact must be verified by `verifyBy`, and a verification email is sent to `email`. + title: Pending verification + BoughtTooRecently: + type: object + required: + - status + - code + - message + properties: + status: + type: number + enum: + - 400 + code: + type: string + enum: + - bought_too_recently + message: + type: string + additionalProperties: false + description: The domain was bought too recently to determine verification status. + Issue: + type: object + required: + - path + - message + properties: + path: + type: array + items: + $ref: '#/components/schemas/PropertyKey' + description: The path to the property where the issue occurred + message: + type: string + description: A descriptive message explaining the issue + additionalProperties: false + description: Represents an error encountered while parsing a value to match the schema + DateFromString: + type: string + description: a string to be decoded into a Date + PropertyKey: + type: string + required: + - _tag + - key + properties: + _tag: + type: string + enum: + - symbol + key: + type: string + additionalProperties: false + description: an object to be decoded into a globally shared symbol + GetSupportedTldsResponse: + type: object + properties: + supported_tlds: + type: array + items: + $ref: '#/components/schemas/TldName' + StackqlTextResponse: + type: object + description: 'Wrapper for non-JSON response bodies (jsonl, ndjson, streamed json, octet-stream): one row carrying the raw body text.' + properties: + items: + type: array + items: + type: object + properties: + contents: + type: string + description: Raw response body. + x-stackQL-resources: + tlds: + id: vercel.domains_registrar.tlds + name: tlds + title: Tlds + methods: + list: + operation: + $ref: '#/paths/~1v1~1registrar~1tlds~1supported/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.supported_tlds + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetSupportedTldsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"supported_tlds\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1registrar~1tlds~1{tld}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tlds/methods/get' + - $ref: '#/components/x-stackQL-resources/tlds/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + tld_prices: + id: vercel.domains_registrar.tld_prices + name: tld_prices + title: Tld Prices + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1tlds~1{tld}~1price/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tld_prices/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domain_availability: + id: vercel.domains_registrar.domain_availability + name: domain_availability + title: Domain Availability + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1availability/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1availability/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_availability/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domain_prices: + id: vercel.domains_registrar.domain_prices + name: domain_prices + title: Domain Prices + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1price/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_prices/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domain_auth_codes: + id: vercel.domains_registrar.domain_auth_codes + name: domain_auth_codes + title: Domain Auth Codes + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1auth-code/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_auth_codes/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + orders: + id: vercel.domains_registrar.orders + name: orders + title: Orders + methods: + buy_domain: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1buy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + buy_domains: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1buy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + transfer_in_domain: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1transfer/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + renew_domain: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1renew/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1registrar~1orders~1{order_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/orders/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domain_transfers: + id: vercel.domains_registrar.domain_transfers + name: domain_transfers + title: Domain Transfers + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1transfer/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_transfers/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domains: + id: vercel.domains_registrar.domains + name: domains + title: Domains + methods: + update_auto_renew: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1auto-renew/patch' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update_nameservers: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1nameservers/patch' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + domain_contact_verification: + id: vercel.domains_registrar.domain_contact_verification + name: domain_contact_verification + title: Domain Contact Verification + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1contact-verification/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domain_contact_verification/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + contact_info_schema: + id: vercel.domains_registrar.contact_info_schema + name: contact_info_schema + title: Contact Info Schema + methods: + get: + operation: + $ref: '#/paths/~1v1~1registrar~1domains~1{domain}~1contact-info~1schema/get' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/contact_info_schema/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/drains.yaml b/providers/src/vercel/v00.00.00000/services/drains.yaml new file mode 100644 index 00000000..b58c2cb1 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/drains.yaml @@ -0,0 +1,2408 @@ +openapi: 3.0.3 +info: + title: drains API + description: vercel drains API + version: 0.0.1 +paths: + /v1/drains: + post: + description: Create a new Drain with the provided configuration. + operationId: createDrain + security: + - bearerToken: [] + summary: Create a new Drain + tags: + - drains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + updatedAt: + type: number + projectIds: + items: + type: string + type: array + name: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + status: + type: string + enum: + - disabled + - enabled + - errored + firstErrorTimestamp: + type: number + disabledAt: + type: number + disabledBy: + type: string + disabledReason: + type: string + enum: + - account-plan-downgrade + - disabled-by-admin + - disabled-by-owner + - feature-not-available + - limits-exceeded + schemas: + properties: + log: + type: string + description: (opaque JSON object) + trace: + type: string + description: (opaque JSON object) + analytics: + type: string + description: (opaque JSON object) + speed_insights: + type: string + description: (opaque JSON object) + ai_gateway: + type: string + description: (opaque JSON object) + audit_log: + type: string + description: (opaque JSON object) + connect: + type: string + description: (opaque JSON object) + type: object + delivery: + oneOf: + - properties: + type: + type: string + enum: + - http + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - gzip + - none + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - otlphttp + endpoint: + properties: + traces: + type: string + required: + - traces + type: object + encoding: + type: string + enum: + - json + - proto + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - clickhouse + endpoint: + type: string + table: + type: string + required: + - endpoint + - table + - type + type: object + - properties: + type: + type: string + enum: + - s3 + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - none + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + objectAcl: + type: string + enum: + - authenticated-read + - aws-exec-read + - bucket-owner-full-control + - bucket-owner-read + - private + - public-read + - public-read-write + required: + - compression + - encoding + - endpoint + - fileStructure + - region + - roleArn + - type + type: object + - properties: + type: + type: string + enum: + - internal + target: + type: string + enum: + - vercel-otel-traces-db + required: + - target + - type + type: object + sampling: + items: + properties: + type: + type: string + enum: + - head_sampling + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + required: + - rate + - type + type: object + type: array + source: + oneOf: + - properties: + kind: + type: string + enum: + - self-served + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - integration + resourceId: + type: string + externalResourceId: + type: string + integrationId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + filterV2: + properties: + version: + type: string + enum: + - v2 + filter: + oneOf: + - properties: + type: + type: string + enum: + - basic + project: + properties: + ids: + items: + type: string + type: array + type: object + log: + properties: + sources: + items: + type: string + enum: + - build + - edge + - external + - firewall + - lambda + - redirect + - static + type: array + legacy_excludeCachedStaticAssetLogs: + type: boolean + enum: + - false + - true + type: object + deployment: + properties: + environments: + items: + type: string + enum: + - preview + - production + type: array + type: object + required: + - type + type: object + - properties: + type: + type: string + enum: + - odata + text: + type: string + required: + - text + - type + type: object + required: + - filter + - version + type: object + integrationIcon: + type: string + integrationConfigurationUri: + type: string + integrationWebsite: + type: string + projectAccess: + oneOf: + - properties: + access: + type: string + enum: + - all + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + type: object + - properties: + access: + type: string + enum: + - some + projectIds: + items: + type: string + type: array + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + - projectIds + type: object + required: + - createdAt + - delivery + - id + - name + - ownerId + - schemas + - source + - updatedAt + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - name + - projects + - schemas + properties: + name: + type: string + projects: + type: string + enum: + - some + - all + projectIds: + type: array + items: + type: string + filter: + type: object + additionalProperties: false + required: + - version + - filter + properties: + version: + type: string + filter: + oneOf: + - type: object + additionalProperties: false + required: + - type + properties: + type: + type: string + project: + type: object + additionalProperties: false + properties: + ids: + type: array + items: + type: string + log: + type: object + additionalProperties: false + properties: + sources: + type: array + items: + type: string + enum: + - build + - edge + - lambda + - static + - external + - firewall + - redirect + deployment: + type: object + additionalProperties: false + properties: + environments: + type: array + items: + type: string + enum: + - production + - preview + - type: object + additionalProperties: false + required: + - type + - text + properties: + type: + type: string + text: + type: string + schemas: + type: object + additionalProperties: + type: object + required: + - version + properties: + version: + type: string + delivery: + type: object + additionalProperties: false + required: + - type + - endpoint + - encoding + - headers + - compression + - fileStructure + - roleArn + - region + properties: + type: + type: string + endpoint: + type: string + compression: + type: string + enum: + - gzip + - none + encoding: + type: string + enum: + - json + - ndjson + headers: + type: object + additionalProperties: + type: string + secret: + type: string + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + default: AES256 + objectAcl: + type: string + enum: + - private + - bucket-owner-read + - bucket-owner-full-control + sampling: + type: array + maxItems: 10 + items: + type: object + additionalProperties: false + required: + - type + - rate + properties: + type: + type: string + rate: + type: number + minimum: 0 + maximum: 1 + description: Sampling rate from 0 to 1 (e.g., 0.1 for 10%) + env: + type: string + enum: + - production + - preview + description: Environment to apply sampling to + requestPath: + type: string + description: Request path prefix to apply the sampling rule to + transforms: + type: array + items: + type: object + required: + - id + properties: + id: + type: string + source: + type: object + oneOf: + - properties: + kind: + type: string + default: integration + externalResourceId: + type: string + additionalProperties: false + required: + - externalResourceId + type: object + - properties: + kind: + type: string + default: integration + resourceId: + type: string + additionalProperties: false + required: + - resourceId + type: object + - properties: + kind: + type: string + default: integration + additionalProperties: false + required: + - kind + type: object + properties: + kind: + type: string + default: self-served + additionalProperties: false + required: + - kind + get: + description: Allows to retrieve the list of Drains of the authenticated team. + operationId: getDrains + security: + - bearerToken: [] + summary: Retrieve a list of all Drains + tags: + - drains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + drains: + items: + properties: + id: + type: string + createdAt: + type: number + updatedAt: + type: number + projectIds: + items: + type: string + type: array + name: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + status: + type: string + enum: + - disabled + - enabled + - errored + firstErrorTimestamp: + type: number + disabledAt: + type: number + disabledBy: + type: string + disabledReason: + type: string + enum: + - account-plan-downgrade + - disabled-by-admin + - disabled-by-owner + - feature-not-available + - limits-exceeded + schemas: + properties: + log: + type: string + description: (opaque JSON object) + trace: + type: string + description: (opaque JSON object) + analytics: + type: string + description: (opaque JSON object) + speed_insights: + type: string + description: (opaque JSON object) + ai_gateway: + type: string + description: (opaque JSON object) + audit_log: + type: string + description: (opaque JSON object) + connect: + type: string + description: (opaque JSON object) + type: object + delivery: + oneOf: + - properties: + type: + type: string + enum: + - http + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - gzip + - none + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - otlphttp + endpoint: + properties: + traces: + type: string + required: + - traces + type: object + encoding: + type: string + enum: + - json + - proto + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - clickhouse + endpoint: + type: string + table: + type: string + required: + - endpoint + - table + - type + type: object + - properties: + type: + type: string + enum: + - s3 + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - none + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + objectAcl: + type: string + enum: + - authenticated-read + - aws-exec-read + - bucket-owner-full-control + - bucket-owner-read + - private + - public-read + - public-read-write + required: + - compression + - encoding + - endpoint + - fileStructure + - region + - roleArn + - type + type: object + - properties: + type: + type: string + enum: + - internal + target: + type: string + enum: + - vercel-otel-traces-db + required: + - target + - type + type: object + sampling: + items: + properties: + type: + type: string + enum: + - head_sampling + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + required: + - rate + - type + type: object + type: array + source: + oneOf: + - properties: + kind: + type: string + enum: + - self-served + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - integration + resourceId: + type: string + externalResourceId: + type: string + integrationId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + filterV2: + properties: + version: + type: string + enum: + - v2 + filter: + oneOf: + - properties: + type: + type: string + enum: + - basic + project: + properties: + ids: + items: + type: string + type: array + type: object + log: + properties: + sources: + items: + type: string + enum: + - build + - edge + - external + - firewall + - lambda + - redirect + - static + type: array + legacy_excludeCachedStaticAssetLogs: + type: boolean + enum: + - false + - true + type: object + deployment: + properties: + environments: + items: + type: string + enum: + - preview + - production + type: array + type: object + required: + - type + type: object + - properties: + type: + type: string + enum: + - odata + text: + type: string + required: + - text + - type + type: object + required: + - filter + - version + type: object + integrationIcon: + type: string + integrationConfigurationUri: + type: string + integrationWebsite: + type: string + projectAccess: + oneOf: + - properties: + access: + type: string + enum: + - all + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + type: object + - properties: + access: + type: string + enum: + - some + projectIds: + items: + type: string + type: array + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + - projectIds + type: object + required: + - createdAt + - delivery + - id + - name + - ownerId + - schemas + - source + - updatedAt + type: object + type: array + required: + - drains + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + in: query + schema: + type: string + - name: includeMetadata + in: query + schema: + type: boolean + default: false + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/drains/{id}: + delete: + description: Delete a specific Drain by passing the drain id in the URL. + operationId: deleteDrain + security: + - bearerToken: [] + summary: Delete a drain + tags: + - drains + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + get: + description: Get the information for a specific Drain by passing the drain id in the URL. + operationId: getDrain + security: + - bearerToken: [] + summary: Find a Drain by id + tags: + - drains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + updatedAt: + type: number + projectIds: + items: + type: string + type: array + name: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + status: + type: string + enum: + - disabled + - enabled + - errored + firstErrorTimestamp: + type: number + disabledAt: + type: number + disabledBy: + type: string + disabledReason: + type: string + enum: + - account-plan-downgrade + - disabled-by-admin + - disabled-by-owner + - feature-not-available + - limits-exceeded + schemas: + properties: + log: + type: string + description: (opaque JSON object) + trace: + type: string + description: (opaque JSON object) + analytics: + type: string + description: (opaque JSON object) + speed_insights: + type: string + description: (opaque JSON object) + ai_gateway: + type: string + description: (opaque JSON object) + audit_log: + type: string + description: (opaque JSON object) + connect: + type: string + description: (opaque JSON object) + type: object + delivery: + oneOf: + - properties: + type: + type: string + enum: + - http + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - gzip + - none + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - otlphttp + endpoint: + properties: + traces: + type: string + required: + - traces + type: object + encoding: + type: string + enum: + - json + - proto + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - clickhouse + endpoint: + type: string + table: + type: string + required: + - endpoint + - table + - type + type: object + - properties: + type: + type: string + enum: + - s3 + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - none + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + objectAcl: + type: string + enum: + - authenticated-read + - aws-exec-read + - bucket-owner-full-control + - bucket-owner-read + - private + - public-read + - public-read-write + required: + - compression + - encoding + - endpoint + - fileStructure + - region + - roleArn + - type + type: object + - properties: + type: + type: string + enum: + - internal + target: + type: string + enum: + - vercel-otel-traces-db + required: + - target + - type + type: object + sampling: + items: + properties: + type: + type: string + enum: + - head_sampling + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + required: + - rate + - type + type: object + type: array + source: + oneOf: + - properties: + kind: + type: string + enum: + - self-served + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - integration + resourceId: + type: string + externalResourceId: + type: string + integrationId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + filterV2: + properties: + version: + type: string + enum: + - v2 + filter: + oneOf: + - properties: + type: + type: string + enum: + - basic + project: + properties: + ids: + items: + type: string + type: array + type: object + log: + properties: + sources: + items: + type: string + enum: + - build + - edge + - external + - firewall + - lambda + - redirect + - static + type: array + legacy_excludeCachedStaticAssetLogs: + type: boolean + enum: + - false + - true + type: object + deployment: + properties: + environments: + items: + type: string + enum: + - preview + - production + type: array + type: object + required: + - type + type: object + - properties: + type: + type: string + enum: + - odata + text: + type: string + required: + - text + - type + type: object + required: + - filter + - version + type: object + integrationIcon: + type: string + integrationConfigurationUri: + type: string + integrationWebsite: + type: string + projectAccess: + oneOf: + - properties: + access: + type: string + enum: + - all + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + type: object + - properties: + access: + type: string + enum: + - some + projectIds: + items: + type: string + type: array + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + - projectIds + type: object + required: + - createdAt + - delivery + - id + - name + - ownerId + - schemas + - source + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update the configuration of an existing drain. + operationId: updateDrain + security: + - bearerToken: [] + summary: Update an existing Drain + tags: + - drains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + createdAt: + type: number + updatedAt: + type: number + projectIds: + items: + type: string + type: array + name: + type: string + teamId: + nullable: true + type: string + ownerId: + type: string + status: + type: string + enum: + - disabled + - enabled + - errored + firstErrorTimestamp: + type: number + disabledAt: + type: number + disabledBy: + type: string + disabledReason: + type: string + enum: + - account-plan-downgrade + - disabled-by-admin + - disabled-by-owner + - feature-not-available + - limits-exceeded + schemas: + properties: + log: + type: string + description: (opaque JSON object) + trace: + type: string + description: (opaque JSON object) + analytics: + type: string + description: (opaque JSON object) + speed_insights: + type: string + description: (opaque JSON object) + ai_gateway: + type: string + description: (opaque JSON object) + audit_log: + type: string + description: (opaque JSON object) + connect: + type: string + description: (opaque JSON object) + type: object + delivery: + oneOf: + - properties: + type: + type: string + enum: + - http + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - gzip + - none + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - otlphttp + endpoint: + properties: + traces: + type: string + required: + - traces + type: object + encoding: + type: string + enum: + - json + - proto + headers: + additionalProperties: + type: string + type: object + secret: + oneOf: + - type: string + - properties: + kind: + type: string + enum: + - INTEGRATION_SECRET + required: + - kind + type: object + required: + - encoding + - endpoint + - headers + - type + type: object + - properties: + type: + type: string + enum: + - clickhouse + endpoint: + type: string + table: + type: string + required: + - endpoint + - table + - type + type: object + - properties: + type: + type: string + enum: + - s3 + endpoint: + type: string + encoding: + type: string + enum: + - json + - ndjson + compression: + type: string + enum: + - none + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + objectAcl: + type: string + enum: + - authenticated-read + - aws-exec-read + - bucket-owner-full-control + - bucket-owner-read + - private + - public-read + - public-read-write + required: + - compression + - encoding + - endpoint + - fileStructure + - region + - roleArn + - type + type: object + - properties: + type: + type: string + enum: + - internal + target: + type: string + enum: + - vercel-otel-traces-db + required: + - target + - type + type: object + sampling: + items: + properties: + type: + type: string + enum: + - head_sampling + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + required: + - rate + - type + type: object + type: array + source: + oneOf: + - properties: + kind: + type: string + enum: + - self-served + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - integration + resourceId: + type: string + externalResourceId: + type: string + integrationId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + filterV2: + properties: + version: + type: string + enum: + - v2 + filter: + oneOf: + - properties: + type: + type: string + enum: + - basic + project: + properties: + ids: + items: + type: string + type: array + type: object + log: + properties: + sources: + items: + type: string + enum: + - build + - edge + - external + - firewall + - lambda + - redirect + - static + type: array + legacy_excludeCachedStaticAssetLogs: + type: boolean + enum: + - false + - true + type: object + deployment: + properties: + environments: + items: + type: string + enum: + - preview + - production + type: array + type: object + required: + - type + type: object + - properties: + type: + type: string + enum: + - odata + text: + type: string + required: + - text + - type + type: object + required: + - filter + - version + type: object + integrationIcon: + type: string + integrationConfigurationUri: + type: string + integrationWebsite: + type: string + projectAccess: + oneOf: + - properties: + access: + type: string + enum: + - all + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + type: object + - properties: + access: + type: string + enum: + - some + projectIds: + items: + type: string + type: array + managedBy: + type: string + enum: + - drain + - integration + required: + - access + - managedBy + - projectIds + type: object + required: + - createdAt + - delivery + - id + - name + - ownerId + - schemas + - source + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + projects: + type: string + enum: + - some + - all + projectIds: + type: array + items: + type: string + nullable: true + filter: + type: string + additionalProperties: false + required: + - version + - filter + properties: + version: + type: string + filter: + oneOf: + - type: object + additionalProperties: false + required: + - type + properties: + type: + type: string + project: + type: object + additionalProperties: false + properties: + ids: + type: array + items: + type: string + log: + type: object + additionalProperties: false + properties: + sources: + type: array + items: + type: string + enum: + - build + - edge + - lambda + - static + - external + - firewall + - redirect + deployment: + type: object + additionalProperties: false + properties: + environments: + type: array + items: + type: string + enum: + - production + - preview + - type: object + additionalProperties: false + required: + - type + - text + properties: + type: + type: string + text: + type: string + schemas: + type: object + additionalProperties: + type: object + required: + - version + properties: + version: + type: string + delivery: + type: object + additionalProperties: false + required: + - type + - endpoint + - encoding + - headers + - compression + - fileStructure + - roleArn + - region + properties: + type: + type: string + endpoint: + type: string + compression: + type: string + enum: + - gzip + - none + encoding: + type: string + enum: + - json + - ndjson + headers: + type: object + additionalProperties: + type: string + secret: + type: string + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + default: AES256 + objectAcl: + type: string + enum: + - private + - bucket-owner-read + - bucket-owner-full-control + sampling: + type: array + maxItems: 10 + items: + type: object + additionalProperties: false + required: + - type + - rate + properties: + type: + type: string + rate: + type: number + minimum: 0 + maximum: 1 + description: Sampling rate from 0 to 1 (e.g., 0.1 for 10%) + env: + type: string + enum: + - production + - preview + description: Environment to apply sampling to + requestPath: + type: string + description: Request path prefix to apply the sampling rule to + nullable: true + transforms: + type: array + items: + type: object + required: + - id + properties: + id: + type: string + nullable: true + status: + type: string + enum: + - enabled + - disabled + source: + type: object + oneOf: + - properties: + kind: + type: string + default: integration + externalResourceId: + type: string + additionalProperties: false + required: + - externalResourceId + type: object + - properties: + kind: + type: string + default: integration + resourceId: + type: string + additionalProperties: false + required: + - resourceId + type: object + - properties: + kind: + type: string + default: integration + additionalProperties: false + required: + - kind + type: object + properties: + kind: + type: string + default: self-served + additionalProperties: false + required: + - kind + /v1/drains/test: + post: + description: Validate the delivery configuration of a Drain using sample events. + operationId: testDrain + security: + - bearerToken: [] + summary: Validate Drain delivery configuration + tags: + - drains + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + status: + type: string + error: + type: string + endpoint: + type: string + required: + - endpoint + - error + - status + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - schemas + - delivery + properties: + schemas: + type: object + additionalProperties: + type: object + required: + - version + properties: + version: + type: string + delivery: + type: object + additionalProperties: false + required: + - type + - endpoint + - encoding + - headers + - compression + - fileStructure + - roleArn + - region + properties: + type: + type: string + endpoint: + type: string + compression: + type: string + enum: + - gzip + - none + encoding: + type: string + enum: + - json + - ndjson + headers: + type: object + additionalProperties: + type: string + secret: + type: string + fileStructure: + type: string + enum: + - hive + roleArn: + type: string + region: + type: string + serverSideEncryption: + type: string + enum: + - AES256 + - aws:kms + - aws:kms:dsse + default: AES256 + objectAcl: + type: string + enum: + - private + - bucket-owner-read + - bucket-owner-full-control +components: + x-stackQL-resources: + drains: + id: vercel.drains.drains + name: drains + title: Drains + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1drains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1drains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.drains + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1drains~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1drains~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1drains~1{id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + test: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1drains~1test/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/drains/methods/get' + - $ref: '#/components/x-stackQL-resources/drains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/drains/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/drains/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/drains/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/edge_cache.yaml b/providers/src/vercel/v00.00.00000/services/edge_cache.yaml new file mode 100644 index 00000000..3f801536 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/edge_cache.yaml @@ -0,0 +1,319 @@ +openapi: 3.0.3 +info: + title: edge_cache API + description: vercel edge_cache API + version: 0.0.1 +paths: + /v1/edge-cache/invalidate-by-tags: + post: + description: Marks a cache tag as stale, causing cache entries associated with that tag to be revalidated in the background on the next request. + operationId: invalidateByTags + security: + - bearerToken: [] + summary: Invalidate by tag + tags: + - edge-cache + responses: + '200': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectIdOrName + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - tags + properties: + tags: + items: + maxLength: 256 + type: string + maxItems: 16 + minItems: 1 + type: array + maxLength: 8196 + target: + enum: + - production + - preview + type: string + /v1/edge-cache/dangerously-delete-by-tags: + post: + description: Marks a cache tag as deleted, causing cache entries associated with that tag to be revalidated in the foreground on the next request. Use this method with caution because one tag can be associated with many paths and deleting the cache can cause many concurrent requests to the origin leading to cache stampede problem. This method is for advanced use cases and is not recommended; prefer using `invalidateByTag` instead. + operationId: dangerouslyDeleteByTags + security: + - bearerToken: [] + summary: Dangerously delete by tag + tags: + - edge-cache + responses: + '200': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectIdOrName + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - tags + properties: + revalidationDeadlineSeconds: + minimum: 0 + maximum: 31536000 + type: integer + tags: + items: + maxLength: 256 + type: string + maxItems: 16 + minItems: 1 + type: array + maxLength: 8196 + target: + enum: + - production + - preview + type: string + /v1/edge-cache/invalidate-by-src-images: + post: + description: Marks a source image as stale, causing its corresponding transformed images to be revalidated in the background on the next request. + operationId: invalidateBySrcImages + security: + - bearerToken: [] + summary: Invalidate by source image + tags: + - edge-cache + responses: + '200': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectIdOrName + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - srcImages + properties: + srcImages: + items: + type: string + maxItems: 8 + minItems: 1 + type: array + /v1/edge-cache/dangerously-delete-by-src-images: + post: + description: Marks a source image as deleted, causing cache entries associated with that source image to be revalidated in the foreground on the next request. Use this method with caution because one source image can be associated with many paths and deleting the cache can cause many concurrent requests to the origin leading to cache stampede problem. This method is for advanced use cases and is not recommended; prefer using `invalidateBySrcImage` instead. + operationId: dangerouslyDeleteBySrcImages + security: + - bearerToken: [] + summary: Dangerously delete by source image + tags: + - edge-cache + responses: + '200': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectIdOrName + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - srcImages + properties: + revalidationDeadlineSeconds: + minimum: 0 + maximum: 31536000 + type: integer + srcImages: + items: + type: string + maxItems: 8 + minItems: 1 + type: array +components: + x-stackQL-resources: + cache: + id: vercel.edge_cache.cache + name: cache + title: Cache + methods: + invalidate_by_tags: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1edge-cache~1invalidate-by-tags/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_tags: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1edge-cache~1dangerously-delete-by-tags/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + invalidate_by_src_images: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1edge-cache~1invalidate-by-src-images/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_by_src_images: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1edge-cache~1dangerously-delete-by-src-images/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/edge_config.yaml b/providers/src/vercel/v00.00.00000/services/edge_config.yaml index 247b7856..9c8a7c23 100644 --- a/providers/src/vercel/v00.00.00000/services/edge_config.yaml +++ b/providers/src/vercel/v00.00.00000/services/edge_config.yaml @@ -1,291 +1,54 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: edge_config API + description: vercel edge_config API version: 0.0.1 - title: Vercel API - edge_config - description: edge-config -components: - schemas: - EdgeConfigItem: - properties: - key: - type: string - value: - $ref: '#/components/schemas/EdgeConfigItemValue' - edgeConfigId: - type: string - createdAt: - type: number - updatedAt: - type: number - required: - - key - - value - - edgeConfigId - - createdAt - - updatedAt - type: object - description: The EdgeConfig. - EdgeConfigItemValue: - nullable: true - oneOf: - - type: string - - type: number - - type: boolean - - additionalProperties: - $ref: '#/components/schemas/EdgeConfigItemValue' - type: object - - items: - $ref: '#/components/schemas/EdgeConfigItemValue' - type: array - EdgeConfigToken: - properties: - token: - type: string - label: - type: string - id: - type: string - description: 'This is not the token itself, but rather an id to identify the token by' - edgeConfigId: - type: string - createdAt: - type: number - required: - - token - - label - - id - - edgeConfigId - - createdAt - type: object - description: The EdgeConfig. - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - edge_config: - id: vercel.edge_config.edge_config - name: edge_config - title: Edge Config - methods: - get_edge_configs: - operation: - $ref: '#/paths/~1v1~1edge-config/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_edge_config: - operation: - $ref: '#/paths/~1v1~1edge-config/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_edge_config: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_edge_config: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}/put' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_edge_config: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/edge_config/methods/get_edge_config' - - $ref: '#/components/x-stackQL-resources/edge_config/methods/get_edge_configs' - insert: - - $ref: '#/components/x-stackQL-resources/edge_config/methods/create_edge_config' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/edge_config/methods/delete_edge_config' - items: - id: vercel.edge_config.items - name: items - title: Items - methods: - get_edge_config_items: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1items/get' - response: - mediaType: application/json - openAPIDocKey: '200' - patcht_edge_config_items: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1items/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/items/methods/get_edge_config_items' - insert: [] - update: [] - delete: [] - item: - id: vercel.edge_config.item - name: item - title: Item - methods: - get_edge_config_item: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1item~1{edgeConfigItemKey}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/item/methods/get_edge_config_item' - insert: [] - update: [] - delete: [] - tokens: - id: vercel.edge_config.tokens - name: tokens - title: Tokens - methods: - get_edge_config_tokens: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1tokens/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_edge_config_tokens: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1tokens/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/tokens/methods/get_edge_config_tokens' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/tokens/methods/delete_edge_config_tokens' - token: - id: vercel.edge_config.token - name: token - title: Token - methods: - get_edge_config_token: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1token~1{token}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_edge_config_token: - operation: - $ref: '#/paths/~1v1~1edge-config~1{edgeConfigId}~1token/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/token/methods/get_edge_config_token' - insert: - - $ref: '#/components/x-stackQL-resources/token/methods/create_edge_config_token' - update: [] - delete: [] paths: - /v1/edge-config: + /v1/global-config: get: - description: Returns all Edge Configs. + description: Returns all Global Configs. operationId: getEdgeConfigs security: - bearerToken: [] - summary: Get Edge Configs + summary: Get Global Configs tags: - - edge-config + - global-config responses: '200': - description: List of all edge configs. + description: List of all global configs. content: application/json: schema: - properties: - id: - type: string - createdAt: - type: number - ownerId: - type: string - slug: - type: string - description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). - updatedAt: - type: number - digest: - type: string - transfer: - properties: - fromAccountId: - type: string - startedAt: - type: number - doneAt: - nullable: true - type: number - required: - - fromAccountId - - startedAt - - doneAt - type: object - description: Keeps track of the current state of the Edge Config while it gets transferred. - sizeInBytes: - type: number - itemCount: - type: number - required: - - sizeInBytes - - itemCount - type: object - description: List of all edge configs. + $ref: '#/components/schemas/GetEdgeConfigsResponse' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug post: - description: Creates an Edge Config. + description: Creates a Global Config. operationId: createEdgeConfig security: - bearerToken: [] - summary: Create an Edge Config + summary: Create a Global Config tags: - - edge-config + - global-config responses: '201': description: '' @@ -293,19 +56,40 @@ paths: application/json: schema: properties: - createdAt: - type: number - updatedAt: - type: number id: type: string - slug: + createdAt: + type: number + createdBy: type: string - description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + description: The ID of the user who created the Global Config, optional because it is not always set. ownerId: type: string + slug: + type: string + description: Name for the Global Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + updatedAt: + type: number digest: type: string + purpose: + properties: + type: + type: string + enum: + - flags + projectId: + type: string + resourceId: + type: string + required: + - projectId + - type + - resourceId + type: object + deletedAt: + nullable: true + type: number transfer: properties: fromAccountId: @@ -316,37 +100,49 @@ paths: nullable: true type: number required: + - doneAt - fromAccountId - startedAt - - doneAt type: object - description: Keeps track of the current state of the Edge Config while it gets transferred. + description: Keeps track of the current state of the Global Config while it gets transferred. + schema: + type: string + description: (opaque JSON object) + syncedToDynamoAt: + type: number + description: Timestamp of when the Global Config was synced to DynamoDB initially. It is only set when syncing the entire Global Config, not when updating. sizeInBytes: type: number itemCount: type: number required: - - sizeInBytes + - createdAt + - digest + - id - itemCount + - ownerId + - sizeInBytes + - slug + - updatedAt type: object - description: An Edge Config + description: A Global Config '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l requestBody: content: application/json: @@ -356,60 +152,62 @@ paths: - slug properties: slug: - maxLength: 32 - pattern: '^[\\w-]+$' + maxLength: 64 + pattern: ^[\w-]+$ type: string items: type: object - propertyNames: - maxLength: 256 - pattern: '^[\\w-]+$' - type: string - additionalProperties: - oneOf: - - oneOf: - - type: string - - type: number - - type: boolean - - type: 'null' - - type: object - - type: array - items: - oneOf: - - type: string - - type: number - - type: boolean - - type: 'null' - - type: object - '/v1/edge-config/{edgeConfigId}': + additionalProperties: {} + /v1/global-config/{edge_config_id}: get: - description: Returns an Edge Config. + description: Returns a Global Config. operationId: getEdgeConfig security: - bearerToken: [] - summary: Get an Edge Config + summary: Get a Global Config tags: - - edge-config + - global-config responses: '200': - description: The EdgeConfig. + description: The Global Config. content: application/json: schema: properties: - createdAt: - type: number - updatedAt: - type: number id: type: string - slug: + createdAt: + type: number + createdBy: type: string - description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + description: The ID of the user who created the Global Config, optional because it is not always set. ownerId: type: string + slug: + type: string + description: Name for the Global Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + updatedAt: + type: number digest: type: string + purpose: + properties: + type: + type: string + enum: + - flags + projectId: + type: string + resourceId: + type: string + required: + - projectId + - type + - resourceId + type: object + deletedAt: + nullable: true + type: number transfer: properties: fromAccountId: @@ -420,50 +218,68 @@ paths: nullable: true type: number required: + - doneAt - fromAccountId - startedAt - - doneAt type: object - description: Keeps track of the current state of the Edge Config while it gets transferred. + description: Keeps track of the current state of the Global Config while it gets transferred. + schema: + type: string + description: (opaque JSON object) + syncedToDynamoAt: + type: number + description: Timestamp of when the Global Config was synced to DynamoDB initially. It is only set when syncing the entire Global Config, not when updating. sizeInBytes: type: number itemCount: type: number required: - - sizeInBytes + - createdAt + - digest + - id - itemCount + - ownerId + - sizeInBytes + - slug + - updatedAt type: object - description: The EdgeConfig. + description: The Global Config. '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug put: - description: Updates an Edge Config. + description: Updates a Global Config. operationId: updateEdgeConfig security: - bearerToken: [] - summary: Update an Edge Config + summary: Update a Global Config tags: - - edge-config + - global-config responses: '200': description: '' @@ -471,19 +287,40 @@ paths: application/json: schema: properties: - createdAt: - type: number - updatedAt: - type: number id: type: string - slug: + createdAt: + type: number + createdBy: type: string - description: Name for the Edge Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + description: The ID of the user who created the Global Config, optional because it is not always set. ownerId: type: string + slug: + type: string + description: Name for the Global Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + updatedAt: + type: number digest: type: string + purpose: + properties: + type: + type: string + enum: + - flags + projectId: + type: string + resourceId: + type: string + required: + - projectId + - type + - resourceId + type: object + deletedAt: + nullable: true + type: number transfer: properties: fromAccountId: @@ -494,48 +331,60 @@ paths: nullable: true type: number required: + - doneAt - fromAccountId - startedAt - - doneAt type: object - description: Keeps track of the current state of the Edge Config while it gets transferred. + description: Keeps track of the current state of the Global Config while it gets transferred. + schema: + type: string + description: (opaque JSON object) + syncedToDynamoAt: + type: number + description: Timestamp of when the Global Config was synced to DynamoDB initially. It is only set when syncing the entire Global Config, not when updating. sizeInBytes: type: number itemCount: type: number required: - - sizeInBytes + - createdAt + - digest + - id - itemCount + - ownerId + - sizeInBytes + - slug + - updatedAt type: object - description: An Edge Config + description: A Global Config '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' + '409': + description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l requestBody: content: application/json: @@ -545,88 +394,103 @@ paths: - slug properties: slug: - maxLength: 32 - pattern: '^[\\w-]+$' + maxLength: 64 + pattern: ^[\w-]+$ type: string delete: - description: Delete an Edge Config by id. + description: Delete a Global Config by id. operationId: deleteEdgeConfig security: - bearerToken: [] - summary: Delete an Edge Config + summary: Delete a Global Config tags: - - edge-config + - global-config responses: '204': description: '' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '409': + description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v1/edge-config/{edgeConfigId}/items': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/global-config/{edge_config_id}/items: get: - description: Returns all items of an Edge Config. + description: Returns all items of a Global Config. operationId: getEdgeConfigItems security: - bearerToken: [] - summary: Get Edge Config items + summary: Get Global Config items tags: - - edge-config + - global-config responses: '200': - description: The EdgeConfig. + description: List of all Global Config items. content: application/json: schema: - $ref: '#/components/schemas/EdgeConfigItem' + $ref: '#/components/schemas/GetEdgeConfigItemsResponse' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + pattern: ^ecfg_ + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug patch: - description: Update multiple Edge Config Items in batch. - operationId: patchtEdgeConfigItems + description: Update multiple Global Config Items in batch. + operationId: patchEdgeConfigItems security: - bearerToken: [] - summary: Update Edge Config items in batch + summary: Update Global Config items in batch tags: - - edge-config + - global-config responses: '200': description: '' @@ -644,31 +508,38 @@ paths: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' '409': description: '' + '410': + description: '' + '412': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + pattern: ^ecfg_ + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -683,138 +554,318 @@ paths: items: oneOf: - type: object - required: - - operation - - key - - value properties: operation: - oneOf: - - const: create - - const: update - - const: upsert + enum: + - create + - update + - upsert + - delete key: maxLength: 256 - pattern: '^[\\w-]+$' + pattern: ^[\w-]+$ type: string - value: + value: {} + description: oneOf: - - oneOf: - - type: string - - type: number - - type: boolean - - type: 'null' - - type: object - - type: array - items: - oneOf: - - type: string - - type: number - - type: boolean - - type: 'null' - - type: object - - type: object - required: - - operation - - key - properties: - operation: - const: delete - key: - maxLength: 256 - pattern: '^[\\w-]+$' - type: string - '/v1/edge-config/{edgeConfigId}/item/{edgeConfigItemKey}': + - type: string + maxLength: 512 + - type: string + anyOf: + - properties: + operation: {} + required: + - operation + - key + - value + type: object + - properties: + operation: + enum: + - update + - upsert + required: + - operation + - key + - value + type: object + - properties: + operation: + enum: + - update + - upsert + required: + - operation + - key + - description + type: object + - properties: + operation: {} + required: + - operation + - key + not: + required: + - value + - description + type: object + /v1/global-config/{edge_config_id}/schema: get: - description: Returns a specific Edge Config Item. - operationId: getEdgeConfigItem + description: Returns the schema of a Global Config. + operationId: getEdgeConfigSchema security: - bearerToken: [] - summary: Get an Edge Config item + summary: Get Global Config schema tags: - - edge-config + - global-config responses: '200': - description: The EdgeConfig. + description: The Global Config. content: application/json: schema: - $ref: '#/components/schemas/EdgeConfigItem' + nullable: true + type: string + description: The Global Config. (opaque JSON object) '400': description: One of the provided values in the request query is invalid. '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: edge_config_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Update a Global Config's schema. + operationId: patchEdgeConfigSchema + security: + - bearerToken: [] + summary: Update Global Config schema + tags: + - global-config + responses: + '200': description: '' + content: + application/json: + schema: + nullable: true + type: string + description: The JSON schema uploaded by the user (opaque JSON object) + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' + '409': + description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - name: edgeConfigItemKey - description: Edge config id item key. + - name: dryRun + in: query + required: false + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - definition + properties: + definition: {} + delete: + description: Deletes the schema of existing Global Config. + operationId: deleteEdgeConfigSchema + security: + - bearerToken: [] + summary: Delete a Global Config's schema + tags: + - global-config + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id item key. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/global-config/{edge_config_id}/item/{edge_config_item_key}: + get: + description: Returns a specific Global Config Item. + operationId: getEdgeConfigItem + security: + - bearerToken: [] + summary: Get a Global Config item + tags: + - global-config + responses: + '200': + description: The Global Config. + content: + application/json: + schema: + $ref: '#/components/schemas/GlobalConfigItem' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: edge_config_id + in: path + required: true + schema: + type: string + pattern: ^ecfg_ + - name: edge_config_item_key + in: path required: true schema: type: string - '/v1/edge-config/{edgeConfigId}/tokens': + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/global-config/{edge_config_id}/tokens: get: - description: Returns all tokens of an Edge Config. + description: Returns all tokens of a Global Config. operationId: getEdgeConfigTokens security: - bearerToken: [] - summary: Get all tokens of an Edge Config + summary: Get all tokens of a Global Config tags: - - edge-config + - global-config responses: '200': - description: The EdgeConfig. + description: The Global Config. content: application/json: schema: - $ref: '#/components/schemas/EdgeConfigToken' + $ref: '#/components/schemas/GetEdgeConfigTokensResponse' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug delete: - description: Deletes one or more tokens of an existing Edge Config. + description: Deletes one or more tokens of an existing Global Config. operationId: deleteEdgeConfigTokens security: - bearerToken: [] - summary: Delete one or more Edge Config tokens + summary: Delete one or more Global Config tokens tags: - - edge-config + - global-config responses: '204': description: '' @@ -823,94 +874,114 @@ paths: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' + '409': + description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + pattern: ^ecfg_ + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: type: object additionalProperties: false - required: - - tokens properties: tokens: type: array + minItems: 1 items: type: string - '/v1/edge-config/{edgeConfigId}/token/{token}': + ids: + type: array + minItems: 1 + items: + type: string + required: + - tokens + - ids + /v1/global-config/{edge_config_id}/token/{token}: get: - description: Return meta data about an Edge Config token. + description: Return meta data about a Global Config token. operationId: getEdgeConfigToken security: - bearerToken: [] - summary: Get Edge Config token meta data + summary: Get Global Config token meta data tags: - - edge-config + - global-config responses: '200': - description: The EdgeConfig. + description: The Global Config. content: application/json: schema: - $ref: '#/components/schemas/EdgeConfigToken' + $ref: '#/components/schemas/GlobalConfigToken' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - name: token in: path required: true schema: type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v1/edge-config/{edgeConfigId}/token': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/global-config/{edge_config_id}/token: post: - description: Adds a token to an existing Edge Config. + description: Adds a token to an existing Global Config. operationId: createEdgeConfigToken security: - bearerToken: [] - summary: Create an Edge Config token + summary: Create a Global Config token tags: - - edge-config + - global-config responses: '201': description: '' @@ -923,37 +994,44 @@ paths: id: type: string required: - - token - id + - token type: object '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The account is missing a payment so payment method must be updated '403': description: You do not have permission to access this resource. '404': description: '' + '409': + description: '' + '410': + description: '' parameters: - - name: edgeConfigId - description: Edge config id. + - name: edge_config_id in: path required: true schema: type: string - description: Edge config id. - - description: The Team identifier or slug to perform the request on behalf of. + pattern: ^ecfg_ + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -966,3 +1044,748 @@ paths: label: maxLength: 52 type: string + /v1/global-config/{edge_config_id}/backups/{edge_config_backup_version_id}: + get: + description: Retrieves a specific version of a Global Config from backup storage. + operationId: getEdgeConfigBackup + security: + - bearerToken: [] + summary: Get Global Config backup + tags: + - global-config + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + lastModified: + type: number + backup: + properties: + slug: + type: string + description: Name for the Global Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + updatedAt: + type: number + items: + additionalProperties: + properties: + createdAt: + type: number + updatedAt: + type: number + value: + $ref: '#/components/schemas/GlobalConfigItemValue' + description: + type: string + required: + - createdAt + - updatedAt + - value + type: object + type: object + digest: + type: string + required: + - digest + - items + - slug + - updatedAt + type: object + metadata: + properties: + updatedAt: + type: string + updatedBy: + type: string + itemsCount: + type: number + itemsBytes: + type: number + type: object + user: + properties: + id: + type: string + username: + type: string + email: + type: string + name: + type: string + avatar: + type: string + required: + - email + - id + - username + type: object + required: + - backup + - id + - lastModified + - metadata + - user + type: object + description: The object the API responds with when requesting a Global Config backup + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: edge_config_id + in: path + required: true + schema: + type: string + - name: edge_config_backup_version_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/global-config/{edge_config_id}/backups/{edge_config_backup_version_id}/restore: + post: + description: Restores a Global Config backup. + operationId: restoreEdgeConfigBackup + security: + - bearerToken: [] + summary: Restore Global Config backup + tags: + - global-config + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + status: + type: string + enum: + - ok + restoredFrom: + type: string + previousDigest: + type: string + digest: + type: string + required: + - digest + - previousDigest + - restoredFrom + - status + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '412': + description: '' + parameters: + - name: edge_config_id + in: path + required: true + schema: + type: string + pattern: ^ecfg_ + - name: edge_config_backup_version_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/global-config/{edge_config_id}/backups: + get: + description: Returns backups of a Global Config. + operationId: getEdgeConfigBackups + security: + - bearerToken: [] + summary: Get Global Config backups + tags: + - global-config + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + backups: + items: + properties: + metadata: + properties: + updatedAt: + type: string + updatedBy: + type: string + itemsCount: + type: number + itemsBytes: + type: number + type: object + id: + type: string + lastModified: + type: number + required: + - id + - lastModified + type: object + type: array + pagination: + properties: + hasNext: + type: boolean + enum: + - false + - true + next: + type: string + required: + - hasNext + type: object + required: + - backups + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: edge_config_id + in: path + required: true + schema: + type: string + - name: next + in: query + required: false + schema: + type: string + - name: limit + in: query + required: false + schema: + type: number + minimum: 0 + maximum: 50 + - name: metadata + in: query + required: false + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + GlobalConfigItem: + properties: + key: + type: string + value: + $ref: '#/components/schemas/GlobalConfigItemValue' + description: + type: string + edgeConfigId: + type: string + createdAt: + type: number + updatedAt: + type: number + required: + - createdAt + - edgeConfigId + - key + - updatedAt + - value + type: object + description: The Global Config. + GlobalConfigToken: + properties: + partialToken: + type: string + description: A partially-masked representation of the token, safe to display in UIs. The format is the first 3 characters of the token followed by a fixed 8-character `*` mask (e.g. `550e8400-e29b-41d4-a716-446655440000` → `550********`). The mask length is intentionally fixed (not proportional to the original token length) to avoid leaking the token length. Prefer this field for display/reference in UIs and logs. The full, plaintext token is only disclosed once at creation time via `POST /v1/edge-config/:edgeConfigId/token`; use `id` to reference a token in subsequent calls (e.g. when deleting). + label: + type: string + id: + type: string + description: This is not the token itself, but rather an id to identify the token by + edgeConfigId: + type: string + createdAt: + type: number + token: + type: string + description: 'Deprecated: the full, plaintext token. - Returned once by `POST /v1/edge-config/:edgeConfigId/token` (create). - Still returned by `GET /v1/edge-config/:edgeConfigId/token/:token` (detail) for backwards compatibility, but scheduled for removal. - **Not** returned by `GET /v1/edge-config/:edgeConfigId/tokens` (list); use `partialToken` for display and `id` to reference tokens. Do not rely on this field being present on read operations. Prefer `partialToken` for display and `id` for references.' + required: + - createdAt + - edgeConfigId + - id + - label + - partialToken + type: object + description: The Global Config. + GlobalConfigItemValue: + nullable: true + type: string + additionalProperties: + $ref: '#/components/schemas/GlobalConfigItemValue' + items: + $ref: '#/components/schemas/GlobalConfigItemValue' + enum: + - false + - true + GetEdgeConfigsResponse: + type: object + properties: + edge_configs: + type: array + items: + properties: + id: + type: string + createdAt: + type: number + createdBy: + type: string + description: The ID of the user who created the Global Config, optional because it is not always set. + ownerId: + type: string + slug: + type: string + description: Name for the Global Config Names are not unique. Must start with an alphabetic character and can contain only alphanumeric characters and underscores). + updatedAt: + type: number + digest: + type: string + purpose: + oneOf: + - properties: + type: + type: string + enum: + - flags + projectId: + type: string + required: + - projectId + - type + type: object + - properties: + type: + type: string + enum: + - experimentation + resourceId: + type: string + required: + - resourceId + - type + type: object + deletedAt: + nullable: true + type: number + transfer: + properties: + fromAccountId: + type: string + startedAt: + type: number + doneAt: + nullable: true + type: number + required: + - doneAt + - fromAccountId + - startedAt + type: object + description: Keeps track of the current state of the Global Config while it gets transferred. + schema: + type: string + description: (opaque JSON object) + syncedToDynamoAt: + type: number + description: Timestamp of when the Global Config was synced to DynamoDB initially. It is only set when syncing the entire Global Config, not when updating. + sizeInBytes: + type: number + itemCount: + type: number + required: + - createdAt + - digest + - id + - itemCount + - ownerId + - sizeInBytes + - slug + - updatedAt + type: object + description: List of all global configs. + GetEdgeConfigItemsResponse: + type: object + properties: + edge_config_items: + type: array + items: + $ref: '#/components/schemas/GlobalConfigItem' + GetEdgeConfigTokensResponse: + type: object + properties: + edge_config_tokens: + type: array + items: + $ref: '#/components/schemas/GlobalConfigToken' + StackqlTextResponse: + type: object + description: 'Wrapper for non-JSON response bodies (jsonl, ndjson, streamed json, octet-stream): one row carrying the raw body text.' + properties: + items: + type: array + items: + type: object + properties: + contents: + type: string + description: Raw response body. + x-stackQL-resources: + edge_configs: + id: vercel.edge_config.edge_configs + name: edge_configs + title: Edge Configs + methods: + list: + operation: + $ref: '#/paths/~1v1~1global-config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.edge_configs + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetEdgeConfigsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"edge_configs\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1global-config/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/edge_configs/methods/get' + - $ref: '#/components/x-stackQL-resources/edge_configs/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/edge_configs/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/edge_configs/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/edge_configs/methods/delete' + replace: [] + items: + id: vercel.edge_config.items + name: items + title: Items + methods: + list: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1items/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.edge_config_items + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetEdgeConfigItemsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"edge_config_items\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1items/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1item~1{edge_config_item_key}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/items/methods/get' + - $ref: '#/components/x-stackQL-resources/items/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/items/methods/update' + delete: [] + replace: [] + schema: + id: vercel.edge_config.schema + name: schema + title: Schema + methods: + get: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1schema/get' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1schema/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1schema/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schema/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/schema/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/schema/methods/delete' + replace: [] + tokens: + id: vercel.edge_config.tokens + name: tokens + title: Tokens + methods: + list: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1tokens/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.edge_config_tokens + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetEdgeConfigTokensResponse' + transform: + body: |- + {{- $wrapped := printf "{\"edge_config_tokens\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1tokens/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1token~1{token}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1token/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tokens/methods/get' + - $ref: '#/components/x-stackQL-resources/tokens/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/tokens/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/tokens/methods/delete' + replace: [] + backups: + id: vercel.edge_config.backups + name: backups + title: Backups + methods: + get: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1backups~1{edge_config_backup_version_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + restore: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1backups~1{edge_config_backup_version_id}~1restore/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1global-config~1{edge_config_id}~1backups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.backups + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: next + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/backups/methods/get' + - $ref: '#/components/x-stackQL-resources/backups/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/environments.yaml b/providers/src/vercel/v00.00.00000/services/environments.yaml new file mode 100644 index 00000000..7dc26b98 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/environments.yaml @@ -0,0 +1,2210 @@ +openapi: 3.0.3 +info: + title: environments API + description: vercel environments API + version: 0.0.1 +paths: + /v1/env: + post: + description: Creates shared environment variable(s) for a team. + operationId: createSharedEnvVariable + security: + - bearerToken: [] + summary: Create one or more shared environment variables + tags: + - environment + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + created: + items: + properties: + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + key: + type: string + description: The name of the Shared Env Var. + example: my-api-key + ownerId: + nullable: true + type: string + description: The unique identifier of the owner (team) the Shared Env Var was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + id: + type: string + description: The unique identifier of the Shared Env Var. + example: env_XCG7t7AIHuO2SBA8667zNUiM + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + value: + type: string + description: The value of the Shared Env Var. + projectId: + items: + type: string + type: array + description: The unique identifiers of the projects which the Shared Env Var is linked to. + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrasEFg + type: + type: string + enum: + - encrypted + - plain + - sensitive + - system + description: The type of this cosmos doc instance, if blank, assume secret. + example: encrypted + target: + items: + type: string + enum: + - development + - preview + - production + example: production + description: environments this env variable targets + type: array + description: environments this env variable targets + example: production + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + type: object + type: array + failed: + items: + properties: + error: + properties: + code: + type: string + message: + type: string + key: + type: string + envVarId: + type: string + envVarKey: + type: string + action: + type: string + link: + type: string + value: + oneOf: + - type: string + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + gitBranch: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + project: + type: string + required: + - code + - message + type: object + required: + - error + type: object + type: array + required: + - created + - failed + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - evs + - target + - applyToAllCustomEnvironments + - customEnvironmentIds + properties: + evs: + type: array + maximum: 50 + minimum: 1 + items: + type: object + required: + - key + - value + properties: + key: + description: The name of the Shared Environment Variable + type: string + example: API_URL + value: + description: The value of the Shared Environment Variable + type: string + example: https://api.vercel.com + comment: + type: string + description: A comment to add context on what this Shared Environment Variable is for + example: database connection string for production + maxLength: 500 + type: + description: The type of environment variable + type: string + enum: + - encrypted + - sensitive + example: encrypted + target: + description: The target environment of the Shared Environment Variable + type: array + items: + enum: + - production + - preview + - development + example: + - production + - preview + projectId: + description: Associate a Shared Environment Variable to projects. + type: array + items: + type: string + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrHRCRV + deprecated: true + get: + description: Lists all Shared Environment Variables for a team, taking into account optional filters. + operationId: listSharedEnvVariable + security: + - bearerToken: [] + summary: Lists all Shared Environment Variables for a team + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + data: + items: + properties: + securityIssues: + items: + type: string + enum: + - flags-secret-needs-split + - readable-secret + type: array + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + key: + type: string + description: The name of the Shared Env Var. + example: my-api-key + ownerId: + nullable: true + type: string + description: The unique identifier of the owner (team) the Shared Env Var was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + id: + type: string + description: The unique identifier of the Shared Env Var. + example: env_XCG7t7AIHuO2SBA8667zNUiM + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + value: + type: string + description: The value of the Shared Env Var. + projectId: + items: + type: string + type: array + description: The unique identifiers of the projects which the Shared Env Var is linked to. + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrasEFg + type: + type: string + enum: + - encrypted + - plain + - sensitive + - system + description: The type of this cosmos doc instance, if blank, assume secret. + example: encrypted + target: + items: + type: string + enum: + - development + - preview + - production + example: production + description: environments this env variable targets + type: array + description: environments this env variable targets + example: production + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + required: + - created + - decrypted + - id + - key + - securityIssues + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - data + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - ls + - list + parameters: + - name: search + in: query + schema: + type: string + - name: projectId + description: Filter SharedEnvVariables that belong to a project + in: query + schema: + description: Filter SharedEnvVariables that belong to a project + type: string + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - name: ids + description: Filter SharedEnvVariables based on comma separated ids + in: query + schema: + description: Filter SharedEnvVariables based on comma separated ids + type: string + example: env_2WjyKQmM8ZnGcJsPWMrHRHrE,env_2WjyKQmM8ZnGcJsPWMrHRCRV + - name: exclude_ids + description: Filter SharedEnvVariables based on comma separated ids + in: query + schema: + description: Filter SharedEnvVariables based on comma separated ids + type: string + example: env_2WjyKQmM8ZnGcJsPWMrHRHrE,env_2WjyKQmM8ZnGcJsPWMrHRCRV + - name: exclude-ids + description: Filter SharedEnvVariables based on comma separated ids + in: query + schema: + description: Filter SharedEnvVariables based on comma separated ids + type: string + example: env_2WjyKQmM8ZnGcJsPWMrHRHrE,env_2WjyKQmM8ZnGcJsPWMrHRCRV + - name: exclude_projectId + description: Filter SharedEnvVariables that belong to a project + in: query + schema: + description: Filter SharedEnvVariables that belong to a project + type: string + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - name: exclude-projectId + description: Filter SharedEnvVariables that belong to a project + in: query + schema: + description: Filter SharedEnvVariables that belong to a project + type: string + example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Updates a given Shared Environment Variable for a Team. + operationId: updateSharedEnvVariable + security: + - bearerToken: [] + summary: Updates one or more shared environment variables + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + updated: + items: + properties: + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + key: + type: string + description: The name of the Shared Env Var. + example: my-api-key + ownerId: + nullable: true + type: string + description: The unique identifier of the owner (team) the Shared Env Var was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + id: + type: string + description: The unique identifier of the Shared Env Var. + example: env_XCG7t7AIHuO2SBA8667zNUiM + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + value: + type: string + description: The value of the Shared Env Var. + projectId: + items: + type: string + type: array + description: The unique identifiers of the projects which the Shared Env Var is linked to. + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrasEFg + type: + type: string + enum: + - encrypted + - plain + - sensitive + - system + description: The type of this cosmos doc instance, if blank, assume secret. + example: encrypted + target: + items: + type: string + enum: + - development + - preview + - production + example: production + description: environments this env variable targets + type: array + description: environments this env variable targets + example: production + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + type: object + type: array + failed: + items: + properties: + error: + properties: + code: + type: string + message: + type: string + key: + type: string + envVarId: + type: string + envVarKey: + type: string + action: + type: string + link: + type: string + value: + oneOf: + - type: string + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + gitBranch: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + project: + type: string + required: + - code + - message + type: object + required: + - error + type: object + type: array + required: + - failed + - updated + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + type: object + required: + - updates + properties: + updates: + description: An object where each key is an environment variable ID (not the key name) and the value is the update to apply + type: object + example: + env_2WjyKQmM8ZnGcJsPWMrHRHrE: + key: API_URL + value: https://api.vercel.com + target: + - production + - preview + projectIdUpdates: + link: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + additionalProperties: + type: object + additionalProperties: false + properties: + key: + description: The name of the Shared Environment Variable + type: string + example: API_URL + value: + description: The value of the Shared Environment Variable + type: string + example: https://api.vercel.com + target: + description: The target environment of the Shared Environment Variable + type: array + items: + enum: + - production + - preview + - development + example: + - production + - preview + projectId: + description: Associate a Shared Environment Variable to projects. + type: array + items: + type: string + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrHRCRV + projectIdUpdates: + description: Incrementally update project linking without specifying the full list + type: object + additionalProperties: false + properties: + link: + description: Project IDs to add to this environment variable + type: array + items: + type: string + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + unlink: + description: Project IDs to remove from this environment variable + type: array + items: + type: string + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRCRV + type: + description: The new type of the Shared Environment Variable + type: string + enum: + - encrypted + - sensitive + example: encrypted + comment: + type: string + description: A comment to add context on what this Shared Environment Variable is for + example: database connection string for production + maxLength: 500 + delete: + description: Deletes one or many Shared Environment Variables for a given team. + operationId: deleteSharedEnvVariable + security: + - bearerToken: [] + summary: Delete one or more Env Var + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + deleted: + items: + type: string + type: array + failed: + items: + properties: + error: + properties: + code: + type: string + message: + type: string + key: + type: string + envVarId: + type: string + envVarKey: + type: string + action: + type: string + link: + type: string + value: + oneOf: + - type: string + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + gitBranch: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + project: + type: string + required: + - code + - message + type: object + required: + - error + type: object + type: array + required: + - deleted + - failed + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - ids + properties: + ids: + description: IDs of the Shared Environment Variables to delete + minimum: 1 + maximum: 50 + type: array + items: + type: string + example: + - env_abc123 + - env_abc124 + /v1/env/{id}: + get: + description: Retrieve the decrypted value of a Shared Environment Variable by id. + operationId: getSharedEnvVar + security: + - bearerToken: [] + summary: Retrieve the decrypted value of a Shared Environment Variable by id. + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + key: + type: string + description: The name of the Shared Env Var. + example: my-api-key + ownerId: + nullable: true + type: string + description: The unique identifier of the owner (team) the Shared Env Var was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + id: + type: string + description: The unique identifier of the Shared Env Var. + example: env_XCG7t7AIHuO2SBA8667zNUiM + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + value: + type: string + description: The value of the Shared Env Var. + projectId: + items: + type: string + type: array + description: The unique identifiers of the projects which the Shared Env Var is linked to. + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrasEFg + type: + type: string + enum: + - encrypted + - plain + - sensitive + - system + description: The type of this cosmos doc instance, if blank, assume secret. + example: encrypted + target: + items: + type: string + enum: + - development + - preview + - production + example: production + description: environments this env variable targets + type: array + description: environments this env variable targets + example: production + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - name: id + description: The unique ID for the Shared Environment Variable to get the decrypted value. + in: path + required: true + schema: + description: The unique ID for the Shared Environment Variable to get the decrypted value. + type: string + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/env/{id}/unlink/{project_id}: + patch: + description: Disconnects a shared environment variable for a given project + operationId: unlinkSharedEnvVariable + security: + - bearerToken: [] + summary: Disconnects a shared environment variable for a given project + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + required: + - id + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id + description: The unique ID for the Shared Environment Variable to unlink from the project. + in: path + required: true + schema: + description: The unique ID for the Shared Environment Variable to unlink from the project. + type: string + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v9/projects/{id_or_name}/custom-environments: + post: + description: Creates a custom environment for the current project. Cannot be named 'Production' or 'Preview'. + operationId: createCustomEnvironment + security: + - bearerToken: [] + summary: Create a custom environment for the current project. + tags: + - environment + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + requestBody: + content: + application/json: + schema: + type: object + properties: + slug: + description: The slug of the custom environment to create. + type: string + maxLength: 32 + description: + description: Description of the custom environment. This is optional. + type: string + maxLength: 256 + branchMatcher: + required: + - type + - pattern + description: How we want to determine a matching branch. This is optional. + type: object + properties: + type: + description: Type of matcher. One of "equals", "startsWith", or "endsWith". + enum: + - equals + - startsWith + - endsWith + pattern: + description: Git branch name or portion thereof. + type: string + maxLength: 100 + copyEnvVarsFrom: + description: Where to copy environment variables from. This is optional. + type: string + get: + description: Retrieve custom environments for the project. Must not be named 'Production' or 'Preview'. + operationId: getProjectsByIdOrNameCustomEnvironments + security: + - bearerToken: [] + summary: Retrieve custom environments + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + accountLimit: + properties: + total: + type: number + required: + - total + type: object + description: The maximum number of custom environments allowed either by the team's plan type or a custom override. + environments: + items: + properties: + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + slug: + type: string + description: URL-friendly name of the environment + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + type: array + required: + - accountLimit + - environments + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: gitBranch + description: Fetch custom environments for a specific git branch + in: query + required: false + schema: + description: Fetch custom environments for a specific git branch + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v9/projects/{id_or_name}/custom-environments/{environment_slug_or_id}: + get: + description: Retrieve a custom environment for the project. Must not be named 'Production' or 'Preview'. + operationId: getCustomEnvironment + security: + - bearerToken: [] + summary: Retrieve a custom environment + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: environment_slug_or_id + description: The unique custom environment identifier within the project + in: path + required: true + schema: + description: The unique custom environment identifier within the project + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update a custom environment for the project. Must not be named 'Production' or 'Preview'. + operationId: updateCustomEnvironment + security: + - bearerToken: [] + summary: Update a custom environment + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: environment_slug_or_id + description: The unique custom environment identifier within the project + in: path + required: true + schema: + description: The unique custom environment identifier within the project + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + requestBody: + content: + application/json: + schema: + type: object + properties: + slug: + description: The slug of the custom environment. + type: string + maxLength: 32 + description: + description: Description of the custom environment. This is optional. + type: string + maxLength: 256 + branchMatcher: + required: + - type + - pattern + description: How we want to determine a matching branch. This is optional. + type: object + properties: + type: + description: Type of matcher. One of "equals", "startsWith", or "endsWith". + enum: + - equals + - startsWith + - endsWith + pattern: + description: Git branch name or portion thereof. + type: string + maxLength: 100 + nullable: true + delete: + description: Remove a custom environment for the project. Must not be named 'Production' or 'Preview'. + operationId: removeCustomEnvironment + security: + - bearerToken: [] + summary: Remove a custom environment + tags: + - environment + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: environment_slug_or_id + description: The unique custom environment identifier within the project + in: path + required: true + schema: + description: The unique custom environment identifier within the project + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + deleteUnassignedEnvironmentVariables: + description: Delete Environment Variables that are not assigned to any environments. + type: boolean +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + x-stackQL-resources: + shared_env_variables: + id: vercel.environments.shared_env_variables + name: shared_env_variables + title: Shared Env Variables + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1env/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1env/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1env/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1env/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1env~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + unlink: + operation: + $ref: '#/paths/~1v1~1env~1{id}~1unlink~1{project_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/shared_env_variables/methods/get' + - $ref: '#/components/x-stackQL-resources/shared_env_variables/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/shared_env_variables/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/shared_env_variables/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/shared_env_variables/methods/delete' + replace: [] + custom_environments: + id: vercel.environments.custom_environments + name: custom_environments + title: Custom Environments + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1custom-environments/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1custom-environments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.environments + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1custom-environments~1{environment_slug_or_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1custom-environments~1{environment_slug_or_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1custom-environments~1{environment_slug_or_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/custom_environments/methods/get' + - $ref: '#/components/x-stackQL-resources/custom_environments/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/custom_environments/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/custom_environments/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/custom_environments/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/feature_flags.yaml b/providers/src/vercel/v00.00.00000/services/feature_flags.yaml new file mode 100644 index 00000000..b848d01e --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/feature_flags.yaml @@ -0,0 +1,6538 @@ +openapi: 3.0.3 +info: + title: feature_flags API + description: vercel feature_flags API + version: 0.0.1 +paths: + /v2/projects/{project_id_or_name}/feature-flags/flags: + get: + description: Retrieve feature flags for a project. Returns an opaque cursor for pagination. + operationId: listFlagsV2 + security: + - bearerToken: [] + summary: List flags + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + pagination: + properties: + next: + nullable: true + type: string + required: + - next + type: object + data: + items: + oneOf: + - $ref: '#/components/schemas/Flag' + - $ref: '#/components/schemas/MarketplaceFlag' + type: array + required: + - data + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: state + description: The state of the flags to retrieve. Defaults to `active`. + in: query + required: false + schema: + type: string + enum: + - active + - archived + description: The state of the flags to retrieve. Defaults to `active`. + - name: limit + description: Maximum number of flags to return. + in: query + required: false + schema: + description: Maximum number of flags to return. + type: integer + minimum: 1 + maximum: 100 + default: 25 + - name: cursor + description: Pagination cursor to continue from. + in: query + required: false + schema: + description: Pagination cursor to continue from. + type: string + - name: search + description: Search flags by their slug or description. Case-insensitive. + in: query + required: false + schema: + description: Search flags by their slug or description. Case-insensitive. + type: string + maxLength: 256 + - name: tags + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + in: query + required: false + schema: + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + type: array + items: + type: string + - name: createdBy + description: Filter flags by the id of the entity that created them (a user or team id). + in: query + required: false + schema: + description: Filter flags by the id of the entity that created them (a user or team id). + type: string + maxLength: 256 + - name: maintainerIds + description: Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match). + in: query + required: false + schema: + description: Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match). + type: array + items: + type: string + maxLength: 24 + maxItems: 25 + - name: includeMarketplaceFlags + description: Whether to include Marketplace experimentation items in the paginated response. Defaults to false. + in: query + required: false + schema: + description: Whether to include Marketplace experimentation items in the paginated response. Defaults to false. + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id_or_name}/feature-flags/flags: + get: + description: Retrieve feature flags for a project. The list can be filtered by state and supports pagination. + operationId: listFlags + security: + - bearerToken: [] + summary: List flags + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + data: + items: + $ref: '#/components/schemas/Flag' + type: array + pagination: + properties: + next: + nullable: true + type: string + required: + - next + type: object + required: + - data + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: state + description: The state of the flags to retrieve. Defaults to `active`. + in: query + required: false + schema: + type: string + enum: + - active + - archived + description: The state of the flags to retrieve. Defaults to `active`. + - name: withMetadata + description: Deprecated. Whether to include creator metadata in each flag in the response. Resolve creator identity client-side (e.g. via the team members endpoint) instead; this parameter will be removed in a future release. Use `GET /v1/projects/:id/feature-flags/flags/:flagIdOrSlug?withMetadata=true` for single-flag lookups that need creator metadata. + in: query + required: false + schema: + description: Deprecated. Whether to include creator metadata in each flag in the response. Resolve creator identity client-side (e.g. via the team members endpoint) instead; this parameter will be removed in a future release. Use `GET /v1/projects/:id/feature-flags/flags/:flagIdOrSlug?withMetadata=true` for single-flag lookups that need creator metadata. + type: boolean + deprecated: true + - name: limit + description: Maximum number of flags to return. When not set, all flags are returned. + in: query + required: false + schema: + description: Maximum number of flags to return. When not set, all flags are returned. + type: integer + minimum: 1 + maximum: 100 + - name: cursor + description: Pagination cursor to continue from. + in: query + required: false + schema: + description: Pagination cursor to continue from. + type: string + - name: search + description: Search flags by their slug or description. Case-insensitive. + in: query + required: false + schema: + description: Search flags by their slug or description. Case-insensitive. + type: string + maxLength: 256 + - name: tags + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + in: query + required: false + schema: + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + type: array + items: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + put: + description: Create a new feature flag for a project. The flag must have a unique slug within the project and specify its kind (boolean, string, number, or json). + operationId: createFlag + security: + - bearerToken: [] + summary: Create a flag + tags: + - feature-flags + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + description: + type: string + variants: + items: + type: string + description: (opaque JSON object) + type: array + id: + type: string + environments: + additionalProperties: + properties: + reuse: + properties: + active: + type: boolean + enum: + - false + - true + environment: + type: string + required: + - active + - environment + type: object + targets: + additionalProperties: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + revision: + type: number + pausedOutcome: + properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + fallthrough: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + active: + type: boolean + enum: + - false + - true + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + required: + - active + - fallthrough + - pausedOutcome + - rules + type: object + type: object + kind: + type: string + enum: + - boolean + - json + - number + - string + revision: + type: number + seed: + type: number + state: + type: string + enum: + - active + - archived + maintainerIds: + items: + type: string + type: array + permanent: + type: boolean + enum: + - false + - true + tags: + items: + type: string + type: array + slug: + type: string + createdAt: + type: number + updatedAt: + type: number + updatedBy: + type: string + createdBy: + type: string + ownerId: + type: string + projectId: + type: string + typeName: + type: string + enum: + - flag + required: + - createdAt + - createdBy + - environments + - id + - kind + - ownerId + - projectId + - revision + - seed + - slug + - state + - typeName + - updatedAt + - variants + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + slug: + description: A unique (per project) key for the flag, composed of letters, numbers, dashes, and underscores + type: string + pattern: ^[a-zA-Z0-9_-]{1,512}$ + kind: + description: The kind of flag + enum: + - boolean + - string + - number + - json + variants: + type: array + description: The variants of the flag + items: + type: object + additionalProperties: false + properties: + id: + description: The id of the variant + type: string + label: + description: A label for the variant + type: string + description: + description: A description of the variant + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + - type: string + description: (opaque JSON object) + - type: array + items: {} + - type: string + required: + - id + - value + environments: + type: object + description: The configuration for the flag in different environments + additionalProperties: + type: object + additionalProperties: false + properties: + active: + type: boolean + reuse: + type: object + description: Allows linking this environment to another environment so this flag will be evaluated with the other flag's configuration + additionalProperties: false + required: + - active + - environment + properties: + active: + type: boolean + description: Whether the reuse is active or not + environment: + type: string + description: The environment to link to + targets: + type: object + description: Allows assigning targets to variants while bypassing the flag's rules + additionalProperties: + type: object + additionalProperties: + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + pausedOutcome: + type: object + additionalProperties: false + properties: + type: {} + variantId: + type: string + required: + - type + - variantId + rules: + type: array + items: + type: object + additionalProperties: false + properties: + id: + type: string + conditions: + type: array + items: + type: object + additionalProperties: false + properties: + lhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + required: + - type + - type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + cmp: + type: string + enum: + - eq + - '!eq' + - oneOf + - '!oneOf' + - containsAllOf + - containsAnyOf + - containsNoneOf + - startsWith + - '!startsWith' + - endsWith + - '!endsWith' + - contains + - '!contains' + - ex + - '!ex' + - gt + - gte + - lt + - lte + - regex + - '!regex' + - before + - after + rhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: + type: string + enum: + - list/inline + - list + items: + type: array + items: + anyOf: + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + required: + - type + - items + - type: object + additionalProperties: false + properties: + type: {} + pattern: + type: string + flags: + type: string + required: + - type + - pattern + - flags + - type: string + - type: number + - type: boolean + cmpOptions: + type: object + additionalProperties: false + properties: + ignoreCase: + type: boolean + required: + - lhs + - cmp + outcome: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + variantId: + type: string + required: + - type + - variantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + weights: + type: object + additionalProperties: + type: number + description: The distribution for each variant + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + required: + - type + - base + - weights + - defaultVariantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + startTimestamp: + type: number + description: Epoch ms when the rollout begins + rollFromVariantId: + type: string + description: The variant to roll away from + rollToVariantId: + type: string + description: The variant to roll towards + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + slots: + type: array + description: 'Each slot defines a promille and how long it is served for. After all slots expire, 100% is served indefinitely. The final implicit 100% slot does not need to be listed. Example: [[5_000, 21_600_000], [10_000, 28_800_000]] means 5‰ for 6h, then 10‰ for 8h, then 100% indefinitely.' + items: + type: object + additionalProperties: false + properties: + promille: + type: number + minimum: 0 + maximum: 100000 + description: Promille of traffic for rollToVariant (0-100_000, where 1_000 = 1%) + durationMs: + type: number + minimum: 0 + description: How long this promille is served in ms before moving to the next slot. + required: + - promille + - durationMs + minItems: 1 + required: + - type + - base + - startTimestamp + - rollFromVariantId + - rollToVariantId + - defaultVariantId + - slots + required: + - id + - conditions + - outcome + maxItems: 10000 + fallthrough: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + variantId: + type: string + required: + - type + - variantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + weights: + type: object + additionalProperties: + type: number + description: The distribution for each variant + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + required: + - type + - base + - weights + - defaultVariantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + startTimestamp: + type: number + description: Epoch ms when the rollout begins + rollFromVariantId: + type: string + description: The variant to roll away from + rollToVariantId: + type: string + description: The variant to roll towards + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + slots: + type: array + description: 'Each slot defines a promille and how long it is served for. After all slots expire, 100% is served indefinitely. The final implicit 100% slot does not need to be listed. Example: [[5_000, 21_600_000], [10_000, 28_800_000]] means 5‰ for 6h, then 10‰ for 8h, then 100% indefinitely.' + items: + type: object + additionalProperties: false + properties: + promille: + type: number + minimum: 0 + maximum: 100000 + description: Promille of traffic for rollToVariant (0-100_000, where 1_000 = 1%) + durationMs: + type: number + minimum: 0 + description: How long this promille is served in ms before moving to the next slot. + required: + - promille + - durationMs + minItems: 1 + required: + - type + - base + - startTimestamp + - rollFromVariantId + - rollToVariantId + - defaultVariantId + - slots + revision: + type: number + description: The revision of the environment config + required: + - active + - pausedOutcome + - rules + - fallthrough + maxProperties: 10 + seed: + type: number + minimum: 0 + maximum: 100000 + description: A random seed to prevent split points in different flags from having the same targets + description: + description: A description of the flag + type: string + state: + type: string + enum: + - active + - archived + maintainerIds: + description: The user ids of the maintainers of the flag + type: array + items: + type: string + maxLength: 24 + maxItems: 5 + permanent: + description: Whether this flag is marked as permanent, indicating it should not be removed + type: boolean + tags: + description: Tags for categorizing the flag + type: array + items: + type: string + maxLength: 64 + maxItems: 20 + uniqueItems: true + required: + - slug + - kind + - environments + /v1/projects/{project_id_or_name}/feature-flags/flags/{flag_id_or_slug}: + get: + description: Retrieve a specific feature flag by its ID or slug. + operationId: getFlag + security: + - bearerToken: [] + summary: Get a flag + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Flag' + '304': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: flag_id_or_slug + description: The flag id or name + in: path + required: true + schema: + description: The flag id or name + type: string + - name: ifMatch + description: Etag to match, can be used interchangeably with the `if-match` header + in: query + required: false + schema: + description: Etag to match, can be used interchangeably with the `if-match` header + type: string + - name: withMetadata + description: Whether to include metadata in the response + in: query + required: false + schema: + description: Whether to include metadata in the response + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update an existing feature flag. This endpoint supports partial updates, allowing you to modify specific properties like variants, environments, or state without providing the full flag configuration. + operationId: updateFlag + security: + - bearerToken: [] + summary: Update a flag + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + description: + type: string + variants: + items: + type: string + description: (opaque JSON object) + type: array + id: + type: string + environments: + additionalProperties: + properties: + reuse: + properties: + active: + type: boolean + enum: + - false + - true + environment: + type: string + required: + - active + - environment + type: object + targets: + additionalProperties: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + revision: + type: number + pausedOutcome: + properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + fallthrough: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + active: + type: boolean + enum: + - false + - true + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + required: + - active + - fallthrough + - pausedOutcome + - rules + type: object + type: object + kind: + type: string + enum: + - boolean + - json + - number + - string + revision: + type: number + seed: + type: number + state: + type: string + enum: + - active + - archived + maintainerIds: + items: + type: string + type: array + permanent: + type: boolean + enum: + - false + - true + tags: + items: + type: string + type: array + slug: + type: string + createdAt: + type: number + updatedAt: + type: number + updatedBy: + type: string + createdBy: + type: string + ownerId: + type: string + projectId: + type: string + typeName: + type: string + enum: + - flag + metadata: + properties: + creator: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: object + required: + - createdAt + - createdBy + - environments + - id + - kind + - ownerId + - projectId + - revision + - seed + - slug + - state + - typeName + - updatedAt + - variants + type: object + '304': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: flag_id_or_slug + description: The flag id or name + in: path + required: true + schema: + description: The flag id or name + type: string + - name: ifMatch + description: Etag to match, can be used interchangeably with the `if-match` header + in: query + required: false + schema: + description: Etag to match, can be used interchangeably with the `if-match` header + type: string + - name: withMetadata + description: Whether to include metadata in the response + in: query + required: false + schema: + description: Whether to include metadata in the response + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + createdBy: + description: The user who created this patch + type: string + message: + description: Additional message for this version + type: string + variants: + type: array + description: The variants of the flag + items: + type: object + additionalProperties: false + properties: + id: + description: The id of the variant + type: string + label: + description: A label for the variant + type: string + description: + description: A description of the variant + type: string + value: + anyOf: + - type: string + - type: number + - type: boolean + - type: string + description: (opaque JSON object) + - type: array + items: {} + - type: string + required: + - id + - value + environments: + type: object + description: The configuration for the flag in different environments + additionalProperties: + type: object + additionalProperties: false + properties: + active: + type: boolean + reuse: + type: object + description: Allows linking this environment to another environment so this flag will be evaluated with the other flag's configuration + additionalProperties: false + required: + - active + - environment + properties: + active: + type: boolean + description: Whether the reuse is active or not + environment: + type: string + description: The environment to link to + targets: + type: object + description: Allows assigning targets to variants while bypassing the flag's rules + additionalProperties: + type: object + additionalProperties: + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + pausedOutcome: + type: object + additionalProperties: false + properties: + type: {} + variantId: + type: string + required: + - type + - variantId + rules: + type: array + items: + type: object + additionalProperties: false + properties: + id: + type: string + conditions: + type: array + items: + type: object + additionalProperties: false + properties: + lhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + required: + - type + - type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + cmp: + type: string + enum: + - eq + - '!eq' + - oneOf + - '!oneOf' + - containsAllOf + - containsAnyOf + - containsNoneOf + - startsWith + - '!startsWith' + - endsWith + - '!endsWith' + - contains + - '!contains' + - ex + - '!ex' + - gt + - gte + - lt + - lte + - regex + - '!regex' + - before + - after + rhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: + type: string + enum: + - list/inline + - list + items: + type: array + items: + anyOf: + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + required: + - type + - items + - type: object + additionalProperties: false + properties: + type: {} + pattern: + type: string + flags: + type: string + required: + - type + - pattern + - flags + - type: string + - type: number + - type: boolean + cmpOptions: + type: object + additionalProperties: false + properties: + ignoreCase: + type: boolean + required: + - lhs + - cmp + outcome: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + variantId: + type: string + required: + - type + - variantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + weights: + type: object + additionalProperties: + type: number + description: The distribution for each variant + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + required: + - type + - base + - weights + - defaultVariantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + startTimestamp: + type: number + description: Epoch ms when the rollout begins + rollFromVariantId: + type: string + description: The variant to roll away from + rollToVariantId: + type: string + description: The variant to roll towards + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + slots: + type: array + description: 'Each slot defines a promille and how long it is served for. After all slots expire, 100% is served indefinitely. The final implicit 100% slot does not need to be listed. Example: [[5_000, 21_600_000], [10_000, 28_800_000]] means 5‰ for 6h, then 10‰ for 8h, then 100% indefinitely.' + items: + type: object + additionalProperties: false + properties: + promille: + type: number + minimum: 0 + maximum: 100000 + description: Promille of traffic for rollToVariant (0-100_000, where 1_000 = 1%) + durationMs: + type: number + minimum: 0 + description: How long this promille is served in ms before moving to the next slot. + required: + - promille + - durationMs + minItems: 1 + required: + - type + - base + - startTimestamp + - rollFromVariantId + - rollToVariantId + - defaultVariantId + - slots + required: + - id + - conditions + - outcome + maxItems: 10000 + fallthrough: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + variantId: + type: string + required: + - type + - variantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + weights: + type: object + additionalProperties: + type: number + description: The distribution for each variant + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + required: + - type + - base + - weights + - defaultVariantId + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + startTimestamp: + type: number + description: Epoch ms when the rollout begins + rollFromVariantId: + type: string + description: The variant to roll away from + rollToVariantId: + type: string + description: The variant to roll towards + defaultVariantId: + type: string + description: This variant will be used when the base attribute does not exist + slots: + type: array + description: 'Each slot defines a promille and how long it is served for. After all slots expire, 100% is served indefinitely. The final implicit 100% slot does not need to be listed. Example: [[5_000, 21_600_000], [10_000, 28_800_000]] means 5‰ for 6h, then 10‰ for 8h, then 100% indefinitely.' + items: + type: object + additionalProperties: false + properties: + promille: + type: number + minimum: 0 + maximum: 100000 + description: Promille of traffic for rollToVariant (0-100_000, where 1_000 = 1%) + durationMs: + type: number + minimum: 0 + description: How long this promille is served in ms before moving to the next slot. + required: + - promille + - durationMs + minItems: 1 + required: + - type + - base + - startTimestamp + - rollFromVariantId + - rollToVariantId + - defaultVariantId + - slots + revision: + type: number + description: The revision of the environment config + required: + - active + - pausedOutcome + - rules + - fallthrough + maxProperties: 10 + seed: + type: number + minimum: 0 + maximum: 100000 + description: A random seed to prevent split points in different flags from having the same targets + description: + description: A description of the flag + type: string + state: + type: string + enum: + - active + - archived + maintainerIds: + description: The user ids of the maintainers of the flag + type: array + items: + type: string + maxLength: 24 + maxItems: 5 + permanent: + description: Whether this flag is marked as permanent, indicating it should not be removed + type: boolean + tags: + description: Tags for categorizing the flag + type: array + items: + type: string + maxLength: 64 + maxItems: 20 + uniqueItems: true + delete: + description: Permanently delete a feature flag from the project. This action cannot be undone. Consider archiving the flag instead if you may need it in the future. + operationId: deleteFlag + security: + - bearerToken: [] + summary: Delete a flag + tags: + - feature-flags + responses: + '204': + description: '' + '304': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: flag_id_or_slug + description: The flag id or name + in: path + required: true + schema: + description: The flag id or name + type: string + - name: ifMatch + description: Etag to match, can be used interchangeably with the `if-match` header + in: query + required: false + schema: + description: Etag to match, can be used interchangeably with the `if-match` header + type: string + - name: withMetadata + description: Whether to include metadata in the response + in: query + required: false + schema: + description: Whether to include metadata in the response + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id_or_name}/feature-flags/flags/{flag_id_or_slug}/versions: + get: + description: Lists flag versions for a given flag. + operationId: listFlagVersions + security: + - bearerToken: [] + summary: List flag versions + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + versions: + items: + properties: + id: + type: string + revision: + type: number + createdAt: + type: number + createdBy: + type: string + message: + type: string + flagId: + type: string + changedEnvironments: + items: + type: string + type: array + data: + properties: + description: + type: string + variants: + items: + type: string + description: (opaque JSON object) + type: array + environments: + additionalProperties: + properties: + reuse: + properties: + active: + type: boolean + enum: + - false + - true + environment: + type: string + required: + - active + - environment + type: object + targets: + additionalProperties: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + revision: + type: number + pausedOutcome: + properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + fallthrough: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + active: + type: boolean + enum: + - false + - true + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + required: + - active + - fallthrough + - pausedOutcome + - rules + type: object + type: object + seed: + type: number + state: + type: string + enum: + - active + - archived + maintainerIds: + items: + type: string + type: array + permanent: + type: boolean + enum: + - false + - true + tags: + items: + type: string + type: array + required: + - environments + - seed + - state + - variants + type: object + metadata: + properties: + creator: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: object + required: + - changedEnvironments + - createdAt + - data + - flagId + - id + - revision + type: object + type: array + pagination: + type: string + description: (opaque JSON object) + required: + - pagination + - versions + type: object + '304': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + in: path + required: true + schema: + type: string + - name: flag_id_or_slug + in: path + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: number + minimum: 1 + maximum: 100 + default: 20 + - name: cursor + description: Pagination cursor + in: query + required: false + schema: + type: string + description: Pagination cursor + - name: environment + description: Environment to filter by + in: query + required: false + schema: + type: string + description: Environment to filter by + - name: withMetadata + description: Whether to include metadata + in: query + required: false + schema: + type: boolean + description: Whether to include metadata + default: false + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id_or_name}/feature-flags/settings: + get: + description: Retrieve feature flag settings for a project. + operationId: getFlagSettings + security: + - bearerToken: [] + summary: Get project flag settings + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + typeName: + type: string + enum: + - settings + projectId: + type: string + ownerId: + type: string + enabled: + type: boolean + enum: + - false + - true + environments: + items: + type: string + type: array + entities: + items: + properties: + kind: + type: string + label: + type: string + attributes: + items: + properties: + key: + type: string + type: + type: string + labels: + items: + properties: + label: + type: string + value: + type: string + required: + - label + - value + type: object + type: array + required: + - key + - type + type: object + type: array + required: + - attributes + - kind + - label + type: object + type: array + createdAt: + type: number + updatedAt: + type: number + metadata: + properties: + activeFlagCount: + type: number + archivedFlagCount: + type: number + segmentCount: + type: number + packSizeInBytes: + type: number + packRevision: + type: number + configUpdatedAt: + type: number + required: + - activeFlagCount + - archivedFlagCount + - packSizeInBytes + - segmentCount + type: object + required: + - enabled + - entities + - environments + - metadata + - projectId + - typeName + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update feature flag settings for a project. + operationId: updateFlagSettings + security: + - bearerToken: [] + summary: Update project flag settings + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + typeName: + type: string + enum: + - settings + projectId: + type: string + ownerId: + type: string + enabled: + type: boolean + enum: + - false + - true + environments: + items: + type: string + type: array + entities: + items: + properties: + kind: + type: string + label: + type: string + attributes: + items: + properties: + key: + type: string + type: + type: string + labels: + items: + properties: + label: + type: string + value: + type: string + required: + - label + - value + type: object + type: array + required: + - key + - type + type: object + type: array + required: + - attributes + - kind + - label + type: object + type: array + createdAt: + type: number + updatedAt: + type: number + metadata: + properties: + activeFlagCount: + type: number + archivedFlagCount: + type: number + segmentCount: + type: number + packSizeInBytes: + type: number + packRevision: + type: number + configUpdatedAt: + type: number + required: + - activeFlagCount + - archivedFlagCount + - packSizeInBytes + - segmentCount + type: object + required: + - enabled + - entities + - environments + - metadata + - projectId + - typeName + type: object + '201': + description: '' + content: + application/json: + schema: + properties: + typeName: + type: string + enum: + - settings + projectId: + type: string + ownerId: + type: string + enabled: + type: boolean + enum: + - false + - true + environments: + items: + type: string + type: array + entities: + items: + properties: + kind: + type: string + label: + type: string + attributes: + items: + properties: + key: + type: string + type: + type: string + labels: + items: + properties: + label: + type: string + value: + type: string + required: + - label + - value + type: object + type: array + required: + - key + - type + type: object + type: array + required: + - attributes + - kind + - label + type: object + type: array + createdAt: + type: number + updatedAt: + type: number + metadata: + properties: + activeFlagCount: + type: number + archivedFlagCount: + type: number + segmentCount: + type: number + packSizeInBytes: + type: number + packRevision: + type: number + configUpdatedAt: + type: number + required: + - activeFlagCount + - archivedFlagCount + - packSizeInBytes + - segmentCount + type: object + required: + - enabled + - entities + - environments + - metadata + - projectId + - typeName + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + enabled: + type: boolean + entities: + type: array + maxItems: 32 + items: + type: object + additionalProperties: false + required: + - kind + - label + - attributes + properties: + kind: + type: string + maxLength: 128 + label: + type: string + maxLength: 128 + attributes: + type: array + maxItems: 32 + items: + type: object + additionalProperties: false + required: + - key + - type + properties: + key: + type: string + maxLength: 128 + type: + type: string + maxLength: 128 + labels: + type: array + maxItems: 256 + items: + type: object + additionalProperties: false + required: + - label + - value + properties: + label: + type: string + maxLength: 128 + value: + type: string + maxLength: 128 + environments: + description: The environments to sync + type: array + items: + type: string + /v1/teams/{team_id}/feature-flags/settings: + get: + description: Retrieve feature flag settings for projects in a team. + operationId: listTeamFlagSettings + security: + - bearerToken: [] + summary: List team project flag settings + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + data: + items: + properties: + typeName: + type: string + enum: + - settings + projectId: + type: string + ownerId: + type: string + enabled: + type: boolean + enum: + - false + - true + environments: + items: + type: string + type: array + entities: + items: + properties: + kind: + type: string + label: + type: string + attributes: + items: + properties: + key: + type: string + type: + type: string + labels: + items: + properties: + label: + type: string + value: + type: string + required: + - label + - value + type: object + type: array + required: + - key + - type + type: object + type: array + required: + - attributes + - kind + - label + type: object + type: array + createdAt: + type: number + updatedAt: + type: number + metadata: + properties: + activeFlagCount: + type: number + archivedFlagCount: + type: number + segmentCount: + type: number + packSizeInBytes: + type: number + packRevision: + type: number + configUpdatedAt: + type: number + required: + - activeFlagCount + - archivedFlagCount + - packSizeInBytes + - segmentCount + type: object + required: + - enabled + - entities + - environments + - metadata + - projectId + - typeName + type: object + type: array + pagination: + properties: + next: + nullable: true + type: string + required: + - next + type: object + required: + - data + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: limit + description: Maximum number of settings to return. + in: query + required: false + schema: + description: Maximum number of settings to return. + type: integer + minimum: 1 + maximum: 100 + default: 20 + - name: cursor + description: Pagination cursor to continue from. + in: query + required: false + schema: + description: Pagination cursor to continue from. + type: string + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/teams/{team_id}/feature-flags/flags: + get: + description: Retrieve all feature flags for a team across all projects. Returns an opaque cursor for pagination. + operationId: listTeamFlagsV2 + security: + - bearerToken: [] + summary: List all flags for a team + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + pagination: + properties: + next: + nullable: true + type: string + required: + - next + type: object + data: + items: + oneOf: + - $ref: '#/components/schemas/Flag' + - $ref: '#/components/schemas/MarketplaceFlag' + type: array + required: + - data + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: state + description: The state of the flags to retrieve. Defaults to `active`. + in: query + required: false + schema: + type: string + enum: + - active + - archived + description: The state of the flags to retrieve. Defaults to `active`. + - name: limit + description: Maximum number of flags to return. + in: query + required: false + schema: + description: Maximum number of flags to return. + type: integer + minimum: 1 + maximum: 100 + default: 25 + - name: cursor + description: Pagination cursor to continue from. + in: query + required: false + schema: + description: Pagination cursor to continue from. + type: string + - name: search + description: Search flags by their slug or description. Case-insensitive. + in: query + required: false + schema: + description: Search flags by their slug or description. Case-insensitive. + type: string + maxLength: 256 + - name: kind + description: The kind of flags to retrieve. + in: query + required: false + schema: + description: The kind of flags to retrieve. + type: string + enum: + - boolean + - string + - number + - json + - name: tags + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + in: query + required: false + schema: + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + type: array + items: + type: string + - name: createdBy + description: Filter flags by the id of the entity that created them (a user or team id). + in: query + required: false + schema: + description: Filter flags by the id of the entity that created them (a user or team id). + type: string + maxLength: 256 + - name: maintainerIds + description: Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match). + in: query + required: false + schema: + description: Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match). + type: array + items: + type: string + maxLength: 24 + maxItems: 25 + - name: includeMarketplaceFlags + description: Whether to include Marketplace experimentation items in the paginated response. Defaults to false. + in: query + required: false + schema: + description: Whether to include Marketplace experimentation items in the paginated response. Defaults to false. + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/teams/{team_id}/feature-flags/flags: + get: + description: Retrieve all feature flags for a team across all projects. The list can be filtered by state and supports pagination. + operationId: listTeamFlags + security: + - bearerToken: [] + summary: List all flags for a team + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + data: + items: + $ref: '#/components/schemas/Flag' + type: array + pagination: + properties: + next: + nullable: true + type: string + required: + - next + type: object + required: + - data + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: state + description: The state of the flags to retrieve. Defaults to `active`. + in: query + required: false + schema: + type: string + enum: + - active + - archived + description: The state of the flags to retrieve. Defaults to `active`. + - name: withMetadata + description: Deprecated. Whether to include creator metadata in each flag in the response. Resolve creator identity client-side (e.g. via the team members endpoint) instead; this parameter will be removed in a future release. + in: query + required: false + schema: + description: Deprecated. Whether to include creator metadata in each flag in the response. Resolve creator identity client-side (e.g. via the team members endpoint) instead; this parameter will be removed in a future release. + type: boolean + deprecated: true + - name: limit + description: Maximum number of flags to return. + in: query + required: false + schema: + description: Maximum number of flags to return. + type: integer + minimum: 1 + maximum: 100 + default: 20 + - name: cursor + description: Pagination cursor to continue from. + in: query + required: false + schema: + description: Pagination cursor to continue from. + type: string + - name: search + description: Search flags by their slug or description. Case-insensitive. + in: query + required: false + schema: + description: Search flags by their slug or description. Case-insensitive. + type: string + maxLength: 256 + - name: kind + description: The kind of flags to retrieve. + in: query + required: false + schema: + description: The kind of flags to retrieve. + type: string + enum: + - boolean + - string + - number + - json + - name: tags + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + in: query + required: false + schema: + description: Filter flags by tag. Repeat the parameter for multiple tags (all must match). + type: array + items: + type: string + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id_or_name}/feature-flags/segments: + put: + description: Create a new feature flag segment. + operationId: createFlagSegment + security: + - bearerToken: [] + summary: Create a segment + tags: + - feature-flags + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + description: + type: string + createdBy: + type: string + usedByFlags: + items: + type: string + type: array + usedBySegments: + items: + type: string + type: array + data: + properties: + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - all + required: + - type + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + passPromille: + type: number + required: + - base + - passPromille + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + include: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + exclude: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + id: + type: string + label: + type: string + slug: + type: string + createdAt: + type: number + updatedAt: + type: number + projectId: + type: string + typeName: + type: string + enum: + - segment + hint: + type: string + required: + - createdAt + - data + - hint + - id + - label + - projectId + - slug + - typeName + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + slug: + type: string + createdBy: + description: The entity who created the segment + type: string + label: + type: string + description: + type: string + data: + type: object + additionalProperties: false + description: The data of the segment + properties: + rules: + type: array + items: + type: object + additionalProperties: false + properties: + id: + type: string + conditions: + type: array + items: + type: object + additionalProperties: false + properties: + lhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + required: + - type + - type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + cmp: + type: string + enum: + - eq + - '!eq' + - oneOf + - '!oneOf' + - containsAllOf + - containsAnyOf + - containsNoneOf + - startsWith + - '!startsWith' + - endsWith + - '!endsWith' + - contains + - '!contains' + - ex + - '!ex' + - gt + - gte + - lt + - lte + - regex + - '!regex' + - before + - after + rhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: + type: string + enum: + - list/inline + - list + items: + type: array + items: + anyOf: + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + required: + - type + - items + - type: object + additionalProperties: false + properties: + type: {} + pattern: + type: string + flags: + type: string + required: + - type + - pattern + - flags + - type: string + - type: number + - type: boolean + cmpOptions: + type: object + additionalProperties: false + properties: + ignoreCase: + type: boolean + required: + - lhs + - cmp + outcome: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + required: + - type + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + passPromille: + type: number + required: + - type + - base + - passPromille + required: + - conditions + - outcome + - id + maxItems: 10000 + include: + type: object + additionalProperties: + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + exclude: + type: object + additionalProperties: + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + hint: + type: string + required: + - slug + - label + - data + - hint + get: + description: List all feature flag segments for a project. + operationId: listFlagSegments + security: + - bearerToken: [] + summary: List segments + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + data: + items: + $ref: '#/components/schemas/Segment' + type: array + required: + - data + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: withMetadata + description: Whether to include metadata + in: query + required: false + schema: + type: boolean + description: Whether to include metadata + default: false + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id_or_name}/feature-flags/segments/{segment_id_or_slug}: + get: + description: Retrieve a feature flag segment by ID or slug. + operationId: getFlagSegment + security: + - bearerToken: [] + summary: Get a segment + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Segment' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: segment_id_or_slug + description: The segment slug + in: path + required: true + schema: + description: The segment slug + type: string + - name: withMetadata + description: Whether to include metadata + in: query + required: false + schema: + type: boolean + description: Whether to include metadata + default: false + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Delete a feature flag segment. + operationId: deleteFlagSegment + security: + - bearerToken: [] + summary: Delete a segment + tags: + - feature-flags + responses: + '204': + description: '' + '304': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: segment_id_or_slug + description: The segment slug + in: path + required: true + schema: + description: The segment slug + type: string + - name: withMetadata + description: Whether to include metadata + in: query + required: false + schema: + type: boolean + description: Whether to include metadata + default: false + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update an existing feature flag segment. + operationId: updateFlagSegment + security: + - bearerToken: [] + summary: Update a segment + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + description: + type: string + createdBy: + type: string + usedByFlags: + items: + type: string + type: array + usedBySegments: + items: + type: string + type: array + data: + properties: + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - all + required: + - type + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + passPromille: + type: number + required: + - base + - passPromille + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + include: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + exclude: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + id: + type: string + label: + type: string + slug: + type: string + createdAt: + type: number + updatedAt: + type: number + projectId: + type: string + typeName: + type: string + enum: + - segment + hint: + type: string + metadata: + properties: + creator: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: object + required: + - createdAt + - data + - hint + - id + - label + - projectId + - slug + - typeName + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - name: segment_id_or_slug + description: The segment slug + in: path + required: true + schema: + description: The segment slug + type: string + - name: withMetadata + description: Whether to include metadata + in: query + required: false + schema: + type: boolean + description: Whether to include metadata + default: false + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + operations: + type: array + items: + type: object + additionalProperties: false + properties: + action: + type: string + enum: + - add + - remove + field: + type: string + enum: + - include + - exclude + entity: + type: string + attribute: + type: string + value: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + required: + - action + - field + - entity + - attribute + - value + label: + type: string + description: + type: string + data: + type: object + additionalProperties: false + description: The data of the segment + properties: + rules: + type: array + items: + type: object + additionalProperties: false + properties: + id: + type: string + conditions: + type: array + items: + type: object + additionalProperties: false + properties: + lhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + required: + - type + - type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + cmp: + type: string + enum: + - eq + - '!eq' + - oneOf + - '!oneOf' + - containsAllOf + - containsAnyOf + - containsNoneOf + - startsWith + - '!startsWith' + - endsWith + - '!endsWith' + - contains + - '!contains' + - ex + - '!ex' + - gt + - gte + - lt + - lte + - regex + - '!regex' + - before + - after + rhs: + anyOf: + - type: object + additionalProperties: false + properties: + type: + type: string + enum: + - list/inline + - list + items: + type: array + items: + anyOf: + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + - type: object + additionalProperties: false + properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + required: + - type + - items + - type: object + additionalProperties: false + properties: + type: {} + pattern: + type: string + flags: + type: string + required: + - type + - pattern + - flags + - type: string + - type: number + - type: boolean + cmpOptions: + type: object + additionalProperties: false + properties: + ignoreCase: + type: boolean + required: + - lhs + - cmp + outcome: + anyOf: + - type: object + additionalProperties: false + properties: + type: {} + required: + - type + - type: object + additionalProperties: false + properties: + type: {} + base: + type: object + additionalProperties: false + properties: + type: {} + kind: + type: string + attribute: + type: string + required: + - type + - kind + - attribute + passPromille: + type: number + required: + - type + - base + - passPromille + required: + - conditions + - outcome + - id + maxItems: 10000 + include: + type: object + additionalProperties: + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + exclude: + type: object + additionalProperties: + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + note: + type: string + value: + type: string + required: + - value + maxItems: 10000 + hint: + type: string + /v1/deployments/{deployment_id}/feature-flags: + get: + description: Retrieve the feature flags of a deployment. + operationId: getDeploymentFeatureFlags + security: + - bearerToken: [] + summary: Retrieve the feature flags of a deployment + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + flags: + items: + type: string + description: (opaque JSON object) + type: array + status: + nullable: true + properties: + deploymentId: + type: string + projectId: + type: string + responseStatus: + type: number + description: The HTTP status code from the flags discovery endpoint. + flagCount: + type: number + description: The number of flag definitions returned by the flags discovery endpoint. + createdAt: + type: number + required: + - createdAt + - deploymentId + - flagCount + - projectId + - responseStatus + type: object + required: + - flags + - status + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: deployment_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id_or_name}/feature-flags/sdk-keys: + get: + description: Gets all SDK keys for a project. + operationId: getSdkKeys + security: + - bearerToken: [] + summary: Get all SDK keys + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + data: + items: + properties: + hashKey: + type: string + projectId: + type: string + type: + type: string + enum: + - client + - mobile + - server + environment: + type: string + createdBy: + type: string + createdAt: + type: number + updatedAt: + type: number + label: + type: string + deletedAt: + type: number + partialKeyValue: + type: string + description: Partially-masked representation of the SDK key value, safe to display in UIs. The value is the `vf__` prefix followed by the first 3 characters of the secret portion and a fixed 8-character `*` mask (e.g. `vf_server_abc********`). + required: + - createdAt + - createdBy + - environment + - hashKey + - partialKeyValue + - projectId + - type + - updatedAt + type: object + description: Shared metadata for a Flags SDK key, safe to return on both LIST and CREATE. Never contains cleartext secrets. + type: array + required: + - data + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + put: + description: Creates an SDK key. + operationId: createSdkKey + security: + - bearerToken: [] + summary: Create an SDK key + tags: + - feature-flags + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/FlagsSdkKeyWithSecrets' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + description: The project id or name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - sdkKeyType + - environment + properties: + sdkKeyType: + type: string + enum: + - server + - mobile + - client + environment: + type: string + label: + type: string + /v1/projects/{project_id_or_name}/feature-flags/sdk-keys/{hash_key}: + delete: + description: Deletes an SDK key. + operationId: deleteSdkKey + security: + - bearerToken: [] + summary: Delete an SDK key + tags: + - feature-flags + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: project_id_or_name + description: The project id or name + in: path + required: true + schema: + type: string + description: The project id or name + - name: hash_key + description: The SDK key hash key to delete + in: path + required: true + schema: + type: string + description: The SDK key hash key to delete + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + Flag: + properties: + description: + type: string + variants: + items: + type: string + description: (opaque JSON object) + type: array + id: + type: string + environments: + additionalProperties: + properties: + reuse: + properties: + active: + type: boolean + enum: + - false + - true + environment: + type: string + required: + - active + - environment + type: object + targets: + additionalProperties: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + revision: + type: number + pausedOutcome: + properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + fallthrough: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + active: + type: boolean + enum: + - false + - true + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - variant + variantId: + type: string + required: + - type + - variantId + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + weights: + additionalProperties: + type: number + type: object + defaultVariantId: + type: string + required: + - base + - defaultVariantId + - type + - weights + type: object + - properties: + type: + type: string + enum: + - rollout + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + defaultVariantId: + type: string + startTimestamp: + type: number + rollFromVariantId: + type: string + rollToVariantId: + type: string + slots: + items: + properties: + promille: + type: number + durationMs: + type: number + required: + - durationMs + - promille + type: object + type: array + required: + - base + - defaultVariantId + - rollFromVariantId + - rollToVariantId + - slots + - startTimestamp + - type + type: object + - properties: + type: + type: string + enum: + - experiment + required: + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + required: + - active + - fallthrough + - pausedOutcome + - rules + type: object + type: object + kind: + type: string + enum: + - boolean + - json + - number + - string + revision: + type: number + seed: + type: number + state: + type: string + enum: + - active + - archived + maintainerIds: + items: + type: string + type: array + permanent: + type: boolean + enum: + - false + - true + tags: + items: + type: string + type: array + slug: + type: string + createdAt: + type: number + updatedAt: + type: number + updatedBy: + type: string + createdBy: + type: string + ownerId: + type: string + projectId: + type: string + typeName: + type: string + enum: + - flag + metadata: + properties: + creator: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: object + required: + - createdAt + - createdBy + - environments + - id + - kind + - ownerId + - projectId + - revision + - seed + - slug + - state + - typeName + - updatedAt + - variants + type: object + MarketplaceFlag: + properties: + typeName: + type: string + enum: + - marketplaceFlag + id: + type: string + externalId: + type: string + slug: + type: string + origin: + type: string + ownerId: + type: string + projectId: + type: string + resourceId: + type: string + integrationConfigurationId: + type: string + state: + type: string + enum: + - active + - archived + name: + type: string + description: + type: string + category: + type: string + enum: + - experiment + - flag + createdAt: + type: number + updatedAt: + type: number + required: + - externalId + - id + - integrationConfigurationId + - origin + - ownerId + - projectId + - resourceId + - slug + - state + - typeName + type: object + Segment: + properties: + description: + type: string + createdBy: + type: string + usedByFlags: + items: + type: string + type: array + usedBySegments: + items: + type: string + type: array + data: + properties: + rules: + items: + properties: + id: + type: string + outcome: + oneOf: + - properties: + type: + type: string + enum: + - all + required: + - type + type: object + - properties: + type: + type: string + enum: + - split + base: + properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + passPromille: + type: number + required: + - base + - passPromille + - type + type: object + conditions: + items: + properties: + rhs: + oneOf: + - type: string + - type: number + - properties: + type: + type: string + enum: + - list + - list/inline + items: + items: + oneOf: + - properties: + label: + type: string + note: + type: string + value: + type: number + required: + - value + type: object + - properties: + label: + type: string + note: + type: string + value: + type: string + required: + - value + type: object + type: array + required: + - items + - type + type: object + - properties: + type: + type: string + enum: + - regex + pattern: + type: string + flags: + type: string + required: + - flags + - pattern + - type + type: object + - type: boolean + enum: + - false + - true + cmpOptions: + properties: + ignoreCase: + type: boolean + enum: + - false + - true + type: object + lhs: + oneOf: + - properties: + type: + type: string + enum: + - segment + required: + - type + type: object + - properties: + type: + type: string + enum: + - entity + kind: + type: string + attribute: + type: string + required: + - attribute + - kind + - type + type: object + cmp: + type: string + enum: + - '!contains' + - '!endsWith' + - '!eq' + - '!ex' + - '!oneOf' + - '!regex' + - '!startsWith' + - after + - before + - contains + - containsAllOf + - containsAnyOf + - containsNoneOf + - endsWith + - eq + - ex + - gt + - gte + - lt + - lte + - oneOf + - regex + - startsWith + required: + - cmp + - lhs + type: object + type: array + required: + - conditions + - id + - outcome + type: object + type: array + include: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + exclude: + additionalProperties: + additionalProperties: + items: + properties: + note: + type: string + value: + type: string + required: + - value + type: object + type: array + type: object + type: object + type: object + id: + type: string + label: + type: string + slug: + type: string + createdAt: + type: number + updatedAt: + type: number + projectId: + type: string + typeName: + type: string + enum: + - segment + hint: + type: string + metadata: + properties: + creator: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: object + required: + - createdAt + - data + - hint + - id + - label + - projectId + - slug + - typeName + - updatedAt + type: object + FlagsSdkKeyWithSecrets: + properties: + hashKey: + type: string + projectId: + type: string + type: + type: string + enum: + - client + - mobile + - server + environment: + type: string + createdBy: + type: string + createdAt: + type: number + updatedAt: + type: number + label: + type: string + deletedAt: + type: number + partialKeyValue: + type: string + description: Partially-masked representation of the SDK key value, safe to display in UIs. The value is the `vf__` prefix followed by the first 3 characters of the secret portion and a fixed 8-character `*` mask (e.g. `vf_server_abc********`). + keyValue: + type: string + description: Cleartext value of the SDK key. + tokenValue: + type: string + description: Cleartext value of the Global Config token, when the project has a Global Config connection. + required: + - createdAt + - createdBy + - environment + - hashKey + - keyValue + - partialKeyValue + - projectId + - type + - updatedAt + type: object + description: Representation of a Flags SDK key returned by CREATE. Includes cleartext secrets (`keyValue`, `tokenValue`, `connectionString`) which are only ever disclosed once, on creation. + x-stackQL-resources: + flags: + id: vercel.feature_flags.flags + name: flags + title: Flags + methods: + list: + operation: + $ref: '#/paths/~1v2~1projects~1{project_id_or_name}~1feature-flags~1flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + list_v1: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1flags/put' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1flags~1{flag_id_or_slug}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1flags~1{flag_id_or_slug}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1flags~1{flag_id_or_slug}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/flags/methods/get' + - $ref: '#/components/x-stackQL-resources/flags/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/flags/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/flags/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/flags/methods/delete' + replace: [] + flag_versions: + id: vercel.feature_flags.flag_versions + name: flag_versions + title: Flag Versions + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1flags~1{flag_id_or_slug}~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.versions + request: + nativeCasing: camel + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/flag_versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + settings: + id: vercel.feature_flags.settings + name: settings + title: Settings + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1settings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1settings/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/settings/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/settings/methods/update' + delete: [] + replace: [] + team_settings: + id: vercel.feature_flags.team_settings + name: team_settings + title: Team Settings + methods: + list: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1feature-flags~1settings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/team_settings/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + team_flags: + id: vercel.feature_flags.team_flags + name: team_flags + title: Team Flags + methods: + list: + operation: + $ref: '#/paths/~1v2~1teams~1{team_id}~1feature-flags~1flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + list_v1: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1feature-flags~1flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/team_flags/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + segments: + id: vercel.feature_flags.segments + name: segments + title: Segments + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1segments/put' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1segments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1segments~1{segment_id_or_slug}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1segments~1{segment_id_or_slug}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1segments~1{segment_id_or_slug}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/segments/methods/get' + - $ref: '#/components/x-stackQL-resources/segments/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/segments/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/segments/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/segments/methods/delete' + replace: [] + deployment_flags: + id: vercel.feature_flags.deployment_flags + name: deployment_flags + title: Deployment Flags + methods: + get: + operation: + $ref: '#/paths/~1v1~1deployments~1{deployment_id}~1feature-flags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployment_flags/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + sdk_keys: + id: vercel.feature_flags.sdk_keys + name: sdk_keys + title: Sdk Keys + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1sdk-keys/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1sdk-keys/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id_or_name}~1feature-flags~1sdk-keys~1{hash_key}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sdk_keys/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/sdk_keys/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/sdk_keys/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/integrations.yaml b/providers/src/vercel/v00.00.00000/services/integrations.yaml index 01470156..0234fdbe 100644 --- a/providers/src/vercel/v00.00.00000/services/integrations.yaml +++ b/providers/src/vercel/v00.00.00000/services/integrations.yaml @@ -1,500 +1,229 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: integrations API + description: vercel integrations API version: 0.0.1 - title: Vercel API - integrations - description: integrations -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - configuration: - id: vercel.integrations.configuration - name: configuration - title: Configuration - methods: - get_configurations: - operation: - $ref: '#/paths/~1v1~1integrations~1configurations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_configuration: - operation: - $ref: '#/paths/~1v1~1integrations~1configuration~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_configuration: - operation: - $ref: '#/paths/~1v1~1integrations~1configuration~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/configuration/methods/get_configuration' - - $ref: '#/components/x-stackQL-resources/configuration/methods/get_configurations' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/configuration/methods/delete_configuration' - git_namespaces: - id: vercel.integrations.git_namespaces - name: git_namespaces - title: Git Namespaces - methods: - git_namespaces: - operation: - $ref: '#/paths/~1v1~1integrations~1git-namespaces/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/git_namespaces/methods/git_namespaces' - insert: [] - update: [] - delete: [] - search_repo: - id: vercel.integrations.search_repo - name: search_repo - title: Search Repo - methods: - git_namespaces: - operation: - $ref: '#/paths/~1v1~1integrations~1search-repo/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/search_repo/methods/git_namespaces' - insert: [] - update: [] - delete: [] paths: - /v1/integrations/configurations: + /v1/integrations/git-namespaces: get: - description: 'Allows to retrieve all configurations for an authenticated integration. When the `project` view is used, configurations generated for the authorization flow will be filtered out of the results.' - operationId: getConfigurations + description: Lists git namespaces for a supported provider. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider is not provided, it will try to obtain it from the user that authenticated the request. + operationId: gitNamespaces security: - bearerToken: [] - summary: Get configurations for the authenticated user or team + summary: List git namespaces by provider tags: - integrations responses: '200': - description: The list of configurations for the authenticated user + description: '' content: application/json: schema: - oneOf: - - items: + $ref: '#/components/schemas/GitNamespacesResponse' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: host + description: The custom Git host if using a custom Git provider, like GitHub Enterprise Server + in: query + schema: + description: The custom Git host if using a custom Git provider, like GitHub Enterprise Server + type: string + example: ghes-test.now.systems + - name: provider + in: query + schema: + enum: + - github + - github-limited + - github-custom-host + - gitlab + - bitbucket + - name: viewerMetadata + description: When true, includes the viewer object for each namespace. + in: query + schema: + description: When true, includes the viewer object for each namespace. + type: boolean + /v1/integrations/search-repo: + get: + description: Lists git repositories linked to a namespace `id` for a supported provider. A specific namespace `id` can be obtained via the `git-namespaces` endpoint. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider or namespace is not provided, it will try to obtain it from the user that authenticated the request. + operationId: searchRepo + security: + - bearerToken: [] + summary: List git repositories linked to namespace by provider + tags: + - integrations + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + error: + properties: + code: + type: string + enum: + - installation_not_found + message: + type: string + required: + - code + - message + type: object + gitAccount: + properties: + provider: + type: string + namespaceId: + nullable: true + type: string + required: + - namespaceId + - provider + type: object + repos: + items: properties: - completedAt: - type: number - description: A timestamp that tells you when the configuration was installed successfully - example: 1558531915505 - createdAt: - type: number - description: A timestamp that tells you when the configuration was created - example: 1558531915505 id: type: string - description: The unique identifier of the configuration - example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F - integrationId: - type: string - description: The unique identifier of the app the configuration was created for - example: oac_xzpVzcUOgcB1nrVlirtKhbWV - ownerId: - type: string - description: The user or team ID that owns the configuration - example: kr1PsOIzqEL5Xg6M4VZcZosf - projects: - items: - type: string - type: array - description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' - example: - - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO - source: + provider: type: string enum: - - marketplace - - deploy-button - - external - description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. - example: marketplace - removedLogDrainsAt: - type: number - removedProjectEnvsAt: - type: number - removedTokensAt: - type: number - removedWebhooksAt: - type: number - slug: + - cursor-origin + url: type: string - description: The slug of the integration the configuration is created for. - example: slack - teamId: - nullable: true + name: type: string - description: 'When the configuration was created for a team, this will show the ID of the team.' - example: team_nLlpyC6RE1qxydlFKbrxDlud - type: + slug: type: string - enum: - - integration-configuration - updatedAt: - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - userId: + namespace: type: string - description: The ID of the user that created the configuration. - example: kr1PsOIzqEL5Xg6M4VZcZosf - scopes: - items: - type: string - type: array - description: The resources that are allowed to be accessed by the configuration. - example: - - 'read:project' - - 'read-write:log-drain' - scopesQueue: - items: - properties: - scopes: - properties: - added: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - upgraded: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - required: - - added - - upgraded - type: object - note: - type: string - requestedAt: - type: number - confirmedAt: - type: number - required: - - scopes - - note - - requestedAt - type: object - type: array - disabledAt: - type: number - description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' - example: 1558531915505 - deletedAt: - nullable: true - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - disabledReason: + ownerType: type: string enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - account-plan-downgrade - - disabled-by-admin - - original-owner-left-the-team - required: - - createdAt - - id - - integrationId - - ownerId - - slug - - type - - updatedAt - - userId - - scopes - type: object - type: array - - items: - properties: - integration: + - team + - user + owner: properties: - name: - type: string - icon: + id: type: string - category: + name: type: string - isLegacy: - type: boolean - flags: - items: - type: string - type: array - assignedBetaLabelAt: - type: number required: + - id - name - - icon - - category - - isLegacy type: object - completedAt: - type: number - description: A timestamp that tells you when the configuration was installed successfully - example: 1558531915505 - createdAt: - type: number - description: A timestamp that tells you when the configuration was created - example: 1558531915505 - id: - type: string - description: The unique identifier of the configuration - example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F - integrationId: - type: string - description: The unique identifier of the app the configuration was created for - example: oac_xzpVzcUOgcB1nrVlirtKhbWV - ownerId: - type: string - description: The user or team ID that owns the configuration - example: kr1PsOIzqEL5Xg6M4VZcZosf - projects: - items: - type: string - type: array - description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' - example: - - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO - source: - type: string + private: + type: boolean enum: - - marketplace - - deploy-button - - external - description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. - example: marketplace - removedLogDrainsAt: - type: number - removedProjectEnvsAt: - type: number - removedTokensAt: - type: number - removedWebhooksAt: - type: number - slug: - type: string - description: The slug of the integration the configuration is created for. - example: slack - teamId: - nullable: true - type: string - description: 'When the configuration was created for a team, this will show the ID of the team.' - example: team_nLlpyC6RE1qxydlFKbrxDlud - type: + - false + - true + defaultBranch: type: string - enum: - - integration-configuration updatedAt: type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - userId: - type: string - description: The ID of the user that created the configuration. - example: kr1PsOIzqEL5Xg6M4VZcZosf - scopes: - items: - type: string - type: array - description: The resources that are allowed to be accessed by the configuration. - example: - - 'read:project' - - 'read-write:log-drain' - scopesQueue: - items: - properties: - scopes: - properties: - added: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - upgraded: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - required: - - added - - upgraded - type: object - note: - type: string - requestedAt: - type: number - confirmedAt: - type: number - required: - - scopes - - note - - requestedAt - type: object - type: array - disabledAt: - type: number - description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' - example: 1558531915505 - deletedAt: - nullable: true - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - disabledReason: - type: string - enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - account-plan-downgrade - - disabled-by-admin - - original-owner-left-the-team required: - - integration - - createdAt + - defaultBranch - id - - integrationId - - ownerId + - name + - namespace + - owner + - ownerType + - private + - provider - slug - - type - updatedAt - - userId - - scopes + - url type: object type: array + required: + - error + - gitAccount + - repos + type: object '400': description: One of the provided values in the request query is invalid. '401': description: '' '403': description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + '500': + description: '' + '502': + description: '' parameters: - - name: view + - name: query in: query - required: true schema: type: string - enum: - - account - - project - - description: The Team identifier or slug to perform the request on behalf of. + - name: namespaceId + in: query + schema: + nullable: true + oneOf: + - type: string + - type: number + - name: provider + in: query + schema: + enum: + - github + - github-limited + - github-custom-host + - gitlab + - bitbucket + - cursor-origin + - name: installationId + in: query + schema: + type: string + - name: host + description: The custom Git host if using a custom Git provider, like GitHub Enterprise Server + in: query + schema: + description: The custom Git host if using a custom Git provider, like GitHub Enterprise Server + type: string + example: ghes-test.now.systems + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v1/integrations/configuration/{id}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/integrations/integration/{integration_id_or_slug}/products/{product_id_or_slug}/plans: get: - description: Allows to retrieve a the configuration with the provided id in case it exists. The authenticated user or team must be the owner of the config in order to access it. - operationId: getConfiguration + description: Get a list of billing plans for an integration and product. + operationId: getBillingPlans security: - bearerToken: [] - summary: Retrieve an integration configuration + summary: List integration billing plans tags: - integrations responses: @@ -503,607 +232,5725 @@ paths: content: application/json: schema: - oneOf: - - properties: - completedAt: - type: number - description: A timestamp that tells you when the configuration was installed successfully - example: 1558531915505 - createdAt: - type: number - description: A timestamp that tells you when the configuration was created - example: 1558531915505 - id: - type: string - description: The unique identifier of the configuration - example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F - integrationId: - type: string - description: The unique identifier of the app the configuration was created for - example: oac_xzpVzcUOgcB1nrVlirtKhbWV - ownerId: - type: string - description: The user or team ID that owns the configuration - example: kr1PsOIzqEL5Xg6M4VZcZosf - projects: - items: + properties: + plans: + items: + properties: + type: type: string - type: array - description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' - example: - - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO - source: - type: string - enum: - - marketplace - - deploy-button - - external - description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. - example: marketplace - removedLogDrainsAt: - type: number - removedProjectEnvsAt: - type: number - removedTokensAt: - type: number - removedWebhooksAt: - type: number - slug: - type: string - description: The slug of the integration the configuration is created for. - example: slack - teamId: - nullable: true - type: string - description: 'When the configuration was created for a team, this will show the ID of the team.' - example: team_nLlpyC6RE1qxydlFKbrxDlud - type: - type: string - enum: - - integration-configuration - updatedAt: - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - userId: - type: string - description: The ID of the user that created the configuration. - example: kr1PsOIzqEL5Xg6M4VZcZosf - scopes: - items: + enum: + - prepayment + - subscription + id: type: string - type: array - description: The resources that are allowed to be accessed by the configuration. - example: - - 'read:project' - - 'read-write:log-drain' - scopesQueue: - items: - properties: - scopes: - properties: - added: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - upgraded: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - required: - - added - - upgraded - type: object - note: - type: string - requestedAt: - type: number - confirmedAt: - type: number - required: - - scopes - - note - - requestedAt - type: object - type: array - disabledAt: - type: number - description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' - example: 1558531915505 - deletedAt: - nullable: true - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - disabledReason: - type: string - enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - account-plan-downgrade - - disabled-by-admin - - original-owner-left-the-team - required: - - createdAt - - id - - integrationId - - ownerId - - slug - - type - - updatedAt - - userId - - scopes - type: object - - properties: - projectSelection: - type: string - enum: - - selected - - all - description: A string representing the permission for projects. Possible values are `all` or `selected`. - example: all - completedAt: - type: number - description: A timestamp that tells you when the configuration was installed successfully - example: 1558531915505 - createdAt: - type: number - description: A timestamp that tells you when the configuration was created - example: 1558531915505 - id: - type: string - description: The unique identifier of the configuration - example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F - integrationId: - type: string - description: The unique identifier of the app the configuration was created for - example: oac_xzpVzcUOgcB1nrVlirtKhbWV - ownerId: - type: string - description: The user or team ID that owns the configuration - example: kr1PsOIzqEL5Xg6M4VZcZosf - projects: - items: + name: type: string - type: array - description: 'When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access.' - example: - - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO - source: - type: string - enum: - - marketplace - - deploy-button - - external - description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. - example: marketplace - removedLogDrainsAt: - type: number - removedProjectEnvsAt: - type: number - removedTokensAt: - type: number - removedWebhooksAt: - type: number - slug: - type: string - description: The slug of the integration the configuration is created for. - example: slack - teamId: - nullable: true - type: string - description: 'When the configuration was created for a team, this will show the ID of the team.' - example: team_nLlpyC6RE1qxydlFKbrxDlud - type: - type: string - enum: - - integration-configuration - updatedAt: - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - userId: - type: string - description: The ID of the user that created the configuration. - example: kr1PsOIzqEL5Xg6M4VZcZosf - scopes: - items: + scope: type: string - type: array - description: The resources that are allowed to be accessed by the configuration. - example: - - 'read:project' - - 'read-write:log-drain' - scopesQueue: - items: - properties: - scopes: - properties: - added: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - upgraded: - items: - type: string - enum: - - 'read:integration-configuration' - - 'read-write:integration-configuration' - - 'read:deployment' - - 'read-write:deployment' - - 'read-write:deployment-check' - - 'read:project' - - 'read-write:project' - - 'read-write:project-env-vars' - - 'read-write:global-project-env-vars' - - 'read:team' - - 'read:user' - - 'read-write:log-drain' - - 'read:domain' - - 'read-write:domain' - - 'read-write:edge-config' - - 'read-write:otel-endpoint' - - 'read:monitoring' - type: array - required: - - added - - upgraded - type: object - note: - type: string - requestedAt: - type: number - confirmedAt: - type: number - required: - - scopes - - note - - requestedAt - type: object - type: array - disabledAt: - type: number - description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' - example: 1558531915505 - deletedAt: - nullable: true - type: number - description: A timestamp that tells you when the configuration was updated. - example: 1558531915505 - disabledReason: - type: string - enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - account-plan-downgrade - - disabled-by-admin - - original-owner-left-the-team - canConfigureOpenTelemetry: - type: boolean - required: - - projectSelection - - createdAt - - id - - integrationId - - ownerId - - slug - - type - - updatedAt - - userId - - scopes - type: object + enum: + - installation + - resource + description: + type: string + paymentMethodRequired: + type: boolean + enum: + - false + - true + preauthorizationAmount: + type: number + initialCharge: + type: string + minimumAmount: + type: string + maximumAmount: + type: string + maximumAmountAutoPurchasePerPeriod: + type: string + cost: + type: string + details: + items: + properties: + label: + type: string + value: + type: string + required: + - label + type: object + type: array + highlightedDetails: + items: + properties: + label: + type: string + value: + type: string + required: + - label + type: object + type: array + quote: + items: + properties: + line: + type: string + amount: + type: string + required: + - amount + - line + type: object + type: array + effectiveDate: + type: string + disabled: + type: boolean + enum: + - false + - true + required: + - description + - id + - name + - paymentMethodRequired + - scope + - type + type: object + type: array + required: + - plans + type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': - description: The configuration was not found + description: '' + '410': + description: '' parameters: - - name: id - description: ID of the configuration to check + - name: integration_id_or_slug in: path required: true schema: type: string - description: ID of the configuration to check - example: icfg_cuwj0AdCdH3BwWT4LPijCC7t - - description: The Team identifier or slug to perform the request on behalf of. + - name: integrationConfigurationId in: query - name: teamId + required: false + schema: + type: string + - name: product_id_or_slug + in: path required: true schema: type: string - delete: - description: 'Allows to remove the configuration with the `id` provided in the parameters. The configuration and all of its resources will be removed. This includes Webhooks, LogDrains and Project Env variables.' - operationId: deleteConfiguration + - name: metadata + in: query + required: false + schema: + type: string + - name: source + in: query + required: false + schema: + type: string + enum: + - marketplace + - deploy-button + - external + - v0 + - resource-claims + - cli + - oauth + - backoffice + - import-recommended-integrations + - organization + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/integrations/installations/{integration_configuration_id}/resources/{resource_id}/connections: + post: + description: Connects an integration resource to a Vercel project. This endpoint establishes a connection between a provisioned integration resource (from storage APIs like `POST /v1/storage/stores/integration/direct`) and a specific Vercel project. + operationId: connectIntegrationResourceToProject security: - bearerToken: [] - summary: Delete an integration configuration + summary: Connect integration resource to project tags: - integrations responses: - '204': - description: The configuration was successfully removed + '201': + description: '' '400': - description: One of the provided values in the request query is invalid. + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': - description: The configuration was not found + description: '' + '410': + description: '' parameters: - - name: id - description: ID of the configuration to delete + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id in: path required: true schema: type: string - description: ID of the configuration to delete - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - /v1/integrations/git-namespaces: + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - projectId + properties: + projectId: + type: string + envVarEnvironments: + type: array + items: + type: string + enum: + - production + - preview + - development + makeEnvVarsSensitive: + type: boolean + /v1/integrations/configurations: get: - description: 'Lists git namespaces for a supported provider. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider is not provided, it will try to obtain it from the user that authenticated the request.' - operationId: gitNamespaces + description: Allows to retrieve all configurations for an authenticated integration. When the `project` view is used, configurations generated for the authorization flow will be filtered out of the results. + operationId: getConfigurations security: - bearerToken: [] - summary: List git namespaces by provider + summary: Get configurations for the authenticated user or team tags: - integrations responses: '200': - description: '' + description: The list of configurations for the authenticated user content: application/json: schema: - items: - properties: - provider: - type: string - slug: - type: string - id: - oneOf: - - type: string - - type: number - ownerType: - type: string - name: - type: string - isAccessRestricted: - type: boolean - installationId: - type: number - requireReauth: - type: boolean - required: - - provider - - slug - - id - - ownerType - type: object - type: array + $ref: '#/components/schemas/GetConfigurationsResponse' '400': description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - name: host - description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' + - name: view in: query + required: true schema: - description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' type: string - example: ghes-test.now.systems - - name: provider - in: query + enum: + - account + - project + - name: installationType + in: query + required: false schema: type: string enum: - - github - - github-custom-host - - gitlab - - bitbucket - - description: The Team identifier or slug to perform the request on behalf of. + - marketplace + - external + - provisioning + - name: integrationIdOrSlug + description: ID of the integration + in: query + required: false + schema: + type: string + description: ID of the integration + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - /v1/integrations/search-repo: + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + x-speakeasy-test: false + /v1/integrations/configuration/{id}: get: - description: 'Lists git repositories linked to a namespace `id` for a supported provider. A specific namespace `id` can be obtained via the `git-namespaces` endpoint. Supported providers are `github`, `gitlab` and `bitbucket`. If the provider or namespace is not provided, it will try to obtain it from the user that authenticated the request.' - operationId: gitNamespaces + description: Allows to retrieve a the configuration with the provided id in case it exists. The authenticated user or team must be the owner of the config in order to access it. + operationId: getConfiguration security: - bearerToken: [] - summary: List git repositories linked to namespace by provider + summary: Retrieve an integration configuration tags: - integrations responses: '200': - description: '' + description: The configuration with the provided id content: application/json: schema: properties: - gitAccount: + projectSelection: + type: string + enum: + - all + - selected + description: A string representing the permission for projects. Possible values are `all` or `selected`. + example: all + notification: properties: - provider: + level: type: string enum: - - github - - github-custom-host - - gitlab - - bitbucket - namespaceId: - nullable: true - oneOf: - - type: string - - type: number + - error + - info + - warn + title: + type: string + message: + type: string + href: + type: string required: - - provider - - namespaceId + - level + - title type: object - repos: + transferRequest: + oneOf: + - properties: + kind: + type: string + enum: + - transfer-to-marketplace + metadata: + additionalProperties: true + type: object + billingPlan: + properties: + id: + type: string + type: + type: string + enum: + - prepayment + - subscription + scope: + type: string + enum: + - installation + - resource + name: + type: string + description: + type: string + paymentMethodRequired: + type: boolean + enum: + - false + - true + preauthorizationAmount: + type: number + required: + - description + - id + - name + - type + type: object + requestId: + type: string + transferId: + type: string + requester: + properties: + name: + type: string + email: + type: string + required: + - name + type: object + createdAt: + type: number + expiresAt: + type: number + discardedAt: + type: number + discardedBy: + type: string + approvedAt: + type: number + approvedBy: + type: string + authorizationId: + type: string + required: + - createdAt + - expiresAt + - kind + - requestId + - requester + - transferId + type: object + - properties: + kind: + type: string + enum: + - transfer-from-marketplace + requestId: + type: string + transferId: + type: string + requester: + properties: + name: + type: string + email: + type: string + required: + - name + type: object + createdAt: + type: number + expiresAt: + type: number + discardedAt: + type: number + discardedBy: + type: string + approvedAt: + type: number + approvedBy: + type: string + authorizationId: + type: string + required: + - createdAt + - expiresAt + - kind + - requestId + - requester + - transferId + type: object + projects: + items: + type: string + type: array + description: When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access. + example: + - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO + status: + type: string + enum: + - error + - onboarding + - pending + - ready + - resumed + - suspended + - uninstalled + description: The configuration status. Optional. If not defined, assume 'ready'. + type: + type: string + enum: + - integration-configuration + id: + type: string + description: The unique identifier of the configuration + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + slug: + type: string + description: The slug of the integration the configuration is created for. + example: slack + createdAt: + type: number + description: A timestamp that tells you when the configuration was created + example: 1558531915505 + updatedAt: + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + ownerId: + type: string + description: The user or team ID that owns the configuration + example: kr1PsOIzqEL5Xg6M4VZcZosf + deletedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration was deleted. + example: 1558531915505 + integrationId: + type: string + description: The unique identifier of the app the configuration was created for + example: oac_xzpVzcUOgcB1nrVlirtKhbWV + userId: + type: string + description: The ID of the user that created the configuration. + example: kr1PsOIzqEL5Xg6M4VZcZosf + teamId: + nullable: true + type: string + description: When the configuration was created for a team, this will show the ID of the team. + example: team_nLlpyC6RE1qxydlFKbrxDlud + scopes: + items: + type: string + type: array + description: The resources that are allowed to be accessed by the configuration. + example: + - read:project + - read-write:log-drain + canConfigureOpenTelemetry: + type: boolean + enum: + - false + - true + completedAt: + type: number + description: A timestamp that tells you when the configuration was installed successfully + example: 1558531915505 + externalId: + type: string + description: An external identifier defined by the integration vendor. + source: + type: string + enum: + - backoffice + - cli + - deploy-button + - external + - import-recommended-integrations + - marketplace + - oauth + - organization + - resource-claims + - v0 + description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. + example: marketplace + disabledAt: + type: number + description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' + example: 1558531915505 + deleteRequestedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration deletion has been started for cases when the deletion needs to be settled/approved by partners, such as when marketplace invoices have been paid. + example: 1558531915505 + customerDeleteRequestedAt: + nullable: true + type: number + description: Record when the customer initited deletion, independent of whether `deleteRequestedAt` gets set. + disabledReason: + type: string + enum: + - account-plan-downgrade + - disabled-by-admin + - disabled-by-owner + - feature-not-available + - original-owner-left-the-team + - original-owner-role-downgraded + installationType: + type: string + enum: + - external + - marketplace + description: 'Defines the installation type. - ''external'' integrations are installed via the existing integrations flow - ''marketplace'' integrations are natively installed: - when accepting the TOS of a partner during the store creation process - if undefined, assume ''external''' + acceptedPoliciesInheritedFromInstallationId: + type: string + description: Historical parent installation from which acceptedPolicies were inherited. This is immutable provenance, not current authorization or relationship truth. + required: + - createdAt + - id + - integrationId + - notification + - ownerId + - projectSelection + - scopes + - slug + - transferRequest + - type + - updatedAt + - userId + type: object + description: The configuration with the provided id + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: The configuration was not found + '410': + description: '' + parameters: + - name: id + description: ID of the configuration to check + in: path + required: true + schema: + type: string + description: ID of the configuration to check + example: icfg_cuwj0AdCdH3BwWT4LPijCC7t + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Allows to remove the configuration with the `id` provided in the parameters. The configuration and all of its resources will be removed. This includes Webhooks, LogDrains and Project Env variables. + operationId: deleteConfiguration + security: + - bearerToken: [] + summary: Delete an integration configuration + tags: + - integrations + responses: + '204': + description: The configuration was successfully removed + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: The configuration was not found + '410': + description: '' + parameters: + - name: id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/integrations/configuration/{id}/products: + get: + description: Returns products available for an integration configuration. Each product includes a `metadataSchema` field with the JSON Schema for required and optional metadata fields. + operationId: getConfigurationProducts + security: + - bearerToken: [] + summary: List products for integration configuration + tags: + - integrations + responses: + '200': + description: List of products available for this integration configuration + content: + application/json: + schema: + properties: + products: items: properties: id: - oneOf: - - type: string - - type: number - provider: type: string - enum: - - github - - github-custom-host - - gitlab - - bitbucket - url: + slug: type: string name: type: string - slug: - type: string - namespace: + protocols: + properties: + storage: + properties: + status: + type: string + enum: + - disabled + - enabled + repl: + properties: + enabled: + type: boolean + enum: + - false + - true + supportsReadOnlyMode: + type: boolean + enum: + - false + - true + welcomeMessage: + type: string + required: + - enabled + - supportsReadOnlyMode + type: object + required: + - status + type: object + experimentation: + properties: + status: + type: string + enum: + - disabled + - enabled + edgeConfigSyncingSupport: + type: boolean + enum: + - false + - true + required: + - status + type: object + ai: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + authentication: + properties: + status: + type: string + enum: + - disabled + - enabled + appUrlRegistrationSupport: + type: boolean + enum: + - false + - true + description: The partner accepts Vercel-managed app URLs via `protocolSettings.authentication.appUrls` on provision-resource and update-resource, and reconciles them into its trusted-origin / redirect-URL allowlist. When absent, consumers surface the URL for a one-time manual registration instead. + required: + - status + type: object + observability: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + video: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + workflow: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + checks: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + logDrain: + properties: + status: + type: string + enum: + - disabled + - enabled + endpoint: + type: string + headers: + additionalProperties: + type: string + type: object + format: + type: string + enum: + - json + - ndjson + required: + - endpoint + - format + - status + type: object + traceDrain: + properties: + status: + type: string + enum: + - disabled + - enabled + endpoint: + type: string + headers: + additionalProperties: + type: string + type: object + format: + type: string + enum: + - json + - proto + required: + - endpoint + - format + - status + type: object + messaging: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + other: + properties: + status: + type: string + enum: + - disabled + - enabled + required: + - status + type: object + type: object + primaryProtocol: type: string - owner: + enum: + - ai + - authentication + - checks + - experimentation + - logDrain + - messaging + - observability + - other + - storage + - traceDrain + - video + - workflow + metadataSchema: properties: - id: - oneOf: - - type: string - - type: number - name: + type: type: string + enum: + - object + properties: + additionalProperties: + oneOf: + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - input + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - number + ui:control: + type: string + enum: + - input + minimum: + type: number + maximum: + type: number + description: + type: string + exclusiveMaximum: + type: number + exclusiveMinimum: + type: number + default: + type: number + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - boolean + ui:control: + type: string + enum: + - toggle + description: + type: string + default: + type: boolean + enum: + - false + - true + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - array + items: + properties: + type: + type: string + enum: + - number + minimum: + type: number + maximum: + type: number + description: + type: string + exclusiveMaximum: + type: number + exclusiveMinimum: + type: number + default: + type: number + required: + - type + type: object + ui:control: + type: string + enum: + - slider + ui:steps: + items: + type: number + type: array + description: + type: string + maxItems: + type: number + minItems: + type: number + default: + items: + type: number + type: array + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + required: + - items + - type + - ui:control + - ui:steps + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - select + ui:options: + items: + properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + type: array + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - radio-button + ui:options: + items: + properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + type: array + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - array + items: + properties: + type: + type: string + enum: + - string + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + required: + - type + type: object + ui:control: + type: string + enum: + - multi-select + ui:options: + items: + properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + type: array + description: + type: string + maxItems: + type: number + minItems: + type: number + default: + items: + type: string + type: array + example: + items: + type: string + type: array + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - items + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - vercel-region + ui:options: + items: + oneOf: + - properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + - type: string + - properties: + value: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - value + type: object + type: array + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - array + items: + properties: + type: + type: string + enum: + - string + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + required: + - type + type: object + ui:control: + type: string + enum: + - multi-vercel-region + ui:options: + items: + oneOf: + - properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + - type: string + - properties: + value: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - value + type: object + type: array + description: + type: string + maxItems: + type: number + minItems: + type: number + default: + items: + type: string + type: array + example: + items: + type: string + type: array + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - items + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - vercel-country + ui:options: + items: + oneOf: + - properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + - type: string + - properties: + value: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - value + type: object + type: array + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - domain + description: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + default: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - git-namespace + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + git:providers: + items: + type: string + enum: + - bitbucket + - github + - gitlab + type: array + required: + - type + - ui:control + type: object + type: object + required: + items: + type: string + type: array + ui:order: + items: + type: string + type: array required: - - id - - name + - properties + - type type: object - ownerType: - type: string - enum: - - user - - team - private: - type: boolean - defaultBranch: - type: string - updatedAt: - type: number required: - id - - provider - - url + - metadataSchema - name + - protocols - slug - - namespace - - owner - - ownerType - - private - - defaultBranch - - updatedAt type: object type: array + integration: + properties: + id: + type: string + slug: + type: string + name: + type: string + required: + - id + - name + - slug + type: object + configuration: + properties: + id: + type: string + required: + - id + type: object required: - - gitAccount - - repos + - configuration + - integration + - products type: object '400': description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' parameters: - - name: query - in: query + - name: id + description: ID of the integration configuration + in: path + required: true schema: type: string - - name: namespaceId + description: ID of the integration configuration + example: icfg_cuwj0AdCdH3BwWT4LPijCC7t + - description: The Team identifier to perform the request on behalf of. in: query + name: teamId schema: type: string - nullable: true - - name: provider - in: query - schema: - enum: - - github - - github-custom-host - - gitlab - - bitbucket - - name: installationId + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query + name: slug schema: type: string - - name: host - description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' + example: my-team-url-slug + /v1/storage/stores/integration/direct: + post: + description: Creates an integration store with automatic billing plan handling. For free resources, omit `billingPlanId` to auto-discover free plans. For paid resources, provide a `billingPlanId` from the billing plans endpoint. + operationId: createIntegrationStoreDirect + security: + - bearerToken: [] + summary: Create integration store (free and paid plans) + tags: + - integrations + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + store: + nullable: true + type: object + properties: + projectsMetadata: + items: + properties: + id: + type: string + projectId: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + latestDeployment: + type: string + environments: + items: + type: string + type: array + envVarPrefix: + nullable: true + type: string + environmentVariables: + items: + type: string + type: array + deployments: + properties: + required: + type: boolean + enum: + - false + - true + actions: + items: + properties: + slug: + type: string + environments: + items: + type: string + type: array + required: + - environments + - slug + type: object + type: array + required: + - actions + - required + type: object + makeEnvVarsSensitive: + type: boolean + enum: + - false + - true + required: + - envVarPrefix + - environmentVariables + - environments + - id + - name + - projectId + type: object + type: array + projectFilter: + properties: + git: + properties: + providers: + oneOf: + - items: + type: string + enum: + - bitbucket + - github + - gitlab + type: array + - type: string + enum: + - '*' + owners: + items: + type: string + type: array + repos: + items: + type: string + type: array + required: + - providers + type: object + type: object + totalConnectedProjects: + type: number + usageQuotaExceeded: + type: boolean + enum: + - false + - true + status: + nullable: true + type: string + enum: + - available + - error + - initializing + - limits-exceeded-suspended + - limits-exceeded-suspended-store-count + - onboarding + - suspended + - uninstalled + - null + ownership: + type: string + enum: + - linked + - owned + - sandbox + capabilities: + properties: + mcp: + type: boolean + enum: + - false + - true + mcpReadonly: + type: boolean + enum: + - false + - true + sso: + type: boolean + enum: + - false + - true + billable: + type: boolean + enum: + - false + - true + transferable: + type: boolean + enum: + - false + - true + secretsSync: + type: boolean + enum: + - false + - true + secretRotation: + oneOf: + - properties: + maxDelayHours: + type: number + customRotationWarning: + type: string + required: + - maxDelayHours + type: object + - type: boolean + enum: + - false + projects: + type: boolean + enum: + - false + - true + v0: + type: boolean + enum: + - false + - true + autoSensitive: + type: boolean + enum: + - false + - true + agentTools: + type: boolean + enum: + - false + - true + type: object + metadata: + additionalProperties: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + - items: + type: number + type: array + - type: boolean + enum: + - false + - true + type: object + externalResourceId: + type: string + externalResourceStatus: + nullable: true + type: string + enum: + - error + - onboarding + - pending + - ready + - resumed + - suspended + - uninstalled + - null + directPartnerConsoleUrl: + type: string + product: + properties: + id: + type: string + name: + type: string + slug: + type: string + iconUrl: + type: string + capabilities: + properties: + mcp: + type: boolean + enum: + - false + - true + mcpReadonly: + type: boolean + enum: + - false + - true + sso: + type: boolean + enum: + - false + - true + billable: + type: boolean + enum: + - false + - true + transferable: + type: boolean + enum: + - false + - true + secretsSync: + type: boolean + enum: + - false + - true + secretRotation: + oneOf: + - properties: + maxDelayHours: + type: number + customRotationWarning: + type: string + required: + - maxDelayHours + type: object + - type: boolean + enum: + - false + sandbox: + type: boolean + enum: + - false + - true + linking: + type: boolean + enum: + - false + - true + projects: + type: boolean + enum: + - false + - true + v0: + type: boolean + enum: + - false + - true + importResource: + type: boolean + enum: + - false + - true + connectedImportResource: + type: boolean + enum: + - false + - true + nativeImportResource: + type: boolean + enum: + - false + - true + databaseUI: + type: boolean + enum: + - false + - true + v0Flavors: + type: boolean + enum: + - false + - true + autoSensitive: + type: boolean + enum: + - false + - true + agentTools: + type: boolean + enum: + - false + - true + type: object + shortDescription: + type: string + metadataSchema: + properties: + type: + type: string + enum: + - object + properties: + additionalProperties: + oneOf: + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - input + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - number + ui:control: + type: string + enum: + - input + default: + type: number + maximum: + type: number + exclusiveMaximum: + type: number + minimum: + type: number + exclusiveMinimum: + type: number + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - boolean + ui:control: + type: string + enum: + - toggle + default: + type: boolean + enum: + - false + - true + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - array + items: + properties: + type: + type: string + enum: + - number + default: + type: number + maximum: + type: number + exclusiveMaximum: + type: number + minimum: + type: number + exclusiveMinimum: + type: number + description: + type: string + required: + - type + type: object + ui:control: + type: string + enum: + - slider + ui:steps: + items: + type: number + type: array + default: + items: + type: number + type: array + maxItems: + type: number + minItems: + type: number + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + required: + - items + - type + - ui:control + - ui:steps + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - select + ui:options: + items: + properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + type: array + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - radio-button + ui:options: + items: + properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + type: array + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - array + items: + properties: + type: + type: string + enum: + - string + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + required: + - type + type: object + ui:control: + type: string + enum: + - multi-select + ui:options: + items: + properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + type: array + default: + items: + type: string + type: array + maxItems: + type: number + minItems: + type: number + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + example: + items: + type: string + type: array + required: + - items + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - vercel-region + ui:options: + items: + oneOf: + - properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + - type: string + - properties: + value: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - value + type: object + type: array + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - array + items: + properties: + type: + type: string + enum: + - string + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + required: + - type + type: object + ui:control: + type: string + enum: + - multi-vercel-region + ui:options: + items: + oneOf: + - properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + - type: string + - properties: + value: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - value + type: object + type: array + default: + items: + type: string + type: array + maxItems: + type: number + minItems: + type: number + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + example: + items: + type: string + type: array + required: + - items + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - vercel-country + ui:options: + items: + oneOf: + - properties: + value: + type: string + label: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - label + - value + type: object + - type: string + - properties: + value: + type: string + description: + type: string + disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + required: + - value + type: object + type: array + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + - ui:options + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - domain + default: + type: string + enum: + items: + type: string + type: array + maxLength: + type: number + minLength: + type: number + pattern: + type: string + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + required: + - type + - ui:control + type: object + - properties: + type: + type: string + enum: + - string + ui:control: + type: string + enum: + - git-namespace + description: + type: string + ui:label: + type: string + ui:read-only: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:hidden: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:disabled: + oneOf: + - properties: + expr: + type: string + required: + - expr + type: object + - type: boolean + enum: + - false + - true + - type: string + enum: + - create + - update + ui:description: + oneOf: + - type: string + - properties: + expr: + type: string + required: + - expr + type: object + ui:formatted-value: + properties: + expr: + type: string + required: + - expr + type: object + ui:paid-only: + type: boolean + enum: + - false + - true + ui:placeholder: + type: string + git:providers: + items: + type: string + enum: + - bitbucket + - github + - gitlab + type: array + required: + - type + - ui:control + type: object + type: object + required: + items: + type: string + type: array + ui:order: + items: + type: string + type: array + required: + - properties + - type + type: object + resourceLinks: + items: + properties: + href: + type: string + title: + type: string + required: + - href + - title + type: object + type: array + tags: + items: + type: string + enum: + - ai + - authentication + - blob + - checks + - drains + - edge-config + - experimentation + - kv + - libsql + - logDrain + - mcp + - messaging + - mysql + - observability + - other + - postgres + - rds + - redis + - sqlite + - storage + - tag_agents + - tag_ai + - tag_analytics + - tag_authentication + - tag_checks + - tag_cms + - tag_code_repository + - tag_code_review + - tag_code_security + - tag_code_testing + - tag_commerce + - tag_databases + - tag_dev_tools + - tag_experimentation + - tag_flags + - tag_logDrain + - tag_logging + - tag_messaging + - tag_monitoring + - tag_observability + - tag_other + - tag_payments + - tag_performance + - tag_productivity + - tag_searching + - tag_security + - tag_storage + - tag_support_agent + - tag_testing + - tag_traceDrain + - tag_video + - tag_web_automation + - tag_workflow + - traceDrain + - vector + - video + - workflow + type: array + projectConnectionScopes: + items: + type: string + enum: + - read-write:deployment + - read-write:deployment-check + - read-write:domain + - read-write:drains + - read-write:global-project-env-vars + - read-write:integration-deployment-action + - read-write:log-drain + - read-write:project-env-vars + - read-write:project-protection-bypass + - read:deployment + - read:domain + - read:project + type: array + showSSOLinkOnProjectConnection: + type: boolean + enum: + - false + - true + disableResourceRenaming: + type: boolean + enum: + - false + - true + resourceTitle: + type: string + description: Custom resource title to display during installation and configuration. If not provided, defaults to protocol-based defaults. + example: Instance + agentSkills: + items: + type: string + type: array + description: URLs to skills/guides for how AI agents should use this product. Providers can specify these to help agents understand how to interact with their integration. + repl: + properties: + enabled: + type: boolean + enum: + - false + - true + supportsReadOnlyMode: + type: boolean + enum: + - false + - true + welcomeMessage: + type: string + required: + - enabled + - supportsReadOnlyMode + type: object + guides: + items: + properties: + framework: + type: string + title: + type: string + steps: + items: + properties: + title: + type: string + content: + type: string + actions: + items: + properties: + type: + type: string + enum: + - add_drain + - configure_project_connections + - connect_to_project + required: + - type + type: object + type: array + required: + - content + - title + type: object + type: array + required: + - framework + - steps + - title + type: object + type: array + integration: + properties: + id: + type: string + name: + type: string + slug: + type: string + supportsInstallationBillingPlans: + type: boolean + enum: + - false + - true + icon: + type: string + capabilities: + properties: + provisioning: + type: boolean + enum: + - false + - true + mcp: + type: boolean + enum: + - false + - true + mcpReadonly: + type: boolean + enum: + - false + - true + sso: + type: boolean + enum: + - false + - true + billable: + type: boolean + enum: + - false + - true + transferable: + type: boolean + enum: + - false + - true + templateCloneOnly: + type: boolean + enum: + - false + - true + checks: + type: boolean + enum: + - false + - true + connectedProvisioning: + type: boolean + enum: + - false + - true + secretRotation: + oneOf: + - properties: + maxDelayHours: + type: number + customRotationWarning: + type: string + required: + - maxDelayHours + type: object + - type: boolean + enum: + - false + importResource: + type: boolean + enum: + - false + - true + connectedImportResource: + type: boolean + enum: + - false + - true + nativeImportResource: + type: boolean + enum: + - false + - true + requiresBrowserInstall: + type: boolean + enum: + - false + - true + v0Flavors: + type: boolean + enum: + - false + - true + flexCommitEligible: + type: boolean + enum: + - false + - true + updateConfiguration: + type: boolean + enum: + - false + - true + maxAllowedTeams: + type: number + type: object + flags: + items: + type: string + type: array + required: + - icon + - id + - name + - slug + type: object + integrationConfigurationId: + type: string + supportedProtocols: + items: + type: string + enum: + - ai + - authentication + - checks + - experimentation + - logDrain + - messaging + - observability + - other + - storage + - traceDrain + - video + - workflow + type: array + primaryProtocol: + type: string + enum: + - ai + - authentication + - checks + - experimentation + - logDrain + - messaging + - observability + - other + - storage + - traceDrain + - video + - workflow + logDrainStatus: + type: string + enum: + - disabled + - enabled + required: + - integration + - integrationConfigurationId + - supportedProtocols + type: object + protocolSettings: + properties: + experimentation: + properties: + edgeConfigSyncingEnabled: + type: boolean + enum: + - false + - true + edgeConfigId: + type: string + globalConfigId: + type: string + globalConfigSyncingEnabled: + type: boolean + enum: + - false + - true + edgeConfigTokenId: + type: string + type: object + authentication: + properties: + appUrls: + items: + properties: + url: + type: string + target: + type: string + enum: + - development + - preview + - production + required: + - target + - url + type: object + type: array + type: object + type: object + notification: + properties: + title: + type: string + level: + type: string + enum: + - error + - info + - warn + message: + type: string + href: + type: string + required: + - level + - title + type: object + secrets: + items: + properties: + name: + type: string + length: + type: number + frameworkPublishable: + type: boolean + enum: + - false + - true + required: + - length + - name + type: object + type: array + billingPlan: + properties: + id: + type: string + type: + type: string + enum: + - prepayment + - subscription + description: + type: string + name: + type: string + scope: + type: string + enum: + - installation + - resource + paymentMethodRequired: + type: boolean + enum: + - false + - true + preauthorizationAmount: + type: number + initialCharge: + type: string + minimumAmount: + type: string + maximumAmount: + type: string + maximumAmountAutoPurchasePerPeriod: + type: string + cost: + type: string + details: + items: + properties: + label: + type: string + value: + type: string + required: + - label + type: object + type: array + highlightedDetails: + items: + properties: + label: + type: string + value: + type: string + required: + - label + type: object + type: array + quote: + items: + properties: + line: + type: string + amount: + type: string + required: + - amount + - line + type: object + type: array + effectiveDate: + type: string + disabled: + type: boolean + enum: + - false + - true + required: + - description + - id + - name + - paymentMethodRequired + - scope + - type + type: object + secretRotationRequestedAt: + type: number + description: The timestamp when secret rotation was requested. + secretRotationRequestedReason: + type: string + description: The reason for the secret rotation request. + secretRotationRequestedBy: + type: string + description: The ID of the user/team who requested the secret rotation. + secretRotationCompletedAt: + type: number + description: The timestamp when secret rotation was completed. + parentId: + type: string + description: The ID of the parent resource. Used to establish a parent-child relationship between resources, such as sandbox resources linking to their owner account resource. + targets: + items: + type: string + enum: + - development + - preview + - production + description: The deployment targets that this resource is available for. + type: array + description: The deployment targets that this resource is available for. + required: + - externalResourceId + - product + - projectsMetadata + - secrets + - status + - usageQuotaExceeded + required: + - store + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. in: query + name: teamId schema: - description: 'The custom Git host if using a custom Git provider, like GitHub Enterprise Server' type: string - example: ghes-test.now.systems - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - name + - integrationConfigurationId + - integrationProductIdOrSlug + properties: + name: + type: string + maxLength: 128 + description: Human-readable name for the storage resource + example: my-dev-database + integrationConfigurationId: + type: string + description: ID of your integration configuration. Get this from GET /v1/integrations/configurations + example: icfg_cuwj0AdCdH3BwWT4LPijCC7t + pattern: ^icfg_[a-zA-Z0-9]+$ + integrationProductIdOrSlug: + type: string + description: ID or slug of the integration product. Get available products from GET /v1/integrations/configuration/{id}/products + example: iap_postgres_db + pattern: ^iap_[a-zA-Z0-9_]+$ + metadata: + type: object + description: Optional key-value pairs for resource metadata + additionalProperties: + oneOf: + - type: string + - type: number + - type: boolean + - type: array + items: + type: string + - type: array + items: + type: number + example: + environment: development + project: my-app + tags: + - database + - postgres + externalId: + type: string + description: Optional external identifier for tracking purposes + example: dev-db-001 + protocolSettings: + type: object + description: Protocol-specific configuration settings + additionalProperties: true + example: + experimentation: + edgeConfigSyncingEnabled: true + source: + type: string + enum: + - marketplace + - deploy-button + - external + - v0 + - resource-claims + - cli + - oauth + - backoffice + - import-recommended-integrations + - organization + description: Source of the store creation request + example: marketplace + default: marketplace + billingPlanId: + type: string + description: ID of the billing plan for paid resources. Get available plans from GET /integrations/integration/{id}/products/{productId}/plans. If not provided, automatically discovers free billing plans. + example: bp_abc123def456 + paymentMethodId: + type: string + description: Payment method ID for paid resources. Optional - uses default payment method if not provided. + example: pm_1AbcDefGhiJklMno + prepaymentAmountCents: + type: number + minimum: 50 + description: Amount in cents for prepayment billing plans. Required only for prepayment plans with variable amounts. + example: 5000 +components: + schemas: + GitNamespacesResponse: + type: object + properties: + git_namespaces: + type: array + items: + properties: + provider: + type: string + slug: + type: string + id: + oneOf: + - type: string + - type: number + ownerType: + type: string + name: + type: string + isAccessRestricted: + type: boolean + enum: + - false + - true + installationId: + type: number + requireReauth: + type: boolean + enum: + - false + - true + viewer: + properties: + canCreateApp: + type: boolean + enum: + - false + - true + role: + oneOf: + - type: string + - type: number + type: object + required: + - id + - ownerType + - provider + - slug + type: object + GetConfigurationsResponse: + type: object + properties: + configurations: + type: array + items: + properties: + completedAt: + type: number + description: A timestamp that tells you when the configuration was installed successfully + example: 1558531915505 + createdAt: + type: number + description: A timestamp that tells you when the configuration was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the configuration + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + integrationId: + type: string + description: The unique identifier of the app the configuration was created for + example: oac_xzpVzcUOgcB1nrVlirtKhbWV + ownerId: + type: string + description: The user or team ID that owns the configuration + example: kr1PsOIzqEL5Xg6M4VZcZosf + status: + type: string + enum: + - error + - onboarding + - pending + - ready + - resumed + - suspended + - uninstalled + description: The configuration status. Optional. If not defined, assume 'ready'. + externalId: + type: string + description: An external identifier defined by the integration vendor. + projects: + items: + type: string + type: array + description: When a configuration is limited to access certain projects, this will contain each of the project ID it is allowed to access. If it is not defined, the configuration has full access. + example: + - prj_xQxbutw1HpL6HLYPAzt5h75m8NjO + source: + type: string + enum: + - backoffice + - cli + - deploy-button + - external + - import-recommended-integrations + - marketplace + - oauth + - organization + - resource-claims + - v0 + description: Source defines where the configuration was installed from. It is used to analyze user engagement for integration installations in product metrics. + example: marketplace + slug: + type: string + description: The slug of the integration the configuration is created for. + example: slack + teamId: + nullable: true + type: string + description: When the configuration was created for a team, this will show the ID of the team. + example: team_nLlpyC6RE1qxydlFKbrxDlud + type: + type: string + enum: + - integration-configuration + updatedAt: + type: number + description: A timestamp that tells you when the configuration was updated. + example: 1558531915505 + userId: + type: string + description: The ID of the user that created the configuration. + example: kr1PsOIzqEL5Xg6M4VZcZosf + scopes: + items: + type: string + type: array + description: The resources that are allowed to be accessed by the configuration. + example: + - read:project + - read-write:log-drain + disabledAt: + type: number + description: 'A timestamp that tells you when the configuration was disabled. Note: Configurations can be disabled when the associated user loses access to a team. They do not function during this time until the configuration is ''transferred'', meaning the associated user is changed to one with access to the team.' + example: 1558531915505 + deletedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration was deleted. + example: 1558531915505 + deleteRequestedAt: + nullable: true + type: number + description: A timestamp that tells you when the configuration deletion has been started for cases when the deletion needs to be settled/approved by partners, such as when marketplace invoices have been paid. + example: 1558531915505 + customerDeleteRequestedAt: + nullable: true + type: number + description: Record when the customer initited deletion, independent of whether `deleteRequestedAt` gets set. + disabledReason: + type: string + enum: + - account-plan-downgrade + - disabled-by-admin + - disabled-by-owner + - feature-not-available + - original-owner-left-the-team + - original-owner-role-downgraded + installationType: + type: string + enum: + - external + - marketplace + description: 'Defines the installation type. - ''external'' integrations are installed via the existing integrations flow - ''marketplace'' integrations are natively installed: - when accepting the TOS of a partner during the store creation process - if undefined, assume ''external''' + acceptedPoliciesInheritedFromInstallationId: + type: string + description: Historical parent installation from which acceptedPolicies were inherited. This is immutable provenance, not current authorization or relationship truth. + type: object + description: The list of configurations for the authenticated user + x-stackQL-resources: + git_namespaces: + id: vercel.integrations.git_namespaces + name: git_namespaces + title: Git Namespaces + methods: + list: + operation: + $ref: '#/paths/~1v1~1integrations~1git-namespaces/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.git_namespaces + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GitNamespacesResponse' + transform: + body: |- + {{- $wrapped := printf "{\"git_namespaces\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/git_namespaces/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + repos: + id: vercel.integrations.repos + name: repos + title: Repos + methods: + search: + operation: + $ref: '#/paths/~1v1~1integrations~1search-repo/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.repos + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/repos/methods/search' + insert: [] + update: [] + delete: [] + replace: [] + billing_plans: + id: vercel.integrations.billing_plans + name: billing_plans + title: Billing Plans + methods: + list: + operation: + $ref: '#/paths/~1v1~1integrations~1integration~1{integration_id_or_slug}~1products~1{product_id_or_slug}~1plans/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.plans + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/billing_plans/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + configurations: + id: vercel.integrations.configurations + name: configurations + title: Configurations + methods: + connect_resource_to_project: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1integrations~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1connections/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1integrations~1configurations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.configurations + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetConfigurationsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"configurations\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1integrations~1configuration~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1integrations~1configuration~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/configurations/methods/get' + - $ref: '#/components/x-stackQL-resources/configurations/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/configurations/methods/delete' + replace: [] + configuration_products: + id: vercel.integrations.configuration_products + name: configuration_products + title: Configuration Products + methods: + list: + operation: + $ref: '#/paths/~1v1~1integrations~1configuration~1{id}~1products/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.products + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/configuration_products/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + stores: + id: vercel.integrations.stores + name: stores + title: Stores + methods: + create_direct: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1storage~1stores~1integration~1direct/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/stores/methods/create_direct' + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/kms.yaml b/providers/src/vercel/v00.00.00000/services/kms.yaml new file mode 100644 index 00000000..646ae193 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/kms.yaml @@ -0,0 +1,2171 @@ +openapi: 3.0.3 +info: + title: kms API + description: vercel kms API + version: 0.0.1 +paths: + /v1/kms/issuers: + get: + description: Retrieve the list of KMS issuers that belong to the authenticated team. The results are paginated. + operationId: listKmsIssuers + security: + - bearerToken: [] + summary: List issuers + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + issuers: + items: + properties: + id: + type: string + ownerId: + type: string + name: + type: string + algorithm: + type: string + enum: + - ES256 + - ES384 + - ES512 + - EdDSA + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + origin: + type: string + enum: + - external + - vercel + managedBy: + type: string + claimsSchema: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + signingKeys: + items: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + type: array + policies: + items: + oneOf: + - properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + type: object + - properties: + kind: + type: string + enum: + - connex-grant + clientId: + type: string + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - clientId + - createdAt + - kind + - updatedAt + type: object + type: array + required: + - algorithm + - createdAt + - id + - name + - origin + - ownerId + - policies + - signingKeys + - updatedAt + type: object + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - issuers + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: limit + description: Maximum number of issuers to return. + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + description: Maximum number of issuers to return. + - name: next + description: Continuation cursor to retrieve the next page of results. + in: query + schema: + type: string + maxLength: 1024 + pattern: ^[A-Za-z0-9_-]+$ + description: Continuation cursor to retrieve the next page of results. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Create a new KMS issuer for the authenticated team. An issuer owns the asymmetric signing keys that are used to sign tokens and messages. + operationId: createKmsIssuer + security: + - bearerToken: [] + summary: Create an issuer + tags: + - kms + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + ownerId: + type: string + name: + type: string + algorithm: + type: string + enum: + - ES256 + - ES384 + - ES512 + - EdDSA + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + origin: + type: string + enum: + - external + - vercel + managedBy: + type: string + claimsSchema: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + signingKeys: + items: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + type: array + policies: + items: + oneOf: + - properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + type: object + - properties: + kind: + type: string + enum: + - connex-grant + clientId: + type: string + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - clientId + - createdAt + - kind + - updatedAt + type: object + type: array + required: + - algorithm + - createdAt + - id + - name + - origin + - ownerId + - policies + - signingKeys + - updatedAt + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - name + properties: + name: + type: string + description: The name of the issuer. + algorithm: + type: string + description: The signing algorithm to use for the issuer. EdDSA is not accepted for new issuers. + enum: + - RS256 + - RS384 + - RS512 + - PS256 + - PS384 + - PS512 + - ES256 + - ES384 + - ES512 + default: RS512 + claimsSchema: + type: object + description: A JSON Schema used to validate the resolved token claims when signing tokens for this issuer. + additionalProperties: true + policy: + type: object + additionalProperties: false + required: + - kind + - teamId + - projectId + - environments + - clientId + properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + description: The team ID for the project grant policy. + projectId: + type: string + description: The project ID for the project grant policy. + environments: + type: array + description: The environments for the project grant policy. Each entry is a system environment (production, preview, development) or a custom environment ID (env_...). + items: + type: string + pattern: ^(?:production|preview|development|env_.+)$ + minItems: 1 + uniqueItems: true + tokenClaims: + type: object + description: The claims that KMS should include in signed JWTs for this policy. + additionalProperties: true + clientId: + type: string + description: The Connex client ID for the Connex grant policy. + importKey: + type: string + description: The PEM-encoded private key to use for the issuer. + importKeyId: + type: string + description: The key id to use as the imported key's JWT/JWKS `kid`. Only allowed when `importKey` is provided. Not required to be unique; the addressable key id is the server-minted `keyId` returned in the response. + maxLength: 128 + pattern: ^[A-Za-z0-9._-]+$ + /v1/kms/issuers/{issuer_id}/sign/message: + post: + description: 'Sign a raw message with a KMS issuer''s active signing key. Authenticate the request with a Vercel OIDC token in the `Authorization: Bearer` header; the issuer''s policies decide which workloads are allowed to sign.' + operationId: signKmsMessage + security: + - bearerToken: [] + summary: Sign a message + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + signature: + properties: + payload: + type: string + signature: + type: string + header: + properties: + alg: + type: string + description: JWS "alg" (Algorithm) Header Parameter + b64: + type: boolean + enum: + - false + - true + description: This JWS Extension Header Parameter modifies the JWS Payload representation and the JWS Signing Input computation as per {@link https://www.rfc-editor.org/rfc/rfc7797 RFC7797}. + crit: + items: + type: string + type: array + description: JWS "crit" (Critical) Header Parameter + kid: + type: string + description: '"kid" (Key ID) Header Parameter' + x5t: + type: string + description: '"x5t" (X.509 Certificate SHA-1 Thumbprint) Header Parameter' + x5c: + items: + type: string + type: array + description: '"x5c" (X.509 Certificate Chain) Header Parameter' + x5u: + type: string + description: '"x5u" (X.509 URL) Header Parameter' + jku: + type: string + description: '"jku" (JWK Set URL) Header Parameter' + jwk: + properties: + 'n': + type: string + description: RSA JWK "n" (Modulus) Parameter + e: + type: string + description: RSA JWK "e" (Exponent) Parameter + kty: + type: string + description: JWK "kty" (Key Type) Parameter + crv: + type: string + description: '- EC JWK "crv" (Curve) Parameter - OKP JWK "crv" (The Subtype of Key Pair) Parameter' + x: + type: string + description: '- EC JWK "x" (X Coordinate) Parameter - OKP JWK "x" (The public key) Parameter' + 'y': + type: string + description: EC JWK "y" (Y Coordinate) Parameter + alg: + type: string + description: JWK "alg" (Algorithm) Parameter + pub: + type: string + description: AKP JWK "pub" (Public Key) Parameter + type: object + description: '"jwk" (JSON Web Key) Header Parameter' + typ: + type: string + description: '"typ" (Type) Header Parameter' + cty: + type: string + description: '"cty" (Content Type) Header Parameter' + type: object + description: The "header" member MUST be present and contain the value JWS Unprotected Header when the JWS Unprotected Header value is non- empty; otherwise, it MUST be absent. This value is represented as an unencoded JSON object, rather than as a string. These Header Parameter values are not integrity protected. + protected: + type: string + description: The "protected" member MUST be present and contain the value BASE64URL(UTF8(JWS Protected Header)) when the JWS Protected Header value is non-empty; otherwise, it MUST be absent. These Header Parameter values are integrity protected. + required: + - payload + - signature + type: object + description: Flattened JWS JSON Serialization Syntax token. Payload is returned as an empty string when JWS Unencoded Payload ({@link https://www.rfc-editor.org/rfc/rfc7797 RFC7797}) is used. + required: + - signature + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: '' + '404': + description: '' + '429': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + requestBody: + content: + application/json: + schema: + type: object + required: + - message + properties: + message: + type: string + description: Base64-encoded message to be signed. + maxLength: 44000 + pattern: ^[A-Za-z0-9+/]*={0,2}$ + /v1/kms/issuers/{issuer_id}/sign/token: + post: + description: 'Sign a JWT with a KMS issuer''s active signing key. Authenticate the request with a Vercel OIDC token in the `Authorization: Bearer` header; the issuer''s policies decide which workloads are allowed to sign.' + operationId: signKmsToken + security: + - bearerToken: [] + summary: Sign a token + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + token: + type: string + required: + - token + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: '' + '403': + description: '' + '404': + description: '' + '429': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + requestBody: + content: + application/json: + schema: + type: object + properties: + claims: + type: string + description: The claims to include in the token. (opaque JSON object) + maxProperties: 128 + headers: + type: string + description: Additional headers to include in the token. (opaque JSON object) + maxProperties: 64 + ttl: + type: number + description: The time-to-live for the token, in seconds. + default: 300 + nullable: true + /v1/kms/issuers/{issuer_id}/keys: + post: + description: Create a new signing key for a KMS issuer. Depending on the activation mode, the key is activated automatically once its public key has propagated, or manually via the activate endpoint. + operationId: createKmsSigningKey + security: + - bearerToken: [] + summary: Create a signing key + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + activation: + type: string + enum: + - automatic + - manual + description: Whether the new key is activated automatically after its public key has propagated, or manually via the activate endpoint. Defaults to `automatic`. + revokePreviousAfterHours: + type: number + minimum: 0 + description: For automatic activation, how many hours after activation the previous signing key should stop being used. Defaults to a 1 hour grace period so already-issued tokens keep verifying. + revokePreviousAt: + description: Deprecated. The ISO date string or timestamp when the previous signing key should stop being used. Converted to a relative grace and applied at activation, not creation. Prefer revokePreviousAfterHours. + type: string + importKey: + type: string + description: The PEM-encoded private key to use for the issuer. + importKeyId: + type: string + description: The key id to use as the imported key's JWT/JWKS `kid`. Only allowed when `importKey` is provided. Not required to be unique; the addressable key id is the server-minted `keyId` returned in the response. + maxLength: 128 + pattern: ^[A-Za-z0-9._-]+$ + /v1/kms/issuers/{issuer_id}/keys/{key_id}/activate: + post: + description: Activate a pending signing key so the issuer starts signing with it. + operationId: activateKmsSigningKey + security: + - bearerToken: [] + summary: Activate a signing key + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - name: key_id + description: The ID of the pending signing key to activate. + in: path + required: true + schema: + type: string + description: The ID of the pending signing key to activate. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + revokePreviousAfterHours: + type: number + minimum: 0 + description: How many hours after activation the previously-active key should stop being used. Defaults to a 1 hour grace period so already-issued tokens keep verifying. + /v1/kms/issuers/{issuer_id}/keys/{key_id}/revoke: + post: + description: Immediately revoke a signing key that is already scheduled for revocation. + operationId: revokeKmsSigningKey + security: + - bearerToken: [] + summary: Revoke a signing key + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + ownerId: + type: string + name: + type: string + algorithm: + type: string + enum: + - ES256 + - ES384 + - ES512 + - EdDSA + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + origin: + type: string + enum: + - external + - vercel + managedBy: + type: string + claimsSchema: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + signingKeys: + items: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + type: array + policies: + items: + oneOf: + - properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + type: object + - properties: + kind: + type: string + enum: + - connex-grant + clientId: + type: string + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - clientId + - createdAt + - kind + - updatedAt + type: object + type: array + required: + - algorithm + - createdAt + - id + - name + - origin + - ownerId + - policies + - signingKeys + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - name: key_id + description: The ID of the signing key to revoke immediately. The key must already be scheduled for revocation. + in: path + required: true + schema: + type: string + description: The ID of the signing key to revoke immediately. The key must already be scheduled for revocation. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/kms/issuers/{issuer_id}: + get: + description: Retrieve a single KMS issuer by its ID. Accepts either a team bearer token (existing path) or an OIDC token authorized by one of the issuer's policies (e.g. a connex-grant token). The OIDC path returns the issuer without policies, since a policy token only proves signing access, not management access. + operationId: getKmsIssuer + security: + - bearerToken: [] + summary: Get an issuer + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + ownerId: + type: string + name: + type: string + algorithm: + type: string + enum: + - ES256 + - ES384 + - ES512 + - EdDSA + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + origin: + type: string + enum: + - external + - vercel + managedBy: + type: string + claimsSchema: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + signingKeys: + items: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + type: array + policies: + items: + oneOf: + - properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + type: object + - properties: + kind: + type: string + enum: + - connex-grant + clientId: + type: string + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - clientId + - createdAt + - kind + - updatedAt + type: object + type: array + required: + - algorithm + - createdAt + - id + - name + - origin + - ownerId + - policies + - signingKeys + - updatedAt + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update a KMS issuer's name or claims schema. + operationId: updateKmsIssuer + security: + - bearerToken: [] + summary: Update an issuer + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + ownerId: + type: string + name: + type: string + algorithm: + type: string + enum: + - ES256 + - ES384 + - ES512 + - EdDSA + - PS256 + - PS384 + - PS512 + - RS256 + - RS384 + - RS512 + origin: + type: string + enum: + - external + - vercel + managedBy: + type: string + claimsSchema: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + signingKeys: + items: + properties: + keyId: + type: string + description: The server-minted, unique record identifier. Use this to address the key on the activate / certificate endpoints. + importKeyId: + type: string + description: The caller-supplied key id (imported keys only), used as the JWT/JWKS `kid`. Not unique across an issuer's keys; omitted for generated keys. + issuerId: + type: string + algorithm: + type: string + status: + type: string + enum: + - active + - pending + - revoking + publicKey: + properties: + kty: + type: string + kid: + type: string + alg: + type: string + use: + type: string + key_ops: + items: + type: string + type: array + x5c: + items: + type: string + type: array + description: The X.509 certificate chain (RFC 7517 §4.7). Each entry is the base64 DER (not base64url) of a certificate. For keys minted with a stored certificate this holds the single self-signed cert as `[x5c]`. + x5t#S256: + type: string + description: The base64url SHA-256 thumbprint of the DER certificate in `x5c[0]` (RFC 7517 §4.9). + type: object + publicKeyFingerprint: + type: string + publicKeyPem: + type: string + description: The public key in SPKI PEM form, ready to render. Present whenever the key has public key material. Derived from `publicKey`; the embedded certificate members (`x5c`/`x5t#S256`) do not affect it. + certificatePem: + type: string + description: The stored X.509 certificate (from `publicKey.x5c[0]`) in PEM form, ready to render. Present only for keys created with a stored certificate; omitted for keys created before certificates were stored. + createdAt: + type: string + updatedAt: + type: string + revokeAt: + type: string + activateAt: + type: string + activatedAt: + type: string + description: When the key became the active signer. Present for active and revoking keys (and absent for pending keys and rows predating this field). + required: + - algorithm + - createdAt + - issuerId + - keyId + - status + - updatedAt + type: object + type: array + policies: + items: + oneOf: + - properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + type: object + - properties: + kind: + type: string + enum: + - connex-grant + clientId: + type: string + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + required: + - clientId + - createdAt + - kind + - updatedAt + type: object + type: array + required: + - algorithm + - createdAt + - id + - name + - origin + - ownerId + - policies + - signingKeys + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + minProperties: 1 + properties: + name: + type: string + description: The name of the issuer. + claimsSchema: + type: object + description: A JSON Schema used to validate the resolved token claims when signing tokens for this issuer. Pass null to remove it. + additionalProperties: true + nullable: true + delete: + description: Delete a KMS issuer and its signing keys. + operationId: deleteKmsIssuer + security: + - bearerToken: [] + summary: Delete an issuer + tags: + - kms + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/kms/issuers/{issuer_id}/policies: + post: + description: Attach a policy to a KMS issuer that grants a project's deployments permission to sign with it. + operationId: createKmsIssuerPolicy + security: + - bearerToken: [] + summary: Create an issuer policy + tags: + - kms + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + clientId: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + - clientId + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - kind + - projectId + - environments + properties: + kind: + type: string + enum: + - project-grant + projectId: + type: string + description: The project ID for the project grant policy. + environments: + type: array + description: The environments for the project grant policy. Each entry is a system environment (production, preview, development) or a custom environment ID (env_...). + items: + type: string + pattern: ^(?:production|preview|development|env_.+)$ + minItems: 1 + uniqueItems: true + tokenClaims: + type: object + description: The claims that KMS should include in signed JWTs for this policy. + additionalProperties: true + /v1/kms/issuers/{issuer_id}/policies/{kind}/{policy_key}: + patch: + description: Update an existing KMS issuer policy's environments or token claims. + operationId: updateKmsIssuerPolicy + security: + - bearerToken: [] + summary: Update an issuer policy + tags: + - kms + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + kind: + type: string + enum: + - project-grant + teamId: + type: string + projectId: + type: string + environments: + items: + type: string + type: array + description: Environments whose OIDC tokens this grant authorizes. Each entry is either a system environment slug (`production`, `preview`, `development`) or a custom environment ID (prefixed `env_`). Custom environments are matched against the token's `custom_environment_id` claim (the stable ID); system environments against its `environment` claim. + tokenClaims: + additionalProperties: true + type: object + createdAt: + type: string + updatedAt: + type: string + clientId: + type: string + required: + - createdAt + - environments + - kind + - projectId + - teamId + - updatedAt + - clientId + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - name: kind + description: The issuer policy kind. + in: path + required: true + schema: + type: string + enum: + - project-grant + description: The issuer policy kind. + - name: policy_key + description: The policy identifier. + in: path + required: true + schema: + type: string + description: The policy identifier. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + environments: + type: array + description: The environments for the project grant policy. Each entry is a system environment (production, preview, development) or a custom environment ID (env_...). + items: + type: string + pattern: ^(?:production|preview|development|env_.+)$ + minItems: 1 + uniqueItems: true + tokenClaims: + type: object + description: The claims that KMS should include in signed JWTs for this policy. Pass null to remove them. + additionalProperties: true + nullable: true + delete: + description: Remove a policy from a KMS issuer. + operationId: deleteKmsIssuerPolicy + security: + - bearerToken: [] + summary: Delete an issuer policy + tags: + - kms + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: issuer_id + description: The ID of the issuer. + in: path + required: true + schema: + type: string + description: The ID of the issuer. + - name: kind + description: The issuer policy kind. + in: path + required: true + schema: + type: string + enum: + - project-grant + - connex-grant + description: The issuer policy kind. + - name: policy_key + description: The policy identifier. + in: path + required: true + schema: + type: string + description: The policy identifier. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + issuers: + id: vercel.kms.issuers + name: issuers + title: Issuers + methods: + list: + operation: + $ref: '#/paths/~1v1~1kms~1issuers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.issuers + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: next + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sign_message: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1sign~1message/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sign_token: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1sign~1token/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/issuers/methods/get' + - $ref: '#/components/x-stackQL-resources/issuers/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/issuers/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/issuers/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/issuers/methods/delete' + replace: [] + signing_keys: + id: vercel.kms.signing_keys + name: signing_keys + title: Signing Keys + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1keys/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + activate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1keys~1{key_id}~1activate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + revoke: + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1keys~1{key_id}~1revoke/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/signing_keys/methods/create' + update: [] + delete: [] + replace: [] + issuer_policies: + id: vercel.kms.issuer_policies + name: issuer_policies + title: Issuer Policies + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1policies/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1policies~1{kind}~1{policy_key}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1kms~1issuers~1{issuer_id}~1policies~1{kind}~1{policy_key}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/issuer_policies/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/issuer_policies/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/issuer_policies/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/log_drains.yaml b/providers/src/vercel/v00.00.00000/services/log_drains.yaml index 00b667af..8ce11fe2 100644 --- a/providers/src/vercel/v00.00.00000/services/log_drains.yaml +++ b/providers/src/vercel/v00.00.00000/services/log_drains.yaml @@ -1,474 +1,16 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: log_drains API + description: vercel log_drains API version: 0.0.1 - title: Vercel API - log_drains - description: logDrains -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - integrations: - id: vercel.log_drains.integrations - name: integrations - title: Integrations - methods: - get_integration_log_drains: - operation: - $ref: '#/paths/~1v2~1integrations~1log-drains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_log_drain: - operation: - $ref: '#/paths/~1v2~1integrations~1log-drains/post' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_integration_log_drain: - operation: - $ref: '#/paths/~1v1~1integrations~1log-drains~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/integrations/methods/get_integration_log_drains' - insert: - - $ref: '#/components/x-stackQL-resources/integrations/methods/create_log_drain' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/integrations/methods/delete_integration_log_drain' - log_drains: - id: vercel.log_drains.log_drains - name: log_drains - title: Log Drains - methods: - get_configurable_log_drain: - operation: - $ref: '#/paths/~1v1~1log-drains~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_configurable_log_drain: - operation: - $ref: '#/paths/~1v1~1log-drains~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - get_configurable_log_drains: - operation: - $ref: '#/paths/~1v1~1log-drains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_configurable_log_drain: - operation: - $ref: '#/paths/~1v1~1log-drains/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/log_drains/methods/get_configurable_log_drain' - - $ref: '#/components/x-stackQL-resources/log_drains/methods/get_configurable_log_drains' - insert: - - $ref: '#/components/x-stackQL-resources/log_drains/methods/create_configurable_log_drain' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/log_drains/methods/delete_configurable_log_drain' paths: - /v2/integrations/log-drains: - get: - description: 'Retrieves a list of all Integration log drains that are defined for the authenticated user or team. When using an OAuth2 token, the list is limited to log drains created by the authenticated integration.' - operationId: getIntegrationLogDrains - security: - - bearerToken: [] - summary: Retrieves a list of Integration log drains - tags: - - logDrains - responses: - '200': - description: A list of log drains - content: - application/json: - schema: - items: - properties: - clientId: - type: string - description: The oauth2 client application id that created this log drain - example: oac_xRhY4LAB7yLhUADD69EvV7ct - configurationId: - type: string - description: The client configuration this log drain was created with - example: icfg_cuwj0AdCdH3BwWT4LPijCC7t - createdAt: - type: number - description: A timestamp that tells you when the log drain was created - example: 1558531915505 - id: - type: string - description: The unique identifier of the log drain. Always prefixed with `ld_` - example: ld_nBuA7zCID8g4QZ8g - deliveryFormat: - type: string - enum: - - json - - ndjson - - syslog - description: The delivery log format - example: json - name: - type: string - description: The name of the log drain - example: My first log drain - ownerId: - type: string - description: The identifier of the team or user whose events will trigger the log drain - example: kr1PsOIzqEL5Xg6M4VZcZosf - projectId: - nullable: true - type: string - example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb - projectIds: - items: - type: string - type: array - description: The identifier of the projects this log drain is associated with - example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb - url: - type: string - description: The URL to call when logs are generated - example: 'https://example.com/log-drain' - sources: - items: - type: string - enum: - - static - - lambda - - build - - edge - - external - - deployment - description: The sources from which logs are currently being delivered to this log drain. - example: - - build - - edge - type: array - description: The sources from which logs are currently being delivered to this log drain. - example: - - build - - edge - createdFrom: - type: string - enum: - - self-served - - integration - description: Whether the log drain was created by an integration or by a user - example: integration - headers: - additionalProperties: - type: string - type: object - description: The headers to send with the request - example: '{"Authorization": "Bearer 123"}' - environment: - type: string - enum: - - preview - - production - description: The environment of log drain - example: production - branch: - type: string - description: The branch regexp of log drain - example: feature/* - required: - - createdAt - - id - - name - - ownerId - - url - type: object - type: array - '400': - description: '' - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - post: - description: 'Creates an Integration log drain. This endpoint must be called with an OAuth2 client (integration), since log drains are tied to integrations. If it is called with a different token type it will produce a 400 error.' - operationId: createLogDrain - security: - - bearerToken: [] - summary: Creates a new Integration Log Drain - tags: - - logDrains - responses: - '200': - description: The log drain was successfully created - content: - application/json: - schema: - properties: - clientId: - type: string - description: The oauth2 client application id that created this log drain - example: oac_xRhY4LAB7yLhUADD69EvV7ct - configurationId: - type: string - description: The client configuration this log drain was created with - example: icfg_cuwj0AdCdH3BwWT4LPijCC7t - createdAt: - type: number - description: A timestamp that tells you when the log drain was created - example: 1558531915505 - id: - type: string - description: The unique identifier of the log drain. Always prefixed with `ld_` - example: ld_nBuA7zCID8g4QZ8g - deliveryFormat: - type: string - enum: - - json - - ndjson - - syslog - description: The delivery log format - example: json - name: - type: string - description: The name of the log drain - example: My first log drain - ownerId: - type: string - description: The identifier of the team or user whose events will trigger the log drain - example: kr1PsOIzqEL5Xg6M4VZcZosf - projectId: - nullable: true - type: string - example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb - projectIds: - items: - type: string - type: array - description: The identifier of the projects this log drain is associated with - example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb - url: - type: string - description: The URL to call when logs are generated - example: 'https://example.com/log-drain' - sources: - items: - type: string - enum: - - static - - lambda - - build - - edge - - external - - deployment - description: The sources from which logs are currently being delivered to this log drain. - example: - - build - - edge - type: array - description: The sources from which logs are currently being delivered to this log drain. - example: - - build - - edge - createdFrom: - type: string - enum: - - self-served - - integration - description: Whether the log drain was created by an integration or by a user - example: integration - headers: - additionalProperties: - type: string - type: object - description: The headers to send with the request - example: '{"Authorization": "Bearer 123"}' - environment: - type: string - enum: - - preview - - production - description: The environment of log drain - example: production - branch: - type: string - description: The branch regexp of log drain - example: feature/* - required: - - createdAt - - id - - name - - ownerId - - url - type: object - '400': - description: |- - One of the provided values in the request body is invalid. - The provided token is not from an OAuth2 Client - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - properties: - name: - description: The name of the log drain - example: My first log drain - maxLength: 100 - pattern: '^[A-z0-9_ -]+$' - type: string - projectIds: - minItems: 1 - maxItems: 50 - type: array - items: - pattern: '^[a-zA-z0-9_]+$' - type: string - secret: - description: A secret to sign log drain notification headers so a consumer can verify their authenticity - example: a1Xsfd325fXcs - maxLength: 100 - pattern: '^[A-z0-9_ -]+$' - type: string - deliveryFormat: - description: The delivery log format - example: json - enum: - - json - - ndjson - - syslog - url: - description: 'The url where you will receive logs. The protocol must be `https://` or `http://` when type is `json` and `ndjson`, and `syslog+tls:` or `syslog:` when the type is `syslog`.' - example: 'https://example.com/log-drain' - format: uri - pattern: '^(https?|syslog\\+tls|syslog)://' - type: string - sources: - type: array - uniqueItems: true - items: - type: string - enum: - - static - - lambda - - build - - edge - - external - minItems: 1 - headers: - description: Headers to be sent together with the request - type: object - additionalProperties: - type: string - environment: - description: The environment of log drain - example: production - enum: - - preview - - production - branch: - description: The branch regexp of log drain - example: feature/* - type: string - previousLogDrainId: - description: The id of the log drain that was previously created and deleted - example: ld_1 - type: string - required: - - name - - url - type: object - '/v1/integrations/log-drains/{id}': - delete: - description: 'Deletes the Integration log drain with the provided `id`. When using an OAuth2 Token, the log drain can be deleted only if the integration owns it.' - operationId: deleteIntegrationLogDrain - security: - - bearerToken: [] - summary: Deletes the Integration log drain with the provided `id` - tags: - - logDrains - responses: - '204': - description: The log drain was successfully deleted - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - '404': - description: The log drain was not found - parameters: - - name: id - description: ID of the log drain to be deleted - in: path - required: true - schema: - description: ID of the log drain to be deleted - type: string - - name: updateFlow - description: 'If this API is being called as part of an update flow, this should be set to true' - in: query - required: false - schema: - description: 'If this API is being called as part of an update flow, this should be set to true' - type: boolean - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - '/v1/log-drains/{id}': + /v1/log-drains/{id}: get: description: Retrieves a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed. operationId: getConfigurableLogDrain security: - bearerToken: [] - summary: Retrieves a Configurable Log Drain + summary: Retrieves a Configurable Log Drain (deprecated) tags: - logDrains responses: @@ -477,118 +19,150 @@ paths: content: application/json: schema: + type: object properties: - id: - type: string - deliveryFormat: - type: string - enum: - - json - - ndjson - - syslog - url: - type: string - name: + createdFrom: type: string clientId: type: string configurationId: type: string - teamId: + projectsMetadata: nullable: true - type: string - ownerId: - type: string - projectIds: items: - type: string - type: array - createdAt: - type: number - sources: - items: - type: string - enum: - - static - - lambda - - build - - edge - - external - - deployment + properties: + id: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + latestDeployment: + type: string + required: + - id + - name + type: object type: array - headers: - additionalProperties: - type: string - type: object - environment: - type: string - enum: - - production - - preview - branch: - type: string - status: + integrationIcon: type: string - enum: - - enabled - - disabled - - errored - disabledAt: - type: number - disabledReason: - type: string - enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - disabled-by-admin - - account-plan-downgrade - disabledBy: + integrationConfigurationUri: type: string - firstErrorTimestamp: - type: number - secret: - type: string - createdFrom: + integrationWebsite: type: string - enum: - - self-served required: - - id - - deliveryFormat - - url - - name - - ownerId - - createdAt - - secret - type: object + - createdFrom '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - name: id - description: ID of the log drain. in: path required: true schema: type: string - description: ID of the log drain. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug delete: description: Deletes a Configurable Log Drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be deleted. operationId: deleteConfigurableLogDrain security: - bearerToken: [] - summary: Deletes a Configurable Log Drain + summary: Deletes a Configurable Log Drain (deprecated) tags: - logDrains responses: @@ -597,32 +171,38 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - name: id - description: ID of the log drain to be deleted. in: path required: true schema: type: string - description: ID of the log drain to be deleted. - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug /v1/log-drains: get: - description: Retrieves a list of Configurable Log Drains. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated team can be accessed. - operationId: getConfigurableLogDrains + description: Retrieves a list of all the Log Drains owned by the account. This endpoint must be called with an account AccessToken (integration OAuth2 clients are not allowed). Only log drains owned by the authenticated account can be accessed. + operationId: getAllLogDrains security: - bearerToken: [] - summary: Retrieves a list of Configurable Log Drains + summary: Retrieves a list of all the Log Drains (deprecated) tags: - logDrains responses: @@ -631,232 +211,376 @@ paths: content: application/json: schema: - items: - properties: - id: - type: string - deliveryFormat: - type: string - enum: - - json - - ndjson - - syslog - url: - type: string - name: - type: string - clientId: - type: string - configurationId: - type: string - teamId: - nullable: true - type: string - ownerId: - type: string - projectIds: - items: - type: string - type: array - createdAt: - type: number - sources: - items: - type: string - enum: - - static - - lambda - - build - - edge - - external - - deployment - type: array - headers: - additionalProperties: - type: string - type: object - environment: - type: string - enum: - - production - - preview - branch: - type: string - status: - type: string - enum: - - enabled - - disabled - - errored - disabledAt: - type: number - disabledReason: - type: string - enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - disabled-by-admin - - account-plan-downgrade - disabledBy: - type: string - firstErrorTimestamp: - type: number - secret: - type: string - createdFrom: - type: string - enum: - - self-served - required: - - id - - deliveryFormat - - url - - name - - ownerId - - createdAt - - secret - type: object - type: array + $ref: '#/components/schemas/GetAllLogDrainsResponse' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' parameters: - name: projectId in: query schema: - pattern: '^[a-zA-z0-9_]+$' + pattern: ^[a-zA-z0-9_]+$ type: string - - description: The Team identifier or slug to perform the request on behalf of. + - name: projectIdOrName + in: query + schema: + type: string + - name: includeMetadata + in: query + schema: + type: boolean + default: false + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug post: description: Creates a configurable log drain. This endpoint must be called with a team AccessToken (integration OAuth2 clients are not allowed) operationId: createConfigurableLogDrain security: - bearerToken: [] - summary: Creates a Configurable Log Drain + summary: Creates a Configurable Log Drain (deprecated) + tags: + - logDrains + responses: + '200': + description: '' + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - deliveryFormat + - url + - sources + properties: + deliveryFormat: + description: The delivery log format + example: json + enum: + - json + - ndjson + url: + description: The log drain url + format: uri + pattern: ^(http|https)?:// + type: string + headers: + description: Headers to be sent together with the request + type: object + additionalProperties: + type: string + projectIds: + minItems: 1 + maxItems: 50 + type: array + items: + pattern: ^[a-zA-z0-9_]+$ + type: string + sources: + type: array + uniqueItems: true + items: + type: string + enum: + - static + - lambda + - build + - edge + - external + - firewall + minItems: 1 + environments: + type: array + uniqueItems: true + items: + type: string + enum: + - preview + - production + minItems: 1 + secret: + description: Custom secret of log drain + type: string + samplingRate: + type: number + description: The sampling rate for this log drain. It should be a percentage rate between 0 and 100. With max 2 decimal points + minimum: 0.01 + maximum: 1 + multipleOf: 0.01 + name: + type: string + description: The custom name of this log drain. + required: true + /v2/integrations/log-drains: + get: + description: Retrieves a list of all Integration log drains that are defined for the authenticated user or team. When using an OAuth2 token, the list is limited to log drains created by the authenticated integration. + operationId: getIntegrationLogDrains + security: + - bearerToken: [] + summary: Retrieves a list of Integration log drains (deprecated) tags: - logDrains responses: '200': + description: A list of log drains + content: + application/json: + schema: + $ref: '#/components/schemas/GetIntegrationLogDrainsResponse' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Creates an Integration log drain. This endpoint must be called with an OAuth2 client (integration), since log drains are tied to integrations. If it is called with a different token type it will produce a 400 error. + operationId: createLogDrain + security: + - bearerToken: [] + summary: Creates a new Integration Log Drain (deprecated) + tags: + - logDrains + responses: + '200': + description: The log drain was successfully created content: application/json: schema: properties: - secret: + clientId: + type: string + description: The oauth2 client application id that created this log drain + example: oac_xRhY4LAB7yLhUADD69EvV7ct + configurationId: type: string - description: The secret to validate the log-drain payload + description: The client configuration this log drain was created with + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + createdAt: + type: number + description: A timestamp that tells you when the log drain was created + example: 1558531915505 id: type: string + description: The unique identifier of the log drain. Always prefixed with `ld_` + example: ld_nBuA7zCID8g4QZ8g deliveryFormat: type: string enum: - json - ndjson - - syslog - url: - type: string + - protobuf + description: The delivery log format + example: json name: type: string - clientId: - type: string - configurationId: + description: The name of the log drain + example: My first log drain + ownerId: type: string - teamId: + description: The identifier of the team or user whose events will trigger the log drain + example: kr1PsOIzqEL5Xg6M4VZcZosf + projectId: nullable: true type: string - ownerId: - type: string + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb projectIds: items: type: string type: array - createdAt: - type: number + description: The identifier of the projects this log drain is associated with + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + url: + type: string + description: The URL to call when logs are generated + example: https://example.com/log-drain sources: items: type: string enum: - - static - - lambda - build - edge - external - - deployment + - firewall + - lambda + - redirect + - static + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge type: array + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + createdFrom: + type: string + enum: + - integration + - self-served + description: Whether the log drain was created by an integration or by a user + example: integration headers: additionalProperties: type: string type: object - environment: - type: string - enum: + description: The headers to send with the request + example: '{"Authorization": "Bearer 123"}' + environments: + items: + type: string + enum: + - preview + - production + description: The environment of log drain + example: + - production + type: array + description: The environment of log drain + example: - production - - preview branch: type: string - status: - type: string - enum: - - enabled - - disabled - - errored - disabledAt: - type: number - disabledReason: - type: string - enum: - - log-drain-high-error-rate - - log-drains-add-on-disabled-by-owner - - disabled-by-admin - - account-plan-downgrade - disabledBy: - type: string - firstErrorTimestamp: + description: The branch regexp of log drain + example: feature/* + samplingRate: type: number - createdFrom: - type: string - enum: - - self-served + description: The sampling rate of log drain + example: 0.5 + source: + properties: + kind: + type: string + enum: + - self-served + resourceId: + type: string + externalResourceId: + type: string + integrationId: + type: string + integrationConfigurationId: + type: string + required: + - kind + - integrationConfigurationId + - integrationId + type: object required: + - createdAt - id - - deliveryFormat - - url - name - ownerId - - createdAt + - source + - url type: object '400': - description: One of the provided values in the request body is invalid. + description: |- + One of the provided values in the request body is invalid. + The provided token is not from an OAuth2 Client '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: - type: object - additionalProperties: false - required: - - deliveryFormat - - url - - sources properties: + name: + description: The name of the log drain + example: My first log drain + maxLength: 100 + pattern: ^[A-z0-9_ -]+$ + type: string + projectIds: + minItems: 1 + maxItems: 50 + type: array + items: + pattern: ^[a-zA-z0-9_]+$ + type: string + secret: + description: A secret to sign log drain notification headers so a consumer can verify their authenticity + example: a1Xsfd325fXcs + maxLength: 100 + pattern: ^[A-z0-9_ -]+$ + type: string deliveryFormat: description: The delivery log format example: json @@ -864,22 +588,11 @@ paths: - json - ndjson url: - description: The log drain url + description: The url where you will receive logs. The protocol must be `https://` or `http://` when type is `json` and `ndjson`. + example: https://example.com/log-drain format: uri - pattern: '^(http|https)?://' + pattern: ^https?:// type: string - headers: - description: Headers to be sent together with the request - type: object - additionalProperties: - type: string - projectIds: - minItems: 1 - maxItems: 50 - type: array - items: - pattern: '^[a-zA-z0-9_]+$' - type: string sources: type: array uniqueItems: true @@ -891,17 +604,439 @@ paths: - build - edge - external + - firewall minItems: 1 - environment: - description: The environment of log drain - example: production + headers: + description: Headers to be sent together with the request + type: object + additionalProperties: + type: string + environments: + type: array + uniqueItems: true + items: + type: string + enum: + - preview + - production + minItems: 1 + required: + - name + - url + type: object + required: true + /v1/integrations/log-drains/{id}: + delete: + description: Deletes the Integration log drain with the provided `id`. When using an OAuth2 Token, the log drain can be deleted only if the integration owns it. + operationId: deleteIntegrationLogDrain + security: + - bearerToken: [] + summary: Deletes the Integration log drain with the provided `id` (deprecated) + tags: + - logDrains + responses: + '204': + description: The log drain was successfully deleted + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id + description: ID of the log drain to be deleted + in: path + required: true + schema: + description: ID of the log drain to be deleted + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + GetAllLogDrainsResponse: + type: object + properties: + log_drains: + type: array + items: + type: object + properties: + createdFrom: + type: string + clientId: + type: string + configurationId: + type: string + projectsMetadata: + nullable: true + items: + properties: + id: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + latestDeployment: + type: string + required: + - id + - name + type: object + type: array + integrationIcon: + type: string + integrationConfigurationUri: + type: string + integrationWebsite: + type: string + required: + - createdFrom + GetIntegrationLogDrainsResponse: + type: object + properties: + integration_log_drains: + type: array + items: + properties: + clientId: + type: string + description: The oauth2 client application id that created this log drain + example: oac_xRhY4LAB7yLhUADD69EvV7ct + configurationId: + type: string + description: The client configuration this log drain was created with + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + createdAt: + type: number + description: A timestamp that tells you when the log drain was created + example: 1558531915505 + id: + type: string + description: The unique identifier of the log drain. Always prefixed with `ld_` + example: ld_nBuA7zCID8g4QZ8g + deliveryFormat: + type: string + enum: + - json + - ndjson + - protobuf + description: The delivery log format + example: json + name: + type: string + description: The name of the log drain + example: My first log drain + ownerId: + type: string + description: The identifier of the team or user whose events will trigger the log drain + example: kr1PsOIzqEL5Xg6M4VZcZosf + projectId: + nullable: true + type: string + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + projectIds: + items: + type: string + type: array + description: The identifier of the projects this log drain is associated with + example: AbCgVkqoxXeXCDWehVir51LHGrrcWL4mkYm14W6UBPWQeb + url: + type: string + description: The URL to call when logs are generated + example: https://example.com/log-drain + sources: + items: + type: string enum: - - preview - - production - branch: - description: The branch regexp of log drain - example: feature/* + - build + - edge + - external + - firewall + - lambda + - redirect + - static + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + type: array + description: The sources from which logs are currently being delivered to this log drain. + example: + - build + - edge + createdFrom: + type: string + enum: + - integration + - self-served + description: Whether the log drain was created by an integration or by a user + example: integration + headers: + additionalProperties: type: string - secret: - description: Custom secret of log drain + type: object + description: The headers to send with the request + example: '{"Authorization": "Bearer 123"}' + environments: + items: type: string + enum: + - preview + - production + description: The environment of log drain + example: + - production + type: array + description: The environment of log drain + example: + - production + branch: + type: string + description: The branch regexp of log drain + example: feature/* + samplingRate: + type: number + description: The sampling rate of log drain + example: 0.5 + source: + oneOf: + - properties: + kind: + type: string + enum: + - self-served + required: + - kind + type: object + - properties: + kind: + type: string + enum: + - integration + resourceId: + type: string + externalResourceId: + type: string + integrationId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - kind + type: object + required: + - createdAt + - id + - name + - ownerId + - source + - url + type: object + x-stackQL-resources: + log_drains: + id: vercel.log_drains.log_drains + name: log_drains + title: Log Drains + methods: + get: + operation: + $ref: '#/paths/~1v1~1log-drains~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1log-drains~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1log-drains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.log_drains + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetAllLogDrainsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"log_drains\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1log-drains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/log_drains/methods/get' + - $ref: '#/components/x-stackQL-resources/log_drains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/log_drains/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/log_drains/methods/delete' + replace: [] + integration_log_drains: + id: vercel.log_drains.integration_log_drains + name: integration_log_drains + title: Integration Log Drains + methods: + list: + operation: + $ref: '#/paths/~1v2~1integrations~1log-drains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.integration_log_drains + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetIntegrationLogDrainsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"integration_log_drains\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1integrations~1log-drains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1integrations~1log-drains~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/integration_log_drains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/integration_log_drains/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/integration_log_drains/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/marketplace.yaml b/providers/src/vercel/v00.00.00000/services/marketplace.yaml new file mode 100644 index 00000000..a2a7219c --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/marketplace.yaml @@ -0,0 +1,2913 @@ +openapi: 3.0.3 +info: + title: marketplace API + description: vercel marketplace API + version: 0.0.1 +paths: + /v1/installations/{integration_configuration_id}: + patch: + description: This endpoint updates an integration installation. + operationId: update-installation + security: + - bearerToken: [] + summary: Update Installation + tags: + - marketplace + responses: + '204': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + status: + type: string + enum: + - ready + - pending + - onboarding + - suspended + - resumed + - uninstalled + - error + externalId: + type: string + billingPlan: + type: object + required: + - id + - type + - name + properties: + id: + type: string + type: + type: string + enum: + - prepayment + - subscription + name: + type: string + description: + type: string + paymentMethodRequired: + type: boolean + cost: + type: string + details: + type: array + items: + type: object + properties: + label: + type: string + value: + type: string + required: + - label + additionalProperties: false + highlightedDetails: + type: array + items: + type: object + properties: + label: + type: string + value: + type: string + required: + - label + additionalProperties: false + effectiveDate: + type: string + additionalProperties: true + notification: + description: A notification to display to your customer. Send `null` to clear the current notification. + type: object + required: + - level + - title + properties: + level: + type: string + enum: + - info + - warn + - error + title: + type: string + message: + type: string + href: + type: string + format: uri + pattern: '^https?://|^sso:' + additionalProperties: false + /v1/installations/{integration_configuration_id}/account: + get: + description: Fetches the best account or user’s contact info + operationId: get-account-info + security: + - bearerToken: [] + summary: Get Account Information + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + name: + type: string + description: The name of the team the installation is tied to. + url: + type: string + description: A URL linking to the installation in the Vercel Dashboard. + contact: + nullable: true + properties: + email: + type: string + name: + type: string + required: + - email + type: object + description: The best contact for the integration, which can change as team members and their roles change. + required: + - contact + - url + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + /v1/installations/{integration_configuration_id}/member/{member_id}: + get: + description: Returns the member role and other information for a given member ID ("user_id" claim in the SSO OIDC token). + operationId: get-member + security: + - bearerToken: [] + summary: Get Member Information + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + role: + type: string + enum: + - ADMIN + - USER + description: '"The `ADMIN` role, by default, is provided to users capable of installing integrations, while the `USER` role can be granted to Vercel users with the Vercel `Billing` or Vercel `Viewer` role, which are considered to be Read-Only roles."' + globalUserId: + type: string + userEmail: + type: string + required: + - id + - role + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: member_id + in: path + required: true + schema: + type: string + /v1/installations/{integration_configuration_id}/credentials/rotate: + post: + description: 'Issues a replacement access token for an installation, so a partner can rotate a credential it believes is compromised without the customer having to reinstall. Authenticated by the credential being replaced plus the integration''s client secret: a leaked access token on its own cannot rotate itself, which would otherwise let an attacker take over the installation and lock the partner out. The previous credential intentionally stays valid so in-flight requests keep working. Retiring it is a separate, explicit operation — a partner is never left mid-rotation without a working credential.' + operationId: rotate-installation-credential + security: + - bearerToken: [] + summary: Rotate Installation Credential + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + scope: + type: string + expires_in: + type: number + access_token: + type: string + token_type: + type: string + enum: + - oauth2-token + required: + - access_token + - expires_in + - scope + - token_type + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - client_secret + properties: + client_secret: + type: string + maxLength: 512 + client_id: + type: string + additionalProperties: false + /v1/installations/{integration_configuration_id}/credentials/revoke: + post: + description: 'Retires a superseded installation credential, so a partner can complete a rotation it started with `POST /credentials/rotate` — the leaked credential stops working without the customer having to reinstall. Authenticated by a live installation credential plus the integration''s client secret. The credential to retire is named in the body rather than being the one that authenticates, so the ordinary flow is: rotate, store the replacement, then authenticate with the replacement and revoke the old one. Refuses to retire an installation''s last live credential. Rotation exists so remediation is not customer-visible; revoking the only credential would undo that and leave the install needing a reinstall.' + operationId: revoke-installation-credential + security: + - bearerToken: [] + summary: Revoke Installation Credential + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + revoked: + type: boolean + enum: + - false + - true + already_revoked: + type: boolean + enum: + - false + - true + required: + - already_revoked + - revoked + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - token + - client_secret + properties: + token: + type: string + maxLength: 512 + client_secret: + type: string + maxLength: 512 + client_id: + type: string + additionalProperties: false + /v1/installations/{integration_configuration_id}/events: + post: + description: 'Partner notifies Vercel of any changes made to an Installation or a Resource. Vercel is expected to use `list-resources` and other read APIs to get the new state.

`resource.updated` event should be dispatched when any state of a resource linked to Vercel is modified by the partner.
`installation.updated` event should be dispatched when an installation''s billing plan is changed via the provider instead of Vercel.

Resource update use cases:

- The user renames a database in the partner’s application. The partner should dispatch a `resource.updated` event to notify Vercel to update the resource in Vercel’s datastores.
- A resource has been suspended due to a lack of use. The partner should dispatch a `resource.updated` event to notify Vercel to update the resource''s status in Vercel''s datastores.
' + operationId: create-event + security: + - bearerToken: [] + summary: Create Event + tags: + - marketplace + responses: + '201': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - event + properties: + event: + type: object + properties: + type: + type: string + enum: + - installation.updated + billingPlanId: + type: string + description: The installation-level billing plan ID + productId: + type: string + description: Partner-provided product slug or id + resourceId: + type: string + description: Partner provided resource ID + required: + - type + - resourceId + additionalProperties: false + additionalProperties: false + required: true + /v1/installations/{integration_configuration_id}/resources: + get: + description: Get all resources for a given installation ID. + operationId: get-integration-resources + security: + - bearerToken: [] + summary: Get Integration Resources + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + resources: + items: + properties: + partnerId: + type: string + description: The ID provided by the partner for the given resource + internalId: + type: string + description: The ID assigned by Vercel for the given resource + name: + type: string + description: The name of the resource as it is recorded in Vercel + status: + type: string + enum: + - error + - onboarding + - pending + - ready + - resumed + - suspended + - uninstalled + description: The current status of the resource + productId: + type: string + description: The ID of the product the resource is derived from + protocolSettings: + properties: + experimentation: + properties: + edgeConfigSyncingEnabled: + type: boolean + enum: + - false + - true + edgeConfigId: + type: string + globalConfigId: + type: string + globalConfigSyncingEnabled: + type: boolean + enum: + - false + - true + edgeConfigTokenId: + type: string + type: object + authentication: + properties: + appUrls: + items: + properties: + url: + type: string + target: + type: string + enum: + - development + - preview + - production + required: + - target + - url + type: object + type: array + type: object + type: object + description: Any settings provided for the resource to support its product's protocols + notification: + properties: + title: + type: string + level: + type: string + enum: + - error + - info + - warn + message: + type: string + href: + type: string + required: + - level + - title + type: object + description: The notification, if set, displayed to the user when viewing the resource in Vercel + billingPlanId: + type: string + description: The ID of the billing plan the resource is subscribed to, if applicable + metadata: + additionalProperties: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + description: The configured metadata for the resource as defined by its product's Metadata Schema + - items: + type: number + type: array + description: The configured metadata for the resource as defined by its product's Metadata Schema + - type: boolean + enum: + - false + - true + type: object + description: The configured metadata for the resource as defined by its product's Metadata Schema + required: + - internalId + - name + - partnerId + - productId + type: object + type: array + required: + - resources + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + /v1/installations/{integration_configuration_id}/resources/{resource_id}: + get: + description: Get a resource by its partner ID. + operationId: get-integration-resource + security: + - bearerToken: [] + summary: Get Integration Resource + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + description: The ID provided by the 3rd party provider for the given resource + internalId: + type: string + description: The ID assigned by Vercel for the given resource + name: + type: string + description: The name of the resource as it is recorded in Vercel + status: + type: string + enum: + - error + - onboarding + - pending + - ready + - resumed + - suspended + - uninstalled + description: The current status of the resource + productId: + type: string + description: The ID of the product the resource is derived from + protocolSettings: + properties: + experimentation: + properties: + edgeConfigId: + type: string + globalConfigId: + type: string + type: object + authentication: + properties: + appUrls: + items: + properties: + url: + type: string + target: + type: string + enum: + - development + - preview + - production + required: + - target + - url + type: object + type: array + type: object + type: object + description: Any settings provided for the resource to support its product's protocols + notification: + properties: + title: + type: string + level: + type: string + enum: + - error + - info + - warn + message: + type: string + href: + type: string + required: + - level + - title + type: object + description: The notification, if set, displayed to the user when viewing the resource in Vercel + billingPlanId: + type: string + description: The ID of the billing plan the resource is subscribed to, if applicable + metadata: + additionalProperties: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + description: The configured metadata for the resource as defined by its product's Metadata Schema + - items: + type: number + type: array + description: The configured metadata for the resource as defined by its product's Metadata Schema + - type: boolean + enum: + - false + - true + type: object + description: The configured metadata for the resource as defined by its product's Metadata Schema + required: + - id + - internalId + - name + - productId + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + description: The ID of the integration configuration (installation) the resource belongs to + in: path + required: true + schema: + type: string + description: The ID of the integration configuration (installation) the resource belongs to + - name: resource_id + description: The ID provided by the 3rd party provider for the given resource + in: path + required: true + schema: + type: string + description: The ID provided by the 3rd party provider for the given resource + delete: + description: Delete a resource owned by the selected installation ID. + operationId: delete-integration-resource + security: + - bearerToken: [] + summary: Delete Integration Resource + tags: + - marketplace + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + put: + description: This endpoint imports (upserts) a resource to Vercel's installation. This may be needed if resources can be independently created on the partner's side and need to be synchronized to Vercel. When importing as part of the user-initiated import flow, call this endpoint before redirecting the user back to Vercel. See the [Import existing resources flow](https://vercel.com/docs/integrations/create-integration/marketplace-flows#import-existing-resources-flow) for the full contract. + operationId: import-resource + security: + - bearerToken: [] + summary: Import Resource + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + name: + type: string + required: + - name + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - productId + - name + - status + properties: + ownership: + type: string + enum: + - owned + - linked + - sandbox + productId: + type: string + name: + type: string + status: + type: string + enum: + - ready + - pending + - onboarding + - suspended + - resumed + - uninstalled + - error + metadata: + type: object + additionalProperties: true + billingPlan: + type: object + required: + - id + - type + - name + properties: + id: + type: string + type: + type: string + enum: + - prepayment + - subscription + name: + type: string + description: + type: string + paymentMethodRequired: + type: boolean + cost: + type: string + details: + type: array + items: + type: object + properties: + label: + type: string + value: + type: string + required: + - label + additionalProperties: false + highlightedDetails: + type: array + items: + type: object + properties: + label: + type: string + value: + type: string + required: + - label + additionalProperties: false + effectiveDate: + type: string + additionalProperties: true + notification: + type: object + required: + - level + - title + properties: + level: + type: string + enum: + - info + - warn + - error + title: + type: string + message: + type: string + href: + type: string + format: uri + pattern: '^https?://|^sso:' + extras: + type: object + additionalProperties: true + secrets: + type: array + items: + type: object + required: + - name + - value + properties: + name: + type: string + value: + type: string + prefix: + type: string + environmentOverrides: + type: object + description: 'A map of environments to override values for the secret, used for setting different values across deployments in production, preview, and development environments. Note: the same value will be used for all deployments in the given environment.' + properties: + development: + type: string + description: Value used for development environment. + preview: + type: string + description: Value used for preview environment. + production: + type: string + description: Value used for production environment. + additionalProperties: false + additionalProperties: false + patch: + description: This endpoint updates an existing resource in the installation. All parameters are optional, allowing partial updates. + operationId: update-resource + security: + - bearerToken: [] + summary: Update Resource + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + name: + type: string + required: + - name + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + ownership: + type: string + enum: + - owned + - linked + - sandbox + name: + type: string + status: + type: string + enum: + - ready + - pending + - onboarding + - suspended + - resumed + - uninstalled + - error + metadata: + type: object + additionalProperties: true + billingPlan: + type: object + required: + - id + - type + - name + properties: + id: + type: string + type: + type: string + enum: + - prepayment + - subscription + name: + type: string + description: + type: string + paymentMethodRequired: + type: boolean + cost: + type: string + details: + type: array + items: + type: object + properties: + label: + type: string + value: + type: string + required: + - label + additionalProperties: false + highlightedDetails: + type: array + items: + type: object + properties: + label: + type: string + value: + type: string + required: + - label + additionalProperties: false + effectiveDate: + type: string + additionalProperties: true + notification: + type: object + required: + - level + - title + properties: + level: + type: string + enum: + - info + - warn + - error + title: + type: string + message: + type: string + href: + type: string + format: uri + pattern: '^https?://|^sso:' + extras: + type: object + additionalProperties: true + secrets: + type: array + items: + type: object + required: + - name + - value + properties: + name: + type: string + value: + type: string + prefix: + type: string + environmentOverrides: + type: object + description: 'A map of environments to override values for the secret, used for setting different values across deployments in production, preview, and development environments. Note: the same value will be used for all deployments in the given environment.' + properties: + development: + type: string + description: Value used for development environment. + preview: + type: string + description: Value used for preview environment. + production: + type: string + description: Value used for production environment. + additionalProperties: false + required: + - secrets + properties: + secrets: + type: array + items: + type: object + required: + - name + - value + properties: + name: + type: string + value: + type: string + prefix: + type: string + environmentOverrides: + type: object + description: 'A map of environments to override values for the secret, used for setting different values across deployments in production, preview, and development environments. Note: the same value will be used for all deployments in the given environment.' + properties: + development: + type: string + description: Value used for development environment. + preview: + type: string + description: Value used for preview environment. + production: + type: string + description: Value used for production environment. + additionalProperties: false + partial: + type: boolean + description: If true, will only overwrite the provided secrets instead of replacing all secrets. + additionalProperties: false + additionalProperties: false + /v1/installations/{integration_configuration_id}/billing: + post: + description: Sends the billing and usage data. The partner should do this at least once a day and ideally once per hour.
Use the `credentials.access_token` we provided in the [Upsert Installation](#upsert-installation) body to authorize this request. + operationId: submit-billing-data + security: + - bearerToken: [] + summary: Submit Billing Data + tags: + - marketplace + responses: + '201': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + timestamp: + type: string + format: date-time + description: Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept. + eod: + type: string + format: date-time + description: End of Day, the UTC datetime for when the end of the billing/usage day is in UTC time. This tells us which day the usage data is for, and also allows for your "end of day" to be different from UTC 00:00:00. eod must be within the period dates, and cannot be older than 24h earlier from our server's current time. + period: + type: object + description: Period for the billing cycle. The period end date cannot be older than 24 hours earlier than our current server's time. + properties: + start: + type: string + format: date-time + end: + type: string + format: date-time + required: + - start + - end + additionalProperties: false + billing: + description: Billing data (interim invoicing data). + type: array + items: + type: object + properties: + billingPlanId: + type: string + description: Partner's billing plan ID. + resourceId: + type: string + description: Partner's resource ID. + start: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + end: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + name: + type: string + description: Line item name. + details: + type: string + description: Line item details. + price: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Price per unit. + quantity: + type: number + description: Quantity of units. + units: + type: string + description: Units of the quantity. + total: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Total amount. + required: + - billingPlanId + - name + - price + - quantity + - units + - total + additionalProperties: false + properties: + items: + type: array + items: + type: object + properties: + billingPlanId: + type: string + description: Partner's billing plan ID. + resourceId: + type: string + description: Partner's resource ID. + start: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + end: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + name: + type: string + description: Line item name. + details: + type: string + description: Line item details. + price: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Price per unit. + quantity: + type: number + description: Quantity of units. + units: + type: string + description: Units of the quantity. + total: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Total amount. + required: + - billingPlanId + - name + - price + - quantity + - units + - total + additionalProperties: false + discounts: + type: array + items: + type: object + properties: + billingPlanId: + type: string + description: Partner's billing plan ID. + resourceId: + type: string + description: Partner's resource ID. + start: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + end: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + name: + type: string + description: Discount name. + details: + type: string + description: Discount details. + amount: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Discount amount. + required: + - billingPlanId + - name + - amount + additionalProperties: false + required: + - items + usage: + type: array + items: + type: object + properties: + resourceId: + type: string + description: Partner's resource ID. + name: + type: string + description: Metric name. + type: + type: string + description: |2- + + Type of the metric. + - total: measured total value, such as Database size + - interval: usage during the period, such as i/o or number of queries. + - rate: rate of usage, such as queries per second. + + enum: + - total + - interval + - rate + units: + type: string + description: 'Metric units. Example: "GB"' + dayValue: + type: number + description: Metric value for the day. Could be a final or an interim value for the day. + periodValue: + type: number + description: Metric value for the billing period. Could be a final or an interim value for the period. + planValue: + type: number + description: The limit value of the metric for a billing period, if a limit is defined by the plan. + required: + - name + - type + - units + - dayValue + - periodValue + additionalProperties: false + required: + - timestamp + - eod + - period + - billing + - usage + additionalProperties: false + required: true + /v1/installations/{integration_configuration_id}/billing/invoices: + post: + description: This endpoint allows the partner to submit an invoice to Vercel. The invoice is created in Vercel's billing system and sent to the customer. Depending on the type of billing plan, the invoice can be sent at a time of signup, at the start of the billing period, or at the end of the billing period.

Use the `credentials.access_token` we provided in the [Upsert Installation](#upsert-installation) body to authorize this request.
There are several limitations to the invoice submission:

1. A resource can only be billed once per the billing period and the billing plan.
2. The billing plan used to bill the resource must have been active for this resource during the billing period.
3. The billing plan used must be a subscription plan.
4. The interim usage data must be sent hourly for all types of subscriptions. See [Send subscription billing and usage data](#send-subscription-billing-and-usage-data) API on how to send interim billing and usage data.
5. If provided, `externalId` must be unique for the installation.
+ operationId: submit-invoice + security: + - bearerToken: [] + summary: Submit Invoice + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + invoiceId: + type: string + test: + type: boolean + enum: + - false + - true + validationErrors: + items: + type: string + type: array + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + externalId: + type: string + description: Partner-provided invoice identifier. If provided, it must be unique for this installation. + invoiceDate: + type: string + format: date-time + description: Invoice date. Must be within the period's start and end. + memo: + type: string + description: Additional memo for the invoice. + period: + type: object + description: Subscription period for this billing cycle. + properties: + start: + type: string + format: date-time + end: + type: string + format: date-time + required: + - start + - end + additionalProperties: false + items: + type: array + items: + type: object + properties: + resourceId: + type: string + description: Partner's resource ID. + billingPlanId: + type: string + description: Partner's billing plan ID. + start: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + end: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + name: + type: string + details: + type: string + price: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Currency amount as a decimal string. + quantity: + type: number + units: + type: string + total: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Currency amount as a decimal string. + required: + - billingPlanId + - name + - price + - quantity + - units + - total + additionalProperties: false + discounts: + type: array + items: + type: object + properties: + resourceId: + type: string + description: Partner's resource ID. + billingPlanId: + type: string + description: Partner's billing plan ID. + start: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + end: + type: string + format: date-time + description: Start and end are only needed if different from the period's start/end. + name: + type: string + details: + type: string + amount: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: Currency amount as a decimal string. + required: + - billingPlanId + - name + - amount + additionalProperties: false + final: + type: boolean + description: Set this to `true` if this is the final invoice for the installation. Can only be set when the installation is pending deletion. + test: + type: object + description: Test mode + properties: + validate: + type: boolean + result: + type: string + enum: + - paid + - notpaid + - overdue + additionalProperties: false + required: + - invoiceDate + - period + - items + additionalProperties: false + required: true + /v1/installations/{integration_configuration_id}/billing/finalize: + post: + description: This endpoint allows the partner to mark an installation as finalized. This means you will not send any more invoices for the installation. Use this after a customer has requested uninstall and you have sent any remaining invoices. This will allow the uninstall process to proceed immediately after all invoices have been paid.
Use the `credentials.access_token` we provided in the [Upsert Installation](#upsert-installation) body to authorize this request. + operationId: finalize-installation + security: + - bearerToken: [] + summary: Finalize Installation + tags: + - marketplace + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + /v1/installations/{integration_configuration_id}/billing/invoices/{invoice_id}: + get: + description: Get Invoice details and status for a given invoice ID.

See [Billing Events with Webhooks documentation](https://vercel.com/docs/integrations/create-integration/marketplace-api#working-with-billing-events-through-webhooks) on how to receive invoice events. This endpoint is used to retrieve the invoice details. + operationId: get-invoice + security: + - bearerToken: [] + summary: Get Invoice + tags: + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + test: + type: boolean + enum: + - false + - true + description: Whether the invoice is in the testmode (no real transaction created). + invoiceId: + type: string + description: Vercel Marketplace Invoice ID. + externalId: + type: string + description: Partner-supplied Invoice ID, if applicable. + state: + type: string + enum: + - draft + - invoiced + - notpaid + - overdue + - paid + - pending + - refund_requested + - refunded + - scheduled + description: Invoice state. + invoiceNumber: + type: string + description: User-readable invoice number. + invoiceDate: + type: string + description: Invoice date. ISO 8601 timestamp. + period: + properties: + start: + type: string + end: + type: string + required: + - end + - start + type: object + description: Subscription period for this billing cycle. ISO 8601 timestamps. + paidAt: + type: string + description: Moment the invoice was paid. ISO 8601 timestamp. + refundedAt: + type: string + description: Most recent moment the invoice was refunded. ISO 8601 timestamp. + memo: + type: string + description: Additional memo for the invoice. + items: + items: + properties: + billingPlanId: + type: string + description: Partner's billing plan ID. + resourceId: + type: string + description: Partner's resource ID. If not specified, indicates installation-wide item. + start: + type: string + description: Start and end are only needed if different from the period's start/end. ISO 8601 timestamp. + end: + type: string + description: Start and end are only needed if different from the period's start/end. ISO 8601 timestamp. + name: + type: string + description: Invoice item name. + details: + type: string + description: Additional item details. + price: + type: string + description: Item price. A dollar-based decimal string. + quantity: + type: number + description: Item quantity. + units: + type: string + description: Units for item's quantity. + total: + type: string + description: Item total. A dollar-based decimal string. + required: + - billingPlanId + - name + - price + - quantity + - total + - units + type: object + description: Invoice items. + type: array + description: Invoice items. + discounts: + items: + properties: + billingPlanId: + type: string + description: Partner's billing plan ID. + resourceId: + type: string + description: Partner's resource ID. If not specified, indicates installation-wide discount. + start: + type: string + description: Start and end are only needed if different from the period's start/end. ISO 8601 timestamp. + end: + type: string + description: Start and end are only needed if different from the period's start/end. ISO 8601 timestamp. + name: + type: string + description: Discount name. + details: + type: string + description: Additional discount details. + amount: + type: string + description: Discount amount. A dollar-based decimal string. + required: + - amount + - billingPlanId + - name + type: object + description: Invoice discounts. + type: array + description: Invoice discounts. + total: + type: string + description: Invoice total amount. A dollar-based decimal string. + refundReason: + type: string + description: The reason for refund. Only applicable for states "refunded" or "refund_request". + refundTotal: + type: string + description: Refund amount. Only applicable for states "refunded" or "refund_request". A dollar-based decimal string. + created: + type: string + description: System creation date. ISO 8601 timestamp. + updated: + type: string + description: System update date. ISO 8601 timestamp. + required: + - created + - invoiceDate + - invoiceId + - items + - period + - state + - total + - updated + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: invoice_id + in: path + required: true + schema: + type: string + /v1/installations/{integration_configuration_id}/billing/invoices/{invoice_id}/actions: + post: + description: This endpoint allows the partner to request a refund for an invoice to Vercel. The invoice is created using the [Submit Invoice API](#submit-invoice-api). + operationId: update-invoice + security: + - bearerToken: [] + summary: Invoice Actions + tags: + - marketplace + responses: + '204': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: invoice_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + action: + type: string + enum: + - refund + reason: + type: string + description: Refund reason. + total: + type: string + pattern: ^[0-9]+(\.[0-9]+)?$ + description: The total amount to be refunded. Must be less than or equal to the total amount of the invoice. + required: + - action + - reason + - total + additionalProperties: false + required: true + /v1/installations/{integration_configuration_id}/billing/balance: + post: + description: Sends the prepayment balances. The partner should do this at least once a day and ideally once per hour.
Use the `credentials.access_token` we provided in the [Upsert Installation](#upsert-installation) body to authorize this request. + operationId: submit-prepayment-balances + security: + - bearerToken: [] + summary: Submit Prepayment Balances + tags: + - marketplace + responses: + '201': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + timestamp: + type: string + format: date-time + description: Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept. + balances: + type: array + items: + type: object + description: A credit balance for a particular token type + properties: + resourceId: + type: string + description: Partner's resource ID, exclude if credits are tied to the installation and not an individual resource. + credit: + type: string + description: A human-readable description of the credits the user currently has, e.g. "2,000 Tokens" + nameLabel: + type: string + description: The name of the credits, for display purposes, e.g. "Tokens" + currencyValueInCents: + type: number + description: The dollar value of the credit balance, in USD and provided in cents, which is used to trigger automatic purchase thresholds. + required: + - currencyValueInCents + additionalProperties: false + required: + - timestamp + - balances + additionalProperties: false + /v1/installations/{integration_configuration_id}/products/{integration_product_id_or_slug}/resources/{resource_id}/secrets: + put: + description: This endpoint is deprecated and replaced with the endpoint [Update Resource Secrets](#update-resource-secrets).
This endpoint updates the secrets of a resource. If a resource has projects connected, the connected secrets are updated with the new secrets. The old secrets may still be used by existing connected projects because they are not automatically redeployed. Redeployment is a manual action and must be completed by the user. All new project connections will use the new secrets.

Use cases for this endpoint:

- Resetting the credentials of a database in the partner. If the user requests the credentials to be updated in the partner’s application, the partner post the new set of secrets to Vercel, the user should redeploy their application and the expire the old credentials.
+ operationId: update-resource-secrets + security: + - bearerToken: [] + summary: 'Deprecated: true. Update Resource Secrets (Deprecated)' + tags: + - marketplace + deprecated: true + responses: + '201': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: integration_product_id_or_slug + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - secrets + properties: + secrets: + type: array + items: + type: object + required: + - name + - value + properties: + name: + type: string + value: + type: string + prefix: + type: string + environmentOverrides: + type: object + description: 'A map of environments to override values for the secret, used for setting different values across deployments in production, preview, and development environments. Note: the same value will be used for all deployments in the given environment.' + properties: + development: + type: string + description: Value used for development environment. + preview: + type: string + description: Value used for preview environment. + production: + type: string + description: Value used for production environment. + additionalProperties: false + partial: + type: boolean + description: If true, will only update the provided secrets + additionalProperties: false + required: true + /v1/installations/{integration_configuration_id}/resources/{resource_id}/secrets: + put: + description: This endpoint updates the secrets of a resource. If a resource has projects connected, the connected secrets are updated with the new secrets. The old secrets may still be used by existing connected projects because they are not automatically redeployed. Redeployment is a manual action and must be completed by the user. All new project connections will use the new secrets.

Use cases for this endpoint:

- Resetting the credentials of a database in the partner. If the user requests the credentials to be updated in the partner’s application, the partner post the new set of secrets to Vercel, the user should redeploy their application and the expire the old credentials.
+ operationId: update-resource-secrets-by-id + security: + - bearerToken: [] + summary: Update Resource Secrets + tags: + - marketplace + responses: + '201': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + required: + - secrets + properties: + secrets: + type: array + items: + type: object + required: + - name + - value + properties: + name: + type: string + value: + type: string + prefix: + type: string + environmentOverrides: + type: object + description: 'A map of environments to override values for the secret, used for setting different values across deployments in production, preview, and development environments. Note: the same value will be used for all deployments in the given environment.' + properties: + development: + type: string + description: Value used for development environment. + preview: + type: string + description: Value used for preview environment. + production: + type: string + description: Value used for production environment. + additionalProperties: false + partial: + type: boolean + description: If true, will only overwrite the provided secrets instead of replacing all secrets. + additionalProperties: false + /v1/integrations/sso/token: + post: + description: During the autorization process, Vercel sends the user to the provider [redirectLoginUrl](https://vercel.com/docs/integrations/create-integration/submit-integration#redirect-login-url), that includes the OAuth authorization `code` parameter. The provider then calls the SSO Token Exchange endpoint with the sent code and receives the OIDC token. They log the user in based on this token and redirects the user back to the Vercel account using deep-link parameters included the redirectLoginUrl. Providers should not persist the returned `id_token` in a database since the token will expire. See [**Authentication with SSO**](https://vercel.com/docs/integrations/create-integration/marketplace-api#authentication-with-sso) for more details. + operationId: exchange-sso-token + security: [] + summary: SSO Token Exchange + tags: + - authentication + - marketplace + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id_token: + type: string + token_type: + nullable: true + type: string + expires_in: + type: number + access_token: + nullable: true + type: string + refresh_token: + type: string + required: + - access_token + - id_token + - token_type + - expires_in + - refresh_token + type: object + '400': + description: One of the provided values in the request body is invalid. + '403': + description: '' + '500': + description: '' + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + required: + - code + - client_id + - client_secret + - grant_type + - refresh_token + properties: + code: + type: string + description: The sensitive code received from Vercel + state: + type: string + description: The state received from the initialization request + client_id: + type: string + description: The integration client id + client_secret: + type: string + description: The integration client secret + redirect_uri: + type: string + description: The integration redirect URI + grant_type: + type: string + description: The grant type, when using x-www-form-urlencoded content type + enum: + - authorization_code + refresh_token: + type: string + description: The refresh token received from previous token exchange + required: true + /v1/installations/{integration_configuration_id}/resources/{resource_id}/experimentation/items: + post: + description: Create one or multiple experimentation items + operationId: createInstallationsByIntegrationConfigurationIdResourcesByResourceIdExperimentationItems + security: + - bearerToken: [] + summary: Create one or multiple experimentation items + tags: + - marketplace + responses: + '204': + description: The items were created + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - items + properties: + items: + type: array + maxItems: 50 + items: + type: object + additionalProperties: false + required: + - id + - slug + - origin + properties: + id: + type: string + maxLength: 1024 + slug: + type: string + maxLength: 1024 + origin: + type: string + maxLength: 2048 + category: + type: string + enum: + - experiment + - flag + name: + type: string + maxLength: 1024 + description: + type: string + maxLength: 1024 + isArchived: + type: boolean + createdAt: + type: number + updatedAt: + type: number + x-speakeasy-name-override: createInstallationIntegrationConfiguration + /v1/installations/{integration_configuration_id}/resources/{resource_id}/experimentation/items/{item_id}: + patch: + description: Patch an existing experimentation item + operationId: updateInstallationsByIntegrationConfigurationIdResourcesByResourceIdExperimentationItemsByItemId + security: + - bearerToken: [] + summary: Patch an existing experimentation item + tags: + - marketplace + responses: + '204': + description: The item was updated + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + - name: item_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - slug + - origin + properties: + slug: + type: string + maxLength: 1024 + origin: + type: string + maxLength: 2048 + name: + type: string + maxLength: 1024 + category: + type: string + enum: + - experiment + - flag + description: + type: string + maxLength: 1024 + isArchived: + type: boolean + createdAt: + type: number + updatedAt: + type: number + x-speakeasy-name-override: updateInstallationIntegrationConfiguration + delete: + description: Delete an existing experimentation item + operationId: deleteInstallationsByIntegrationConfigurationIdResourcesByResourceIdExperimentationItemsByItemId + security: + - bearerToken: [] + summary: Delete an existing experimentation item + tags: + - marketplace + responses: + '204': + description: The item was deleted + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + - name: item_id + in: path + required: true + schema: + type: string + x-speakeasy-name-override: deleteInstallationIntegrationConfiguration + /v1/installations/{integration_configuration_id}/resources/{resource_id}/experimentation/global-config: + head: + description: When the user enabled Global Config syncing, then this endpoint can be used by the partner to fetch the contents of the Global Config. + operationId: headInstallationsByIntegrationConfigurationIdResourcesByResourceIdExperimentationGlobalConfig + security: + - bearerToken: [] + summary: Get the data of a user-provided Global Config + tags: + - marketplace + responses: + '200': + description: The Global Config data + content: + application/json: + schema: + properties: + items: + additionalProperties: + $ref: '#/components/schemas/GlobalConfigItemValue' + type: object + updatedAt: + type: number + digest: + type: string + purpose: + type: string + enum: + - experimentation + - flags + required: + - digest + - items + - updatedAt + type: object + '304': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integrationConfigurationId + in: path + required: true + schema: + type: string + - name: resourceId + in: path + required: true + schema: + type: string + get: + description: When the user enabled Global Config syncing, then this endpoint can be used by the partner to fetch the contents of the Global Config. + operationId: getInstallationsByIntegrationConfigurationIdResourcesByResourceIdExperimentationGlobalConfig + security: + - bearerToken: [] + summary: Get the data of a user-provided Global Config + tags: + - marketplace + responses: + '200': + description: The Global Config data + content: + application/json: + schema: + properties: + items: + additionalProperties: + $ref: '#/components/schemas/GlobalConfigItemValue' + type: object + updatedAt: + type: number + digest: + type: string + purpose: + type: string + enum: + - experimentation + - flags + required: + - digest + - items + - updatedAt + type: object + '304': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + put: + description: When the user enabled Global Config syncing, then this endpoint can be used by the partner to push their configuration data into the relevant Global Config. + operationId: replaceInstallationsByIntegrationConfigurationIdResourcesByResourceIdExperimentationGlobalConfig + security: + - bearerToken: [] + summary: Push data into a user-provided Global Config + tags: + - marketplace + responses: + '200': + description: The Global Config was updated + content: + application/json: + schema: + properties: + items: + additionalProperties: + $ref: '#/components/schemas/GlobalConfigItemValue' + type: object + updatedAt: + type: number + digest: + type: string + purpose: + type: string + enum: + - experimentation + - flags + required: + - digest + - items + - updatedAt + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '412': + description: '' + parameters: + - name: integration_configuration_id + in: path + required: true + schema: + type: string + - name: resource_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - data + properties: + data: + type: object + additionalProperties: {} +components: + schemas: + GlobalConfigItemValue: + nullable: true + type: string + additionalProperties: + $ref: '#/components/schemas/GlobalConfigItemValue' + items: + $ref: '#/components/schemas/GlobalConfigItemValue' + enum: + - false + - true + x-stackQL-resources: + installations: + id: vercel.marketplace.installations + name: installations + title: Installations + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + rotate_credential: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1credentials~1rotate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + revoke_credential: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1credentials~1revoke/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + finalize: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1billing~1finalize/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/installations/methods/update' + delete: [] + replace: [] + account_info: + id: vercel.marketplace.account_info + name: account_info + title: Account Info + methods: + get: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1account/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/account_info/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + members: + id: vercel.marketplace.members + name: members + title: Members + methods: + get: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1member~1{member_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/members/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + events: + id: vercel.marketplace.events + name: events + title: Events + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1events/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/events/methods/create' + update: [] + delete: [] + replace: [] + resources: + id: vercel.marketplace.resources + name: resources + title: Resources + methods: + list: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.resources + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + import: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_secrets: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1products~1{integration_product_id_or_slug}~1resources~1{resource_id}~1secrets/put' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + update_secrets_by_id: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1secrets/put' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/resources/methods/get' + - $ref: '#/components/x-stackQL-resources/resources/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/resources/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/resources/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/resources/methods/import' + billing: + id: vercel.marketplace.billing + name: billing + title: Billing + methods: + submit: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1billing/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + submit_prepayment_balances: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1billing~1balance/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + invoices: + id: vercel.marketplace.invoices + name: invoices + title: Invoices + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1billing~1invoices/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1billing~1invoices~1{invoice_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1billing~1invoices~1{invoice_id}~1actions/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/invoices/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/invoices/methods/create' + update: [] + delete: [] + replace: [] + sso_tokens: + id: vercel.marketplace.sso_tokens + name: sso_tokens + title: Sso Tokens + methods: + exchange: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1integrations~1sso~1token/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + experimentation_items: + id: vercel.marketplace.experimentation_items + name: experimentation_items + title: Experimentation Items + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1experimentation~1items/post' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1experimentation~1items~1{item_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1experimentation~1items~1{item_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/experimentation_items/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/experimentation_items/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/experimentation_items/methods/delete' + replace: [] + experimentation_edge_config: + id: vercel.marketplace.experimentation_edge_config + name: experimentation_edge_config + title: Experimentation Edge Config + methods: + get: + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1experimentation~1global-config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $ + request: + nativeCasing: camel + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1installations~1{integration_configuration_id}~1resources~1{resource_id}~1experimentation~1global-config/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/experimentation_edge_config/methods/get' + insert: [] + update: [] + delete: [] + replace: + - $ref: '#/components/x-stackQL-resources/experimentation_edge_config/methods/replace' +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/microfrontends.yaml b/providers/src/vercel/v00.00.00000/services/microfrontends.yaml new file mode 100644 index 00000000..363dbca4 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/microfrontends.yaml @@ -0,0 +1,6004 @@ +openapi: 3.0.3 +info: + title: microfrontends API + description: vercel microfrontends API + version: 0.0.1 +paths: + /v1/microfrontends/groups: + get: + description: Get the microfrontends group IDs for a team. + operationId: getMicrofrontendsGroups + security: + - bearerToken: [] + summary: List microfrontends groups + tags: + - microfrontends + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: + groups: + type: array + items: + type: object + additionalProperties: true + maxMicrofrontendsGroupsPerTeam: + type: number + maxMicrofrontendsPerGroup: + type: number + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/microfrontends/groups/{group_id}/projects: + get: + description: Get the microfrontends for a given group ID. + operationId: getMicrofrontendsInGroup + security: + - bearerToken: [] + summary: List projects in a microfrontends group + tags: + - microfrontends + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + projects: + items: + properties: + accountId: + type: string + creator: + oneOf: + - properties: + type: + type: string + enum: + - user + via: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object + required: + - type + - user + - via + type: object + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + - properties: + type: + type: string + enum: + - system + required: + - type + type: object + alias: + items: + properties: + configuredBy: + nullable: true + type: string + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number + createdAt: + nullable: true + type: number + deployment: + nullable: true + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + domain: + type: string + environment: + type: string + enum: + - preview + - production + gitBranch: + nullable: true + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: + type: string + enum: + - PREVIEW + - PRODUCTION + - STAGING + required: + - deployment + - domain + - environment + - target + type: object + type: array + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - disabledAt + - enabledAt + - id + type: object + appliedCve55182Migration: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + autoAssignCustomDomains: + type: boolean + enum: + - false + - true + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurations: + nullable: true + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: + type: boolean + enum: + - false + - true + buildsEnabled: + type: boolean + enum: + - false + - true + aws: + properties: + subnetIds: + items: + type: string + type: array + securityGroupId: + type: string + required: + - subnetIds + type: object + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + type: array + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + enum: + - false + - true + passiveConnectConfigurationId: + nullable: true + type: string + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + enum: + - false + - true + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + source: + type: string + enum: + - api + description: The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json). + description: + type: string + description: A human-readable description of what this cron job does. + hostInferred: + type: boolean + enum: + - false + - true + description: Whether the host was inferred from the production deployment URL rather than explicitly provided. + required: + - host + - path + - schedule + type: object + type: array + required: + - definitions + - deploymentId + - disabledAt + - enabledAt + - updatedAt + type: object + dataCache: + properties: + userDisabled: + type: boolean + enum: + - false + - true + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + enum: + - false + - true + required: + - userDisabled + type: object + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + expiration: + oneOf: + - properties: + expiresAt: + type: number + description: Unix ms timestamp when the project is scheduled to expire. + required: + - expiresAt + type: object + - properties: + lockedAt: + type: number + description: Unix ms timestamp when the project was locked. + lockedBy: + type: string + description: userId of the actor that triggered the lock (system or admin). + required: + - lockedAt + - lockedBy + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + enum: + - false + - true + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + value: + type: string + vsmValue: + type: string + id: + type: string + key: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + required: + - key + - type + - value + type: object + type: array + customEnvironments: + items: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + type: array + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + services: + items: + properties: + serviceName: + type: string + description: Service name from the deployment (Service.name). + serviceType: + type: string + enum: + - cron + - job + - web + - worker + description: Service kind (Service.type). Omitted for schemas that do not define one. + framework: + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + description: Framework slug, when the service has one (omitted otherwise). + runtime: + type: string + description: Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds. + required: + - serviceName + type: object + type: array + gitForkProtection: + type: boolean + enum: + - false + - true + gitLFS: + type: boolean + enum: + - false + - true + id: + type: string + ipBuckets: + items: + properties: + bucket: + type: string + default: + type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object + type: array + jobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + typecheck: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + mfe-config-present: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + type: object + latestDeployments: + items: + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + type: object + - properties: + type: + type: string + enum: + - github-limited + createdAt: + type: number + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + type: object + - properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github-custom-host + host: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - host + - org + - productionBranch + - type + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - productionBranch + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - type + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - name + - owner + - productionBranch + - slug + - type + - uuid + - workspaceUuid + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: string + type: + type: string + enum: + - vercel + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - repo + - repoId + - type + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: string + type: + type: string + enum: + - v0 + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - repo + - repoId + - type + type: object + - properties: + owner: + type: string + description: Owner (namespace) slug, e.g. `acme`. + repo: + type: string + repoId: + type: string + description: Origin repository id. + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + type: + type: string + enum: + - cursor-origin + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - owner + - ownerId + - productionBranch + - repo + - repoId + - type + type: object + blobs: + properties: + isDefaultApp: + type: boolean + enum: + - false + - true + description: Marks the team-level, Vercel-managed default blob project (`vercel-blob-default-project`) that orphan blob stores are scoped to when connected without an explicit project. Set only by internal storage flows and immutable after creation — guards rely on it to protect the connected stores from being lost when the project is deleted or transferred. + type: object + microfrontends: + oneOf: + - properties: + isDefaultApp: + type: boolean + enum: + - true + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + required: + - enabled + - groupIds + - isDefaultApp + - updatedAt + type: object + - properties: + isDefaultApp: + type: boolean + enum: + - false + routeObservabilityToThisProject: + type: boolean + enum: + - false + - true + description: Whether observability data should be routed to this microfrontend project or a root project. + doNotRouteWithMicrofrontendsRouting: + type: boolean + enum: + - false + - true + description: Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend. + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + required: + - enabled + - groupIds + - updatedAt + type: object + - properties: + updatedAt: + type: number + groupIds: + type: array + items: {} + minItems: 0 + maxItems: 0 + enabled: + type: boolean + enum: + - false + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + required: + - enabled + - groupIds + - updatedAt + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + protectionConfig: + properties: + sandboxUrls: + properties: + inheritDeploymentProtection: + type: boolean + enum: + - false + - true + type: object + type: object + sandbox: + properties: + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + failoverRegions: + items: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + type: array + type: object + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rollbackDescription: + properties: + userId: + type: string + description: The user who rolled back the project. + username: + type: string + description: The username of the user who rolled back the project. + description: + type: string + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: + items: + properties: + type: + type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 + required: + - type + type: object + description: The checks to evaluate. An empty array means nothing is evaluated. + type: array + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: + type: number + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: + type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. + required: + - action + - checks + - dryRun + - enabled + type: object + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + defaultResourceConfig: + properties: + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rootDirectory: + nullable: true + type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + skewProtectionBoundaryAt: + type: number + skewProtectionMaxAge: + type: number + skewProtectionAllowedDomains: + items: + type: string + type: array + skipGitConnectDuringLink: + type: boolean + enum: + - false + - true + staticIps: + properties: + builds: + type: boolean + enum: + - false + - true + enabled: + type: boolean + enum: + - false + - true + regions: + items: + type: string + type: array + required: + - builds + - enabled + - regions + type: object + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enum: + - false + - true + enablePreviewFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null + enableProductionFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null + permissions: + properties: + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + bulkRedirects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachine: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentBuildLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + environments: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + onDemandBuild: + items: + $ref: '#/components/schemas/ACLAction' + type: array + onDemandConcurrency: + items: + $ref: '#/components/schemas/ACLAction' + type: array + optionsAllowlist: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateLinkEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + productionAliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + productionShareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAccessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectCheckRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentExpiration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentProtectionStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainVerify: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlags: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsSdkKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFromV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectOIDCToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRollingRelease: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRoutes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTier: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + pageIntegrity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityPlusConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLinkStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + skewProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedSources: + items: + $ref: '#/components/schemas/ACLAction' + type: array + v0Chat: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAuth: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + workflowRunData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Connection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userMfaConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userPreference: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAuthn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + accessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + agent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyBypassAll: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeySpendAttribution: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyZdrExemption: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayCredits: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayPrivateModels: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayGuardrails: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewaySettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscripts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscriptsSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayVirtualModelConfigs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alerts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alertRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyAiGateway: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Application: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallationRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + automation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingRefund: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blobStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeChecks: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeOwners: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciInvocations: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClientProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexContact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachineDefault: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cursorOriginInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + defaultDeploymentProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + drain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigSchema: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + flagsExplorerSubscription: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + imageOptimizationNewPrice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationRole: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationDeploymentAction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResource: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceReplCommand: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceSecrets: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationSSOSession: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationPullRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsIssuer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsProjectGrant: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceBillingData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationEdgeConfigData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceFlexCommit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInstallationMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPreferences: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationStatementOfReasons: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oidcFederationPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityFunnel: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityNotebook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organization: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organizationDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organizationTeam: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgresStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateCloudAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redisStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + repository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeIsLocked: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeTokenSetSensitive: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamGitExclusivity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamMemberMfaStatus: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamMicrofrontends: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamTokenInvalidation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + toolbarComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vcrRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vpcPeeringConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: string + description: (opaque JSON object) + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + nullable: true + type: string + toDeploymentId: + type: string + fromRollingReleaseId: + type: string + description: If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release. + jobStatus: + type: string + enum: + - failed + - in-progress + - pending + - skipped + - succeeded + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - jobStatus + - requestedAt + - toDeploymentId + - type + type: object + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + enum: + - false + - true + trustedIps: + nullable: true + oneOf: + - properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - addresses + - deploymentType + - protectionMode + type: object + - properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + required: + - deploymentType + type: object + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: + items: + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: + type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object + required: + - claims + - to + type: object + type: array + type: object + type: object + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + gitProviderOptions: + properties: + createDeployments: + type: string + enum: + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + concurrencyBucketName: + type: string + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: + nullable: true + type: number + firewallConfigVersion: + type: number + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: + items: + type: string + type: array + managedRules: + nullable: true + properties: + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + bot_filter: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + deploymentPolicy: + nullable: true + properties: + gitSources: + nullable: true + items: + properties: + sources: + items: + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: + type: string + required: + - org + - provider + type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + deploymentSources: + nullable: true + items: + properties: + sources: + items: + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + type: object + description: Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident. + tier: + type: string + enum: + - advanced + - critical + - priority + usageStatus: + properties: + kind: + type: string + enum: + - flat + description: Billing mode. Always 'flat' for flat-rate projects. + exceededAllowanceUntil: + type: number + description: Timestamp until which the project has exceeded its CDN allowance. + bypassThrottleUntil: + type: number + description: Timestamp until which throttling is bypassed (project pays list rates for overage). + throttled: + type: boolean + enum: + - false + - true + description: Per-project throttle, set explicitly for this project (e.g. via the per-project Flat Rate CDN endpoint). + teamThrottled: + type: boolean + enum: + - false + - true + description: Synced from `team.billing.usageStatus.throttled`. When `true`, the team has throttled all of its projects regardless of `throttled`. The effective throttle the CDN enforces is `throttled || teamThrottled`. + required: + - kind + type: object + features: + properties: + webAnalytics: + type: boolean + enum: + - false + - true + type: object + v0: + type: boolean + enum: + - false + - true + v0Created: + type: boolean + enum: + - false + - true + abuse: + properties: + scanner: + type: string + history: + items: + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object + type: array + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: + items: + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object + type: array + interstitial: + type: boolean + enum: + - false + - true + interstitialHistory: + items: + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object + type: array + required: + - history + - updatedAt + type: object + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + hasDeployments: + type: boolean + enum: + - false + - true + dismissedToasts: + items: + properties: + key: + type: string + dismissedAt: + type: number + action: + type: string + enum: + - accept + - cancel + - delete + value: + nullable: true + oneOf: + - type: string + - type: number + - properties: + previousValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + currentValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + required: + - currentValue + - previousValue + type: object + - type: boolean + enum: + - false + - true + required: + - action + - dismissedAt + - key + - value + type: object + type: array + protectedSourcemaps: + type: boolean + enum: + - false + - true + tracing: + properties: + domains: + type: string + ignorePaths: + items: + type: string + type: array + samplingRules: + items: + properties: + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + destination: + type: string + enum: + - external + - internal + description: Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed. + required: + - rate + type: object + type: array + type: object + avatar: + nullable: true + type: string + required: + - accountId + - alias + - defaultResourceConfig + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + type: object + type: array + required: + - projects + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: group_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/microfrontends/{deployment_id}/config: + get: + description: Get the microfrontends config for a deployment. + operationId: getMicrofrontendsConfig + security: + - bearerToken: [] + summary: Get microfrontends config for a deployment + tags: + - microfrontends + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + config: + nullable: true + properties: + $schema: + type: string + description: See https://openapi.vercel.sh/microfrontends.json. + version: + type: string + enum: + - '1' + description: The version of the microfrontends config schema. + applications: + additionalProperties: + oneOf: + - properties: + development: + properties: + fallback: + type: string + description: 'Fallback for local development, could point to any environment. This is required for the default app. This value is used as the fallback for child apps as well if they do not have a fallback. If passing a string, include the protocol (optional), host (required) and port (optional). For example: `https://this.ismyhost:8080`. If omitted, the protocol defaults to HTTPS. If omitted, the port defaults to `80` for HTTP and `443` for HTTPS. See https://vercel.com/docs/microfrontends/local-development.' + local: + oneOf: + - type: string + - type: number + task: + type: string + description: The task to run when starting the development server. Should reference a script in the package.json of the application. The default value is "dev". See https://vercel.com/docs/microfrontends/local-development. + required: + - fallback + type: object + description: Development configuration for the default application. + packageName: + type: string + description: The name used to run the application, e.g. the `name` field in the `package.json`. This is used by the local proxy to map the application config to the locally running app. This is only necessary when the application name does not match the `name` used in `package.json`. See https://vercel.com/docs/microfrontends/configuration#application-naming. + projectId: + type: string + required: + - development + - projectId + type: object + - properties: + development: + properties: + fallback: + type: string + description: 'Fallback for local development, could point to any environment. If not provided for child apps, the fallback of the default app will be used. If passing a string, include the protocol (optional), host (required) and port (optional). For example: `https://this.ismyhost:8080`. If omitted, the protocol defaults to HTTPS. If omitted, the port defaults to `80` for HTTP and `443` for HTTPS. See https://vercel.com/docs/microfrontends/local-development.' + local: + oneOf: + - type: string + - type: number + task: + type: string + description: The task to run when starting the development server. Should reference a script in the package.json of the application. The default value is "dev". See https://vercel.com/docs/microfrontends/local-development. + type: object + description: Development configuration for the child application. + routing: + items: + properties: + group: + type: string + description: Group name for the paths. + flag: + type: string + description: The name of the feature flag that controls routing for this group of paths. See https://vercel.com/docs/microfrontends/path-routing#routing-changes-safely-with-flags. + paths: + items: + type: string + type: array + description: A list of path expressions that are routed to this application. See https://vercel.com/docs/microfrontends/path-routing#supported-path-expressions. + required: + - paths + type: object + description: Groups of path expressions that are routed to this application. See https://vercel.com/docs/microfrontends/path-routing. + type: array + description: Groups of path expressions that are routed to this application. See https://vercel.com/docs/microfrontends/path-routing. + assetPrefix: + type: string + description: The name of the asset prefix to use instead of the auto-generated name. The asset prefix is used to prefix all paths to static assets, such as JS, CSS, or images that are served by a specific application. It is necessary to ensure there are no conflicts with other applications on the same domain. An auto-generated asset prefix of the form `vc-ap-` is used when this field is not provided. When this field is provided, `/${assetPrefix}/:path*` must also be added to the list of paths in the `routing` field. Changing the asset prefix after a microfrontend application has already been deployed is not a forwards and backwards compatible change, and the asset prefix should be added to the `routing` field and deployed before setting the `assetPrefix` field. The default value is the auto-generated asset prefix of the form `vc-ap-`. See https://vercel.com/docs/microfrontends/path-routing#asset-prefix. + packageName: + type: string + description: The name used to run the application, e.g. the `name` field in the `package.json`. This is used by the local proxy to map the application config to the locally running app. This is only necessary when the application name does not match the `name` used in `package.json`. See https://vercel.com/docs/microfrontends/configuration#application-naming. + projectId: + type: string + required: + - projectId + - routing + type: object + type: object + options: + properties: + disableOverrides: + type: boolean + enum: + - false + - true + description: If you want to disable the overrides for the site. For example, if you are managing rewrites between applications externally, you may wish to disable the overrides on the toolbar as they will have no effect. See https://vercel.com/docs/microfrontends/managing-microfrontends/vercel-toolbar#routing-overrides. + localProxyPort: + type: number + description: The port number used by the local proxy server. The default value is 3024. See https://vercel.com/docs/microfrontends/local-development. + type: object + description: Optional configuration options for the microfrontend. + required: + - applications + type: object + description: projectIds are added when the config is uploaded to s3 deployment assets. + required: + - config + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: deployment_id + description: The unique deployment identifier + in: path + required: true + schema: + description: The unique deployment identifier + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/microfrontends/projects/{project_id_or_name}/production-mfe-config: + get: + description: Get the microfrontends config for a project by ID or name. + operationId: getMicrofrontendsConfigForProject + security: + - bearerToken: [] + summary: Get microfrontends config for a project + tags: + - microfrontends + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + config: + nullable: true + properties: + $schema: + type: string + description: See https://openapi.vercel.sh/microfrontends.json. + version: + type: string + enum: + - '1' + description: The version of the microfrontends config schema. + applications: + additionalProperties: + oneOf: + - properties: + development: + properties: + fallback: + type: string + description: 'Fallback for local development, could point to any environment. This is required for the default app. This value is used as the fallback for child apps as well if they do not have a fallback. If passing a string, include the protocol (optional), host (required) and port (optional). For example: `https://this.ismyhost:8080`. If omitted, the protocol defaults to HTTPS. If omitted, the port defaults to `80` for HTTP and `443` for HTTPS. See https://vercel.com/docs/microfrontends/local-development.' + local: + oneOf: + - type: string + - type: number + task: + type: string + description: The task to run when starting the development server. Should reference a script in the package.json of the application. The default value is "dev". See https://vercel.com/docs/microfrontends/local-development. + required: + - fallback + type: object + description: Development configuration for the default application. + packageName: + type: string + description: The name used to run the application, e.g. the `name` field in the `package.json`. This is used by the local proxy to map the application config to the locally running app. This is only necessary when the application name does not match the `name` used in `package.json`. See https://vercel.com/docs/microfrontends/configuration#application-naming. + projectId: + type: string + required: + - development + - projectId + type: object + - properties: + development: + properties: + fallback: + type: string + description: 'Fallback for local development, could point to any environment. If not provided for child apps, the fallback of the default app will be used. If passing a string, include the protocol (optional), host (required) and port (optional). For example: `https://this.ismyhost:8080`. If omitted, the protocol defaults to HTTPS. If omitted, the port defaults to `80` for HTTP and `443` for HTTPS. See https://vercel.com/docs/microfrontends/local-development.' + local: + oneOf: + - type: string + - type: number + task: + type: string + description: The task to run when starting the development server. Should reference a script in the package.json of the application. The default value is "dev". See https://vercel.com/docs/microfrontends/local-development. + type: object + description: Development configuration for the child application. + routing: + items: + properties: + group: + type: string + description: Group name for the paths. + flag: + type: string + description: The name of the feature flag that controls routing for this group of paths. See https://vercel.com/docs/microfrontends/path-routing#routing-changes-safely-with-flags. + paths: + items: + type: string + type: array + description: A list of path expressions that are routed to this application. See https://vercel.com/docs/microfrontends/path-routing#supported-path-expressions. + required: + - paths + type: object + description: Groups of path expressions that are routed to this application. See https://vercel.com/docs/microfrontends/path-routing. + type: array + description: Groups of path expressions that are routed to this application. See https://vercel.com/docs/microfrontends/path-routing. + assetPrefix: + type: string + description: The name of the asset prefix to use instead of the auto-generated name. The asset prefix is used to prefix all paths to static assets, such as JS, CSS, or images that are served by a specific application. It is necessary to ensure there are no conflicts with other applications on the same domain. An auto-generated asset prefix of the form `vc-ap-` is used when this field is not provided. When this field is provided, `/${assetPrefix}/:path*` must also be added to the list of paths in the `routing` field. Changing the asset prefix after a microfrontend application has already been deployed is not a forwards and backwards compatible change, and the asset prefix should be added to the `routing` field and deployed before setting the `assetPrefix` field. The default value is the auto-generated asset prefix of the form `vc-ap-`. See https://vercel.com/docs/microfrontends/path-routing#asset-prefix. + packageName: + type: string + description: The name used to run the application, e.g. the `name` field in the `package.json`. This is used by the local proxy to map the application config to the locally running app. This is only necessary when the application name does not match the `name` used in `package.json`. See https://vercel.com/docs/microfrontends/configuration#application-naming. + projectId: + type: string + required: + - projectId + - routing + type: object + type: object + options: + properties: + disableOverrides: + type: boolean + enum: + - false + - true + description: If you want to disable the overrides for the site. For example, if you are managing rewrites between applications externally, you may wish to disable the overrides on the toolbar as they will have no effect. See https://vercel.com/docs/microfrontends/managing-microfrontends/vercel-toolbar#routing-overrides. + localProxyPort: + type: number + description: The port number used by the local proxy server. The default value is 3024. See https://vercel.com/docs/microfrontends/local-development. + type: object + description: Optional configuration options for the microfrontend. + required: + - applications + type: object + description: projectIds are added when the config is uploaded to s3 deployment assets. + required: + - config + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id_or_name + description: The name or ID of the project + in: path + required: true + schema: + description: The name or ID of the project + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/microfrontends/group: + post: + description: Creates a microfrontends group and attaches multiple projects in a single request. + operationId: createMicrofrontendsGroupWithApplications + security: + - bearerToken: [] + summary: Create a microfrontends group with applications + tags: + - microfrontends + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + newMicrofrontendsGroup: + properties: + id: + type: string + slug: + type: string + name: + type: string + fallbackEnvironment: + type: string + enablePolyrepoBranchRouting: + type: boolean + enum: + - false + - true + createdAt: + type: number + updatedAt: + type: number + required: + - createdAt + - enablePolyrepoBranchRouting + - fallbackEnvironment + - id + - name + - slug + - updatedAt + type: object + required: + - newMicrofrontendsGroup + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - groupName + - defaultApp + - otherApplications + properties: + groupName: + type: string + example: MFE Group 1 + description: The name of the microfrontends group that will be used to identify the group + defaultApp: + type: object + required: + - projectId + description: The default app for the new microfrontend group + properties: + projectId: + type: string + description: The id of the project that will be used as the default app for the new microfrontend group + defaultRoute: + type: string + description: The default route for the default app of the new microfrontend group + otherApplications: + type: array + description: The list of other applications that will be used in the new microfrontend group + items: + type: object + required: + - projectId + properties: + projectId: + type: string + description: The id of the project that will be used in the new microfrontend group + defaultRoute: + type: string + description: The default route for the application in the new microfrontend group +components: + schemas: + ACLAction: + type: string + enum: + - create + - delete + - list + - read + - update + description: Enum containing the actions that can be performed against a resource. Group operations are included. + x-stackQL-resources: + groups: + id: vercel.microfrontends.groups + name: groups + title: Groups + methods: + list: + operation: + $ref: '#/paths/~1v1~1microfrontends~1groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1microfrontends~1group/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/groups/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/groups/methods/create' + update: [] + delete: [] + replace: [] + group_projects: + id: vercel.microfrontends.group_projects + name: group_projects + title: Group Projects + methods: + list: + operation: + $ref: '#/paths/~1v1~1microfrontends~1groups~1{group_id}~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.projects + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/group_projects/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + deployment_config: + id: vercel.microfrontends.deployment_config + name: deployment_config + title: Deployment Config + methods: + get: + operation: + $ref: '#/paths/~1v1~1microfrontends~1{deployment_id}~1config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.config + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/deployment_config/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + project_config: + id: vercel.microfrontends.project_config + name: project_config + title: Project Config + methods: + get: + operation: + $ref: '#/paths/~1v1~1microfrontends~1projects~1{project_id_or_name}~1production-mfe-config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.config + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/project_config/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/networking.yaml b/providers/src/vercel/v00.00.00000/services/networking.yaml new file mode 100644 index 00000000..bcdfe6b5 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/networking.yaml @@ -0,0 +1,1083 @@ +openapi: 3.0.3 +info: + title: networking API + description: vercel networking API + version: 0.0.1 +paths: + /v1/connect/networks: + get: + description: Allows to list Secure Compute networks. + operationId: listNetworks + security: + - bearerToken: [] + summary: List Secure Compute networks + tags: + - networking + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ListNetworksResponse' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: includeHostedZones + description: Whether to include Hosted Zones in the response + in: query + schema: + type: boolean + description: Whether to include Hosted Zones in the response + default: true + - name: includePeeringConnections + description: Whether to include VPC Peering connections in the response + in: query + schema: + type: boolean + description: Whether to include VPC Peering connections in the response + default: true + - name: includeProjects + description: Whether to include projects in the response + in: query + schema: + type: boolean + description: Whether to include projects in the response + default: true + - name: search + description: The query to use as a filter for returned networks + in: query + schema: + type: string + description: The query to use as a filter for returned networks + maxLength: 255 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Allows to create a Secure Compute network. + operationId: createNetwork + security: + - bearerToken: [] + summary: Create a Secure Compute network + tags: + - networking + responses: + '201': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Network' + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + awsAvailabilityZoneIds: + type: array + items: + type: string + description: An AWS Availability Zone ID to use for the network + example: use1-az1 + minItems: 2 + maxItems: 2 + cidr: + type: string + description: The CIDR block of the network + example: 192.168.0.0/16 + name: + type: string + description: The name of the network + maxLength: 255 + region: + type: string + description: The region where the network will be created + example: iad1 + required: + - cidr + - name + - region + /v1/connect/networks/{network_id}: + delete: + description: Allows to delete a Secure Compute network. + operationId: deleteNetwork + security: + - bearerToken: [] + summary: Delete a Secure Compute network + tags: + - networking + responses: + '204': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + parameters: + - name: network_id + description: The ID of the network to delete + in: path + required: true + schema: + type: string + description: The ID of the network to delete + example: uzrmorq7bn05z-fz + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Allows to update a Secure Compute network. + operationId: updateNetwork + security: + - bearerToken: [] + summary: Update a Secure Compute network + tags: + - networking + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Network' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: network_id + description: The unique identifier of the Secure Compute network + in: path + required: true + schema: + type: string + description: The unique identifier of the Secure Compute network + example: uzrmorq7bn05z-fz + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: The name of the Secure Compute network + maxLength: 255 + required: + - name + get: + description: Allows to read a Secure Compute network. + operationId: readNetwork + security: + - bearerToken: [] + summary: Read a Secure Compute network + tags: + - networking + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/Network' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: network_id + description: The unique identifier of the Secure Compute network + in: path + required: true + schema: + type: string + description: The unique identifier of the Secure Compute network + example: uzrmorq7bn05z-fz + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/networking/privatelink/endpoints: + post: + description: Creates a PrivateLink endpoint for a project. + operationId: createPrivateLinkEndpoint + security: + - bearerToken: [] + summary: Create a PrivateLink endpoint + tags: + - networking + responses: + '201': + description: The PrivateLink endpoint was created and is being provisioned. + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateLinkEndpoint' + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + projectId: + type: string + description: The project ID to create the PrivateLink endpoint for. + example: prj_a1b2c3d4e5f6g7h8 + name: + type: string + description: The name of the PrivateLink endpoint, used as its label in the Vercel dashboard. + example: payments-db + maxLength: 255 + vercelRegion: + type: string + description: The Vercel region to provision the endpoint in. Advanced Networking must be enabled for the project in that region. The endpoint service itself may live in another AWS region. + example: iad1 + awsServiceName: + type: string + description: The name of the AWS VPC endpoint service to connect to. Its AWS region is read from the name; when that region differs from the one behind `vercelRegion`, the service must allow cross-region access. + example: com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0 + enablePrivateDns: + type: boolean + description: Whether to resolve the endpoint service through its private DNS names, which are then returned in `privateDnsNames`. Defaults to `false`, in which case the endpoint is reachable through the DNS names in `awsDnsEntries`. + example: false + required: + - projectId + - name + - vercelRegion + - awsServiceName + get: + description: Lists all PrivateLink endpoints for a project. + operationId: listPrivateLinkEndpoints + security: + - bearerToken: [] + summary: List PrivateLink endpoints + tags: + - networking + responses: + '200': + description: The PrivateLink endpoints of the project. + content: + application/json: + schema: + $ref: '#/components/schemas/ListPrivateLinkEndpointsResponse' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project ID to list PrivateLink endpoints for. + in: query + required: true + schema: + type: string + description: The project ID to list PrivateLink endpoints for. + example: prj_a1b2c3d4e5f6g7h8 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/networking/privatelink/endpoints/{endpoint_id}: + get: + description: Reads a single PrivateLink endpoint. + operationId: readPrivateLinkEndpoint + security: + - bearerToken: [] + summary: Read a PrivateLink endpoint + tags: + - networking + responses: + '200': + description: The requested PrivateLink endpoint. + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateLinkEndpoint' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project ID the PrivateLink endpoint belongs to. + in: query + required: true + schema: + type: string + description: The project ID the PrivateLink endpoint belongs to. + example: prj_a1b2c3d4e5f6g7h8 + - name: endpoint_id + description: The unique identifier of the PrivateLink endpoint. + in: path + required: true + schema: + type: string + description: The unique identifier of the PrivateLink endpoint. + example: ple_a1b2c3d4e5f6g7h8 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Deletes a PrivateLink endpoint. + operationId: deletePrivateLinkEndpoint + security: + - bearerToken: [] + summary: Delete a PrivateLink endpoint + tags: + - networking + responses: + '204': + description: The PrivateLink endpoint was deleted. + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project ID the PrivateLink endpoint belongs to. + in: query + required: true + schema: + type: string + description: The project ID the PrivateLink endpoint belongs to. + example: prj_a1b2c3d4e5f6g7h8 + - name: endpoint_id + description: The unique identifier of the PrivateLink endpoint. + in: path + required: true + schema: + type: string + description: The unique identifier of the PrivateLink endpoint. + example: ple_a1b2c3d4e5f6g7h8 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Updates a PrivateLink endpoint (name, privateDns). + operationId: updatePrivateLinkEndpoint + security: + - bearerToken: [] + summary: Update a PrivateLink endpoint + tags: + - networking + responses: + '200': + description: The updated PrivateLink endpoint. + content: + application/json: + schema: + $ref: '#/components/schemas/PrivateLinkEndpoint' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project ID the PrivateLink endpoint belongs to. + in: query + required: true + schema: + type: string + description: The project ID the PrivateLink endpoint belongs to. + example: prj_a1b2c3d4e5f6g7h8 + - name: endpoint_id + description: The unique identifier of the PrivateLink endpoint. + in: path + required: true + schema: + type: string + description: The unique identifier of the PrivateLink endpoint. + example: ple_a1b2c3d4e5f6g7h8 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + name: + type: string + description: A new name for the PrivateLink endpoint. When omitted, the current name is kept. + example: payments-db + maxLength: 255 + enablePrivateDns: + type: boolean + description: When `true`, resolves the endpoint service through its private DNS names, which are then returned in `privateDnsNames`. When `false`, clears them. When omitted, the current setting is kept. At least one of `name` or `enablePrivateDns` must be provided. + example: false + /v1/projects/{id_or_name}/shared-connect-links: + patch: + description: Allows configuring Static IPs for a project + operationId: updateStaticIps + security: + - bearerToken: [] + summary: Configures Static IPs for a project + tags: + - networking + - static-ips + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateStaticIpsResponse' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + builds: + type: boolean + description: Whether to use Static IPs for builds. + regions: + type: array + items: + type: string + maxLength: 4 + description: The region in which to enable Static IPs. + example: iad1 + minItems: 0 + maxItems: 3 + uniqueItems: true + required: + - builds + - regions +components: + schemas: + Network: + properties: + awsAccountId: + type: string + description: The ID of the AWS Account in which the network exists. + awsAvailabilityZoneIds: + items: + type: string + type: array + description: The IDs of the AWS Availability Zones in which the network exists, if specified during creation. + awsRegion: + type: string + description: The AWS Region in which the network exists. + cidr: + type: string + description: The CIDR range of the Network. + createdAt: + type: number + description: The date at which the Network was created, represented as a UNIX timestamp since EPOCH. + egressIpAddresses: + items: + type: string + type: array + hostedZones: + properties: + count: + type: number + description: The number of AWS Route53 Hosted Zones associated with the Network. + required: + - count + type: object + description: Metadata about any AWS Route53 Hosted Zones associated with the Network. + id: + type: string + description: The unique identifier of the Network. + name: + type: string + description: The name of the network. + peeringConnections: + properties: + count: + type: number + description: The number of AWS Route53 Hosted Zones associated with the Network. + required: + - count + type: object + description: Metadata about any AWS Route53 Hosted Zones associated with the Network. + projects: + properties: + count: + type: number + ids: + items: + type: string + type: array + required: + - count + - ids + type: object + description: Metadata about any projects associated with the Network. + region: + type: string + description: The Vercel region in which the Network exists. + status: + type: string + enum: + - create_in_progress + - delete_in_progress + - error + - ready + description: The status of the Network. + teamId: + type: string + description: The unique identifier of the Team that owns the Network. + vpcId: + type: string + description: The ID of the VPC which hosts the network. + required: + - awsAccountId + - awsRegion + - cidr + - createdAt + - id + - name + - status + - teamId + type: object + PrivateLinkEndpoint: + properties: + endpointId: + type: string + description: The unique identifier of the PrivateLink endpoint. + example: ple_a1b2c3d4e5f6g7h8 + name: + type: string + description: The name of the PrivateLink endpoint, shown in the Vercel dashboard. + example: payments-db + teamId: + type: string + description: The identifier of the team that owns the PrivateLink endpoint. + example: team_a1b2c3d4e5f6g7h8 + projectId: + type: string + description: The identifier of the project the PrivateLink endpoint belongs to. + example: prj_a1b2c3d4e5f6g7h8 + vercelRegion: + type: string + description: The Vercel region the endpoint is provisioned in. + example: iad1 + awsServiceName: + type: string + description: The AWS VPC endpoint service the endpoint connects to. + example: com.amazonaws.vpce.us-east-1.vpce-svc-0123456789abcdef0 + vpcEndpointId: + type: string + description: The identifier of the underlying AWS VPC endpoint. Absent until AWS has created the endpoint. + example: vpce-0123456789abcdef0 + awsDnsEntries: + items: + type: string + type: array + description: The regional DNS names assigned to the endpoint by AWS. Use these to reach the service when private DNS is not enabled. + example: + - vpce-0123456789abcdef0-a1b2c3d4.vpce-svc-0123456789abcdef0.us-east-1.vpce.amazonaws.com + privateDnsNames: + items: + type: string + type: array + description: The private DNS names of the endpoint service, populated when private DNS is enabled for the endpoint. + example: + - payments.internal.example.com + status: + type: string + enum: + - available + - creating + - deleting + - failed + - pending-acceptance + - provisioning + - rejected + description: 'The current state of the endpoint. - `creating`: the endpoint is being created. - `pending-acceptance`: waiting for the endpoint service owner to accept the connection. Only occurs for services that require manual acceptance. - `provisioning`: the connection was accepted and AWS is finishing setup. - `available`: the endpoint is fully provisioned and ready to use. - `rejected`: the endpoint service owner rejected the connection. - `failed`: the endpoint could not be provisioned. - `deleting`: the endpoint is being deleted.' + example: available + statusMessage: + type: string + description: A human-readable explanation of why the endpoint could not be provisioned. Only set when `status` is `failed`, and absent for every other status including `rejected`, since AWS does not report a rejection reason. + example: Endpoint did not become available in time. Try deleting and recreating, or visit https://vercel.com/help if the issue persists. + createdAt: + type: number + description: Timestamp in milliseconds since the UNIX epoch for when the endpoint was created. + example: 1610963878358 + updatedAt: + type: number + description: Timestamp in milliseconds since the UNIX epoch for when the endpoint was last updated. + example: 1610963878358 + required: + - awsServiceName + - createdAt + - endpointId + - name + - projectId + - status + - teamId + - updatedAt + - vercelRegion + type: object + description: A PrivateLink endpoint, which connects a project to an AWS VPC endpoint service in a single region so that traffic reaches the service over AWS PrivateLink rather than the public internet. + ListNetworksResponse: + type: object + properties: + networks: + type: array + items: + $ref: '#/components/schemas/Network' + ListPrivateLinkEndpointsResponse: + type: object + properties: + private_link_endpoints: + type: array + items: + $ref: '#/components/schemas/PrivateLinkEndpoint' + UpdateStaticIpsResponse: + type: object + properties: + update_static_ips: + type: array + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: + type: boolean + enum: + - false + - true + buildsEnabled: + type: boolean + enum: + - false + - true + aws: + properties: + subnetIds: + items: + type: string + type: array + securityGroupId: + type: string + required: + - subnetIds + type: object + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + x-stackQL-resources: + networks: + id: vercel.networking.networks + name: networks + title: Networks + methods: + list: + operation: + $ref: '#/paths/~1v1~1connect~1networks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.networks + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/ListNetworksResponse' + transform: + body: |- + {{- $wrapped := printf "{\"networks\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1networks/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1connect~1networks~1{network_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1connect~1networks~1{network_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1connect~1networks~1{network_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/networks/methods/get' + - $ref: '#/components/x-stackQL-resources/networks/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/networks/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/networks/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/networks/methods/delete' + replace: [] + privatelink_endpoints: + id: vercel.networking.privatelink_endpoints + name: privatelink_endpoints + title: Privatelink Endpoints + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1networking~1privatelink~1endpoints/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1networking~1privatelink~1endpoints/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.private_link_endpoints + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/ListPrivateLinkEndpointsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"private_link_endpoints\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1networking~1privatelink~1endpoints~1{endpoint_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1networking~1privatelink~1endpoints~1{endpoint_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1networking~1privatelink~1endpoints~1{endpoint_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/privatelink_endpoints/methods/get' + - $ref: '#/components/x-stackQL-resources/privatelink_endpoints/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/privatelink_endpoints/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/privatelink_endpoints/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/privatelink_endpoints/methods/delete' + replace: [] + static_ips: + id: vercel.networking.static_ips + name: static_ips + title: Static Ips + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1shared-connect-links/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.update_static_ips + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/UpdateStaticIpsResponse' + transform: + body: |- + {{- $wrapped := printf "{\"update_static_ips\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/static_ips/methods/update' + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/observability.yaml b/providers/src/vercel/v00.00.00000/services/observability.yaml new file mode 100644 index 00000000..5e953027 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/observability.yaml @@ -0,0 +1,420 @@ +openapi: 3.0.3 +info: + title: observability API + description: vercel observability API + version: 0.0.1 +paths: + /v1/observability/manage/configuration/projects: + get: + description: Lists the projects that are currently configured as disabled for Observability Plus on a team. + operationId: getObservabilityConfigurationProjects + security: + - bearerToken: [] + summary: Lists disabled Observability Plus projects + tags: + - observability + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + disabledProjects: + items: + properties: + id: + type: string + name: + type: string + disabledAt: + type: number + required: + - disabledAt + - id + type: object + type: array + required: + - disabledProjects + type: object + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/observability/manage/configuration/projects/{project_id_or_name}: + put: + description: Updates whether Observability Plus is disabled for a single project. + operationId: updateObservabilityConfigurationProject + security: + - bearerToken: [] + summary: Updates a disabled Observability Plus project setting + tags: + - observability + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + disabledAt: + type: number + required: + - id + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: project_id_or_name + description: The ID or name of the project to update + in: path + required: true + schema: + type: string + description: The ID or name of the project to update + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - disabled + properties: + disabled: + type: boolean + description: Whether Observability Plus should be disabled for the project + /v2/observability/query: + post: + description: '' + operationId: createObservabilityQuery + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '408': + description: '' + '410': + description: '' + '413': + description: '' + '422': + description: '' + '500': + description: '' + '503': + description: '' + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + required: + - metric + - scope + properties: + metric: + type: string + description: Metric id + scope: + type: string + description: Owner or project scope for the query (opaque JSON object) + aggregation: + type: string + description: 'Aggregation function to apply. Some aggregations require a dimension: use /, for example unique/visitor_id.' + groupBy: + type: array + items: + type: string + description: Dimensions to group results by. JSON dimensions support nested refs, for example event_data/checkout_step. Nested keys containing characters that OData cannot parse as an identifier, such as '-', spaces, quotes, or '/', must be wrapped in single quotes (escape embedded single quotes by doubling them), for example flags/'enable-comments-view' or event_data/'some property''s/value'. + filter: + type: string + description: Filter to apply to the query. JSON dimensions support nested refs, for example event_data/checkout_step eq 'payment'. Nested keys containing characters that OData cannot parse as an identifier, such as '-', spaces, quotes, or '/', must be wrapped in single quotes (escape embedded single quotes by doubling them), for example flags/'enable-comments-view' eq true or event_data/'some property''s/value' eq true. + limit: + type: number + description: Maximum number of results + orderBy: + type: string + description: Rollup column to order grouped results by. Use the generated rollup key for the requested metric and aggregation. Defaults to the query engine count rollup. + orderDirection: + type: string + enum: + - asc + - desc + description: Direction to order grouped results by. Defaults to desc. + granularity: + type: string + description: Time bucket size (opaque JSON object) + startTime: + type: string + description: Start timestamp + endTime: + type: string + description: End timestamp + bucketTimezone: + type: string + description: IANA timezone (e.g. Europe/Paris) used only to align calendar buckets (1d/1mo) to that zone's day/month boundaries. startTime/endTime and all output timestamps are always UTC. No effect on sub-day granularities. + additionalProperties: true + /v2/observability/schema: + get: + description: '' + operationId: getObservabilitySchema + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + metrics: + items: + properties: + id: + type: string + description: + type: string + required: + - description + - id + type: object + type: array + required: + - metrics + type: object + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: [] + /v2/observability/schema/{metric_id}: + get: + description: '' + operationId: getObservabilitySchemaByMetricId + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/GetObservabilitySchemaByMetricIdResponse' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: metric_id + in: path + required: true + schema: + type: string +components: + schemas: + GetObservabilitySchemaByMetricIdResponse: + type: object + properties: + observability_schema_by_metric_id: + type: array + items: + properties: + id: + type: string + description: + type: string + dimensions: + items: + properties: + name: + type: string + label: + type: string + description: + type: string + required: + - label + - name + type: object + type: array + unit: + type: string + aggregations: + items: + type: string + type: array + defaultAggregation: + type: string + required: + - aggregations + - defaultAggregation + - description + - dimensions + - id + - unit + type: object + x-stackQL-resources: + configuration_projects: + id: vercel.observability.configuration_projects + name: configuration_projects + title: Configuration Projects + methods: + list: + operation: + $ref: '#/paths/~1v1~1observability~1manage~1configuration~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.disabledProjects + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1observability~1manage~1configuration~1projects~1{project_id_or_name}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/configuration_projects/methods/list' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/configuration_projects/methods/update' + delete: [] + replace: [] + queries: + id: vercel.observability.queries + name: queries + title: Queries + methods: + run: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1observability~1query/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + schema: + id: vercel.observability.schema + name: schema + title: Schema + methods: + list: + operation: + $ref: '#/paths/~1v2~1observability~1schema/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1observability~1schema~1{metric_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.observability_schema_by_metric_id + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetObservabilitySchemaByMetricIdResponse' + transform: + body: |- + {{- $wrapped := printf "{\"observability_schema_by_metric_id\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/schema/methods/get' + - $ref: '#/components/x-stackQL-resources/schema/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/project_members.yaml b/providers/src/vercel/v00.00.00000/services/project_members.yaml index dcf88a22..43fe6f74 100644 --- a/providers/src/vercel/v00.00.00000/services/project_members.yaml +++ b/providers/src/vercel/v00.00.00000/services/project_members.yaml @@ -1,70 +1,10 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: project_members API + description: vercel project_members API version: 0.0.1 - title: Vercel API - project_members - description: projectMembers -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - projects_members: - id: vercel.project_members.projects_members - name: projects_members - title: Projects Members - methods: - get_project_members: - operation: - $ref: '#/paths/~1v1~1projects~1{idOrName}~1members/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.members - _get_project_members: - operation: - $ref: '#/paths/~1v1~1projects~1{idOrName}~1members/get' - response: - mediaType: application/json - openAPIDocKey: '200' - add_project_member: - operation: - $ref: '#/paths/~1v1~1projects~1{idOrName}~1members/post' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_project_member: - operation: - $ref: '#/paths/~1v1~1projects~1{idOrName}~1members~1{uid}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/projects_members/methods/get_project_members' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/projects_members/methods/remove_project_member' paths: - '/v1/projects/{idOrName}/members': + /v1/projects/{id_or_name}/members: get: description: Lists all members of a project. operationId: getProjectMembers @@ -79,89 +19,117 @@ paths: content: application/json: schema: - oneOf: - - type: object - - properties: - members: - items: - properties: - avatar: - type: string - description: ID of the file for the Avatar of this member. - example: 123a6c5209bc3778245d011443644c8d27dc2c50 - email: - type: string - description: The email of this member. - example: jane.doe@example.com - role: - type: string - enum: - - ADMIN - - PROJECT_DEVELOPER - - PROJECT_VIEWER - description: Role of this user in the project. - example: ADMIN - uid: - type: string - description: The ID of this user. - example: zTuNVUXEAvvnNN3IaqinkyMw - username: - type: string - description: The unique username of this user. - example: jane-doe - name: - type: string - description: The name of this user. - example: Jane Doe - createdAt: - type: number - description: Timestamp in milliseconds when this member was added. - example: 1588720733602 - required: - - email - - role - - uid - - username - - createdAt - type: object - type: array - pagination: - properties: - hasNext: - type: boolean - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - hasNext - - count - - next - - prev - type: object + properties: + members: + items: + properties: + avatar: + type: string + description: ID of the file for the Avatar of this member. + example: 123a6c5209bc3778245d011443644c8d27dc2c50 + email: + type: string + description: The email of this member. + example: jane.doe@example.com + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + description: Role of this user in the project. + example: ADMIN + computedProjectRole: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + description: Role of this user in the project. + example: ADMIN + uid: + type: string + description: The ID of this user. + example: zTuNVUXEAvvnNN3IaqinkyMw + username: + type: string + description: The unique username of this user. + example: jane-doe + name: + type: string + description: The name of this user. + example: Jane Doe + createdAt: + type: number + description: Timestamp in milliseconds when this member was added. + example: 1588720733602 + teamRole: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + description: The role of this user in the team. + example: CONTRIBUTOR + required: + - computedProjectRole + - createdAt + - email + - role + - teamRole + - uid + - username + type: object + type: array + pagination: + properties: + hasNext: + type: boolean + enum: + - false + - true + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 required: - - members - - pagination + - count + - hasNext + - next + - prev type: object - description: Paginated list of members for the project. + required: + - members + - pagination + type: object + description: Paginated list of members for the project. '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - name: idOrName + - name: id_or_name description: The ID or name of the Project. in: path required: true @@ -196,18 +164,25 @@ paths: example: 1540095775951 type: integer - name: search - description: 'Search project members by their name, username, and email.' + description: Search project members by their name, username, and email. in: query required: false schema: - description: 'Search project members by their name, username, and email.' + description: Search project members by their name, username, and email. type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + x-speakeasy-test: false post: description: Adds a new member to the project. operationId: addProjectMember @@ -234,13 +209,15 @@ paths: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' '500': description: '' parameters: - - name: idOrName + - name: id_or_name description: The ID or name of the Project. in: path required: true @@ -248,12 +225,18 @@ paths: type: string description: The ID or name of the Project. example: prj_pavWOn1iLObbXLRiwVvzmPrTWyTf - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -262,13 +245,9 @@ paths: additionalProperties: false required: - role - oneOf: - - required: - - uid - - required: - - username - - required: - - email + - uid + - username + - email properties: uid: type: string @@ -287,13 +266,14 @@ paths: description: The email of the team member that should be added to this project. role: type: string + example: ADMIN + description: The project role of the member that will be added. enum: - ADMIN - - PROJECT_DEVELOPER - PROJECT_VIEWER - example: ADMIN - description: The project role of the member that will be added. - '/v1/projects/{idOrName}/members/{uid}': + - PROJECT_DEVELOPER + required: true + /v1/projects/{id_or_name}/members/{uid}: delete: description: Remove a member from a specific project operationId: removeProjectMember @@ -317,11 +297,13 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - name: idOrName + - name: id_or_name description: The ID or name of the Project. in: path required: true @@ -337,9 +319,73 @@ paths: type: string description: The user ID of the member. example: ndlgr43fadlPyCtREAqxxdyFK - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + members: + id: vercel.project_members.members + name: members + title: Members + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.members + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1members/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1members~1{uid}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/members/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/members/methods/add' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/members/methods/remove' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/project_routes.yaml b/providers/src/vercel/v00.00.00000/services/project_routes.yaml new file mode 100644 index 00000000..60400fb7 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/project_routes.yaml @@ -0,0 +1,2656 @@ +openapi: 3.0.3 +info: + title: project_routes API + description: vercel project_routes API + version: 0.0.1 +paths: + /v1/projects/{project_id}/routes: + get: + description: Get the routing rules for a project. Supports searching by name/ID/pattern, filtering by route type, and diffing staged changes against production. + operationId: getRoutes + security: + - bearerToken: [] + summary: Get project routing rules + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + routes: + items: + properties: + id: + type: string + description: Unique identifier for the routing rule. + name: + type: string + description: Human-readable name for the routing rule. + description: + type: string + description: Optional description of what the routing rule does. + enabled: + type: boolean + enum: + - false + - true + description: Whether the routing rule is enabled. Defaults to true. + staged: + type: boolean + enum: + - false + - true + description: Whether this route is new and not yet published to production. Set to true only when a route is first created via add-route. Cleared (set to false) when a version is promoted to production. + route: + properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + description: The route definition from @vercel/routing-utils. + rawSrc: + type: string + description: Original source pattern provided by user (path-to-regexp or regex). Used to display the user's input in API responses. + rawDest: + type: string + description: Original destination provided by user. + srcSyntax: + type: string + enum: + - equals + - path-to-regexp + - regex + description: The syntax type of the source pattern. Determines how the pattern is compiled to regex. + routeType: + type: string + enum: + - redirect + - rewrite + - set_status + - transform + description: Computed route type based on the route configuration. Only present in API responses, not stored in S3. + required: + - id + - name + - route + type: object + description: A routing rule with metadata for project-level routing. + type: array + version: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + diffCount: + type: number + limit: + properties: + maxRoutes: + type: number + currentRoutes: + type: number + required: + - currentRoutes + - maxRoutes + type: object + required: + - diffCount + - routes + - version + - limit + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - name: versionId + in: query + required: false + schema: + type: string + - name: q + in: query + required: false + schema: + type: string + - name: filter + in: query + required: false + schema: + type: string + enum: + - rewrite + - redirect + - set_status + - transform + - name: diff + in: query + required: false + schema: + oneOf: + - type: boolean + - type: string + enum: + - only + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + put: + description: Stage routing rules for a project. Set `overwrite` to true to replace all existing rules, or omit it to merge with existing rules by ID. Returns the new staged version. + operationId: stageRoutes + security: + - bearerToken: [] + summary: Stage routing rules + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + required: + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + overwrite: + type: boolean + routes: + type: array + default: [] + items: + type: object + required: + - id + - name + - route + properties: + id: + type: string + maxLength: 256 + name: + type: string + maxLength: 256 + description: + type: string + maxLength: 1024 + enabled: + type: boolean + route: + type: object + required: + - src + properties: + src: + type: string + dest: + type: string + headers: + type: string + description: (opaque JSON object) + caseSensitive: + type: boolean + status: + type: integer + has: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - header + - cookie + - query + key: + type: string + value: + type: string + missing: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - header + - cookie + - query + key: + type: string + value: + type: string + transforms: + type: array + items: + type: object + properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - set + - delete + target: + type: string + description: (opaque JSON object) + args: {} + env: + type: array + items: + type: string + respectOriginCacheControl: + type: boolean + post: + description: Add a single routing rule to a project at a specified position. Defaults to the end of the list if no position is provided. The route is enabled by default. Stages a new version with the added route. + operationId: addRoute + security: + - bearerToken: [] + summary: Add a routing rule + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + route: + properties: + routeType: + type: string + enum: + - redirect + - rewrite + - set_status + - transform + id: + type: string + description: Unique identifier for the routing rule. + name: + type: string + description: Human-readable name for the routing rule. + description: + type: string + description: Optional description of what the routing rule does. + enabled: + type: boolean + enum: + - false + - true + description: Whether the routing rule is enabled. Defaults to true. + staged: + type: boolean + enum: + - false + - true + description: Whether this route is new and not yet published to production. Set to true only when a route is first created via add-route. Cleared (set to false) when a version is promoted to production. + route: + properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + description: The route definition from @vercel/routing-utils. + rawSrc: + type: string + description: Original source pattern provided by user (path-to-regexp or regex). Used to display the user's input in API responses. + rawDest: + type: string + description: Original destination provided by user. + srcSyntax: + type: string + enum: + - equals + - path-to-regexp + - regex + description: The syntax type of the source pattern. Determines how the pattern is compiled to regex. + required: + - id + - name + - route + type: object + version: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + required: + - route + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - route + properties: + route: + type: object + required: + - name + - route + properties: + name: + type: string + maxLength: 256 + description: + type: string + maxLength: 1024 + enabled: + type: boolean + srcSyntax: + type: string + enum: + - equals + - path-to-regexp + - regex + description: Pattern syntax type. If not provided, inferred from pattern. + route: + type: object + required: + - src + properties: + src: + type: string + dest: + type: string + headers: + type: string + description: (opaque JSON object) + caseSensitive: + type: boolean + status: + type: integer + has: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - header + - cookie + - query + key: + type: string + value: + type: string + missing: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - header + - cookie + - query + key: + type: string + value: + type: string + transforms: + type: array + items: + type: object + properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - set + - delete + target: + type: string + description: (opaque JSON object) + args: {} + env: + type: array + items: + type: string + respectOriginCacheControl: + type: boolean + position: + type: object + description: Controls where the route is inserted. Defaults to "end" if omitted. + properties: + placement: + type: string + enum: + - start + - end + - after + - before + description: '"after"/"before" require referenceId.' + referenceId: + type: string + description: Route ID to insert after/before. Required for "after"/"before". + delete: + description: Delete one or more routing rules from a project by ID. Stages a new version with the routes removed. + operationId: deleteRoutes + security: + - bearerToken: [] + summary: Delete routing rules + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + deletedCount: + type: number + version: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + required: + - deletedCount + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - routeIds + properties: + routeIds: + type: array + description: The IDs of the routes to delete + minItems: 1 + items: + type: string + /v1/projects/{project_id}/routes/{route_id}: + patch: + description: Replace a routing rule identified by its ID, or restore it from the current production version. Stages a new version with the modified route. + operationId: editRoute + security: + - bearerToken: [] + summary: Edit a routing rule + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + route: + properties: + routeType: + type: string + enum: + - redirect + - rewrite + - set_status + - transform + id: + type: string + description: Unique identifier for the routing rule. + name: + type: string + description: Human-readable name for the routing rule. + description: + type: string + description: Optional description of what the routing rule does. + enabled: + type: boolean + enum: + - false + - true + description: Whether the routing rule is enabled. Defaults to true. + staged: + type: boolean + enum: + - false + - true + description: Whether this route is new and not yet published to production. Set to true only when a route is first created via add-route. Cleared (set to false) when a version is promoted to production. + route: + properties: + src: + type: string + dest: + type: string + headers: + additionalProperties: + type: string + type: object + methods: + items: + type: string + type: array + continue: + type: boolean + enum: + - false + - true + override: + type: boolean + enum: + - false + - true + caseSensitive: + type: boolean + enum: + - false + - true + check: + type: boolean + enum: + - false + - true + important: + type: boolean + enum: + - false + - true + status: + type: number + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + missing: + items: + oneOf: + - properties: + type: + type: string + enum: + - host + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - type + - value + type: object + - properties: + type: + type: string + enum: + - cookie + - header + - query + key: + type: string + value: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + re: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + - type + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - challenge + - deny + required: + - action + type: object + transforms: + items: + oneOf: + - properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - delete + - set + target: + properties: + key: + oneOf: + - type: string + - properties: + eq: + oneOf: + - type: string + - type: number + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + type: object + required: + - key + type: object + args: + oneOf: + - type: string + - items: + type: string + type: array + env: + items: + type: string + type: array + required: + - op + - target + - type + type: object + - properties: + type: + type: string + enum: + - request.path + op: + type: string + enum: + - set + args: + type: string + env: + items: + type: string + type: array + required: + - args + - op + - type + type: object + type: array + env: + items: + type: string + type: array + locale: + properties: + redirect: + additionalProperties: + type: string + type: object + cookie: + type: string + type: object + source: + type: string + description: Aliases for `src`, `dest`, and `status`. These provide consistency with the `rewrites`, `redirects`, and `headers` fields which use `source`, `destination`, and `statusCode`. During normalization, the string forms are converted to their canonical forms (`src`, `dest`, `status`) and stripped from the route object. `destination` may also be a service-targeted object, in which case routing is delegated into the named service's internal route table and the object is preserved as-is (not folded into `dest`). + destination: + oneOf: + - type: string + - properties: + type: + type: string + enum: + - service + description: Optional explicit format marker. The destination is identified by the presence of `service`, so `type` is no longer required. + service: + type: string + path: + type: string + description: Routing-only path used to select a route inside the target service. + required: + - service + type: object + statusCode: + type: number + middlewarePath: + type: string + description: A middleware key within the `output` key under the build result. Overrides a `middleware` definition. + middlewareRawSrc: + items: + type: string + type: array + description: The original middleware matchers. + middleware: + type: number + description: A middleware index in the `middleware` key under the build result + respectOriginCacheControl: + type: boolean + enum: + - false + - true + required: + - src + type: object + description: The route definition from @vercel/routing-utils. + rawSrc: + type: string + description: Original source pattern provided by user (path-to-regexp or regex). Used to display the user's input in API responses. + rawDest: + type: string + description: Original destination provided by user. + srcSyntax: + type: string + enum: + - equals + - path-to-regexp + - regex + description: The syntax type of the source pattern. Determines how the pattern is compiled to regex. + required: + - id + - name + - route + type: object + version: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + required: + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - name: route_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + route: + type: object + description: The full route object to replace the existing route with + required: + - name + - route + properties: + name: + type: string + maxLength: 256 + description: + type: string + maxLength: 1024 + enabled: + type: boolean + srcSyntax: + type: string + enum: + - equals + - path-to-regexp + - regex + description: Pattern syntax type. If not provided, inferred from pattern. + route: + type: object + required: + - src + properties: + src: + type: string + dest: + type: string + headers: + type: string + description: (opaque JSON object) + caseSensitive: + type: boolean + status: + type: integer + has: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - header + - cookie + - query + key: + type: string + value: + type: string + missing: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - header + - cookie + - query + key: + type: string + value: + type: string + transforms: + type: array + items: + type: object + properties: + type: + type: string + enum: + - request.headers + - request.query + - response.headers + op: + type: string + enum: + - append + - set + - delete + target: + type: string + description: (opaque JSON object) + args: {} + env: + type: array + items: + type: string + respectOriginCacheControl: + type: boolean + restore: + type: boolean + description: If true, restores the staged route to the value in the production version. + /v1/projects/{project_id}/routes/generate: + post: + description: Generate a routing rule configuration from a natural language description. Returns a suggested route configuration that can be reviewed and saved. + operationId: generateRoute + security: + - bearerToken: [] + summary: Generate a routing rule from natural language + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + route: + properties: + name: + type: string + description: + type: string + pathCondition: + properties: + value: + type: string + syntax: + type: string + enum: + - equals + - path-to-regexp + - regex + required: + - syntax + - value + type: object + conditions: + items: + properties: + field: + type: string + enum: + - cookie + - header + - host + - query + operator: + type: string + enum: + - contains + - eq + - exists + - re + key: + type: string + value: + type: string + missing: + type: boolean + enum: + - false + - true + required: + - field + - missing + - operator + type: object + type: array + actions: + items: + properties: + type: + type: string + enum: + - modify + - redirect + - rewrite + - set-status + subType: + type: string + enum: + - response-headers + - transform-request-header + - transform-request-query + dest: + type: string + status: + type: number + headers: + items: + properties: + key: + type: string + value: + type: string + op: + type: string + enum: + - append + - delete + - set + required: + - key + - op + type: object + type: array + required: + - type + type: object + type: array + required: + - actions + - description + - name + - pathCondition + type: object + error: + type: string + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '408': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - prompt + properties: + prompt: + type: string + maxLength: 2000 + currentRoute: + type: object + required: + - pathCondition + - actions + properties: + name: + type: string + description: + type: string + pathCondition: + type: object + properties: + value: + type: string + syntax: + type: string + conditions: + type: array + items: + type: object + properties: + field: + type: string + operator: + type: string + key: + type: string + value: + type: string + missing: + type: boolean + actions: + type: array + items: + type: object + properties: + type: + type: string + subType: + type: string + dest: + type: string + status: + type: integer + headers: + type: array + items: + type: object + properties: + key: + type: string + value: + type: string + op: + type: string + /v1/projects/{project_id}/routes/versions: + get: + description: 'Get the version history for a project''s routing rules. Returns the staging version (if one exists) followed by production versions, most recent first. The staging version has `isStaging: true` and the current production version has `isLive: true`.' + operationId: getRouteVersions + security: + - bearerToken: [] + summary: Get routing rule version history + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + versions: + items: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + type: array + required: + - versions + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: 'Promote staged routing rules to production, restore a previous production version, or discard staged changes. - `promote`: Publishes the staging version to production. - `restore`: Rolls back to a previous production version. - `discard`: Removes the staging version without publishing.' + operationId: updateRouteVersions + security: + - bearerToken: [] + summary: Promote, restore, or discard a routing rule version + tags: + - project-routes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + properties: + id: + type: string + description: Unique identifier for the version. + s3Key: + type: string + description: The S3 key where the routing rules are stored. + lastModified: + type: number + description: Timestamp of when this version was last modified. + createdBy: + type: string + description: The user who created this version. + isStaging: + type: boolean + enum: + - false + - true + description: Whether this version is staged and not yet promoted to production. + isLive: + type: boolean + enum: + - false + - true + description: Whether this version is currently live in production. + ruleCount: + type: number + description: The number of routing rules in this version. + alias: + type: string + description: The staging alias for previewing this version. + required: + - createdBy + - id + - lastModified + - s3Key + type: object + description: A version of routing rules stored in S3. + required: + - version + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - id + - action + properties: + id: + type: string + action: + type: string + enum: + - promote + - restore + - discard +components: + x-stackQL-resources: + routes: + id: vercel.project_routes.routes + name: routes + title: Routes + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.routes + request: + nativeCasing: camel + stage: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes~1{route_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + generate: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes~1generate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/routes/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/routes/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/routes/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/routes/methods/delete' + replace: + - $ref: '#/components/x-stackQL-resources/routes/methods/stage' + versions: + id: vercel.project_routes.versions + name: versions + title: Versions + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes~1versions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.versions + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1routes~1versions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/versions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/projects.yaml b/providers/src/vercel/v00.00.00000/services/projects.yaml index 7392c3e9..d70db2c2 100644 --- a/providers/src/vercel/v00.00.00000/services/projects.yaml +++ b/providers/src/vercel/v00.00.00000/services/projects.yaml @@ -1,226 +1,16 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: projects API + description: vercel projects API version: 0.0.1 - title: Vercel API - projects - description: projects -components: - schemas: - ACLAction: - type: string - enum: - - create - - delete - - read - - update - - list - description: Enum containing the actions that can be performed against a resource. Group operations are included. - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - projects: - id: vercel.projects.projects - name: projects - title: Projects - methods: - update_project_data_cache: - operation: - $ref: '#/paths/~1v1~1data-cache~1projects~1{projectId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - get_projects: - operation: - $ref: '#/paths/~1v9~1projects/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.projects - _get_projects: - operation: - $ref: '#/paths/~1v9~1projects/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_project: - operation: - $ref: '#/paths/~1v9~1projects/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_project: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_project: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_project: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/projects/methods/get_project' - - $ref: '#/components/x-stackQL-resources/projects/methods/get_projects' - insert: - - $ref: '#/components/x-stackQL-resources/projects/methods/create_project' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/projects/methods/delete_project' - domains: - id: vercel.projects.domains - name: domains - title: Domains - methods: - get_project_domains: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.domains - _get_project_domains: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_project_domain: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - update_project_domain: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_project_domain: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - add_project_domain: - operation: - $ref: '#/paths/~1v10~1projects~1{idOrName}~1domains/post' - response: - mediaType: application/json - openAPIDocKey: '200' - verify_project_domain: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1domains~1{domain}~1verify/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/domains/methods/get_project_domain' - - $ref: '#/components/x-stackQL-resources/domains/methods/get_project_domains' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/domains/methods/remove_project_domain' - env: - id: vercel.projects.env - name: env - title: Env - methods: - filter_project_envs: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1env/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_project_env: - operation: - $ref: '#/paths/~1v1~1projects~1{idOrName}~1env~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_project_env: - operation: - $ref: '#/paths/~1v10~1projects~1{idOrName}~1env/post' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_project_env: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1env~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - edit_project_env: - operation: - $ref: '#/paths/~1v9~1projects~1{idOrName}~1env~1{id}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/env/methods/get_project_env' - insert: - - $ref: '#/components/x-stackQL-resources/env/methods/create_project_env' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/env/methods/remove_project_env' paths: - '/v1/data-cache/projects/{projectId}': - patch: - description: Update the data cache feature on a project. - operationId: updateProjectDataCache + /v10/projects: + get: + description: Allows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects. + operationId: getProjects security: - bearerToken: [] - summary: Update the data cache feature + summary: Retrieve a list of projects tags: - projects responses: @@ -229,3295 +19,9561 @@ paths: content: application/json: schema: + nullable: true properties: - accountId: - type: string - analytics: - properties: - id: - type: string - canceledAt: - nullable: true - type: number - disabledAt: - type: number - enabledAt: - type: number - paidAt: - type: number - sampleRatePercent: - nullable: true - type: number - spendLimitInDollars: - nullable: true - type: number - required: - - id - - canceledAt - - disabledAt - - enabledAt - type: object - autoExposeSystemEnvs: - type: boolean - autoAssignCustomDomains: - type: boolean - autoAssignCustomDomainsUpdatedBy: - type: string - buildCommand: - nullable: true - type: string - commandForIgnoringBuildStep: - nullable: true - type: string - connectConfigurationId: - nullable: true - type: string - connectBuildsEnabled: - type: boolean - createdAt: - type: number - customerSupportCodeVisibility: - type: boolean - crons: - properties: - enabledAt: - type: number - description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' - disabledAt: - nullable: true - type: number - description: The time the feature was disabled for this project. - updatedAt: - type: number - deploymentId: - nullable: true - type: string - description: The ID of the Deployment from which the definitions originated. - definitions: - items: - properties: - host: - type: string - description: The hostname that should be used. - example: vercel.com - path: - type: string - description: The path that should be called for the cronjob. - example: /api/crons/sync-something?hello=world - schedule: - type: string - description: The cron expression. - example: 0 0 * * * - required: - - host - - path - - schedule - type: object - type: array - required: - - enabledAt - - disabledAt - - updatedAt - - deploymentId - - definitions - type: object - dataCache: - properties: - userDisabled: - type: boolean - storageSizeBytes: - nullable: true - type: number - unlimited: - type: boolean - required: - - userDisabled - type: object - devCommand: - nullable: true - type: string - directoryListing: - type: boolean - installCommand: - nullable: true - type: string - env: + projects: items: properties: - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - type: - type: string - enum: - - secret - - system - - encrypted - - plain - - sensitive - id: - type: string - key: - type: string - value: - type: string - configurationId: - nullable: true - type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true - type: string - gitBranch: - type: string - edgeConfigId: - nullable: true - type: string - edgeConfigTokenId: - nullable: true + accountId: type: string - contentHint: - nullable: true + creator: oneOf: - properties: type: type: string enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string + - user + via: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object required: - type - - storeId + - user + - via type: object - properties: type: type: string enum: - - postgres-host - storeId: - type: string + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object required: + - app - type - - storeId type: object - properties: type: type: string enum: - - postgres-password - storeId: - type: string + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object required: + - integration - type - - storeId type: object - properties: type: type: string enum: - - postgres-database - storeId: - type: string + - system required: - type - - storeId type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - required: - - type - - key - - value - type: object - type: array - framework: - nullable: true - type: string - enum: - - blitzjs - - nextjs - - gatsby - - remix - - astro - - hexo - - eleventy - - docusaurus-2 - - docusaurus - - preact - - solidstart - - dojo - - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app - - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - - vite - - vitepress - - vuepress - - parcel - - sanity - - storybook - gitForkProtection: - type: boolean - gitLFS: - type: boolean - id: - type: string - latestDeployments: - items: - properties: alias: - items: - type: string - type: array - aliasAssigned: - nullable: true - oneOf: - - type: number - - type: boolean - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - aliasFinal: - nullable: true - type: string - automaticAliases: - items: - type: string - type: array - builds: items: properties: - use: + configuredBy: + nullable: true type: string - src: + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number + createdAt: + nullable: true + type: number + deployment: + nullable: true + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + domain: type: string - dest: + environment: + type: string + enum: + - preview + - production + gitBranch: + nullable: true + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: type: string + enum: + - PREVIEW + - PRODUCTION + - STAGING required: - - use + - deployment + - domain + - environment + - target type: object type: array - connectBuildsEnabled: - type: boolean - connectConfigurationId: - type: string - createdAt: - type: number - createdIn: - type: string - creator: - nullable: true + analytics: properties: - email: - type: string - githubLogin: - type: string - gitlabLogin: - type: string - uid: - type: string - username: + id: type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number required: - - email - - uid - - username + - disabledAt + - enabledAt + - id type: object - deploymentHostname: - type: string - name: - type: string - forced: + appliedCve55182Migration: type: boolean - id: - type: string - meta: - additionalProperties: - type: string - type: object - monorepoManager: - nullable: true - type: string - plan: - type: string enum: - - pro - - enterprise - - hobby - - oss - private: + - false + - true + autoExposeSystemEnvs: type: boolean - readyState: - type: string enum: - - BUILDING - - ERROR - - INITIALIZING - - QUEUED - - READY - - CANCELED - readySubstate: - type: string + - false + - true + autoAssignCustomDomains: + type: boolean enum: - - STAGED - - PROMOTED - requestedAt: - type: number - target: - nullable: true + - false + - true + autoAssignCustomDomainsUpdatedBy: type: string - teamId: + buildCommand: nullable: true type: string - type: + commandForIgnoringBuildStep: + nullable: true type: string + customerSupportCodeVisibility: + type: boolean enum: - - LAMBDAS - url: - type: string - userId: + - false + - true + createdAt: + type: number + devCommand: + nullable: true type: string - withCache: + directoryListing: type: boolean - checksConclusion: - type: string enum: - - succeeded - - failed - - skipped - - canceled - checksState: + - false + - true + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + installCommand: + nullable: true type: string - enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - required: - - createdAt - - createdIn - - creator - - deploymentHostname - - name - - id - - plan - - private - - readyState - - type - - url - - userId - type: object - type: array - link: - oneOf: - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: - type: string - enum: - - github - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks - type: object - - properties: - projectId: - type: string - projectName: - type: string - projectNameWithNamespace: - type: string - projectNamespace: - type: string - projectUrl: - type: string - type: - type: string - enum: - - gitlab - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks - type: object - - properties: - name: - type: string - slug: - type: string - owner: - type: string - type: - type: string - enum: - - bitbucket - uuid: - type: string - workspaceUuid: - type: string - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks - type: object - name: - type: string - nodeVersion: - type: string - enum: - - 18.x - - 16.x - - 14.x - - 12.x - - 10.x - outputDirectory: - nullable: true - type: string - passwordProtection: - nullable: true - type: object - productionDeploymentsFastLane: - type: boolean - publicSource: - nullable: true - type: boolean - rootDirectory: - nullable: true - type: string - serverlessFunctionRegion: - nullable: true - type: string - skipGitConnectDuringLink: - type: boolean - sourceFilesOutsideRootDirectory: - type: boolean - ssoProtection: - nullable: true - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - required: - - deploymentType - type: object - targets: - additionalProperties: - nullable: true - properties: - alias: - items: - type: string - type: array - aliasAssigned: - nullable: true - oneOf: - - type: number - - type: boolean - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - aliasFinal: - nullable: true - type: string - automaticAliases: + ipBuckets: items: - type: string + properties: + bucket: + type: string + default: + type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object type: array - builds: + env: items: properties: - use: + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + type: type: string - src: + enum: + - encrypted + - plain + - secret + - sensitive + - system + sunsetSecretId: type: string - dest: + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: type: string - required: - - use - type: object - type: array - connectBuildsEnabled: - type: boolean - connectConfigurationId: - type: string - createdAt: - type: number - createdIn: - type: string - creator: - nullable: true - properties: - email: - type: string - githubLogin: - type: string - gitlabLogin: - type: string - uid: - type: string - username: - type: string - required: - - email - - uid - - username - type: object - deploymentHostname: - type: string - name: - type: string - forced: - type: boolean - id: - type: string - meta: - additionalProperties: - type: string - type: object - monorepoManager: - nullable: true - type: string - plan: - type: string - enum: - - pro - - enterprise - - hobby - - oss - private: - type: boolean - readyState: - type: string - enum: - - BUILDING - - ERROR - - INITIALIZING - - QUEUED - - READY - - CANCELED - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - requestedAt: - type: number - target: - nullable: true - type: string - teamId: + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + value: + type: string + vsmValue: + type: string + id: + type: string + key: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + required: + - key + - type + - value + type: object + type: array + framework: nullable: true type: string - type: - type: string enum: - - LAMBDAS - url: - type: string - userId: - type: string - withCache: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + gitForkProtection: type: boolean - checksConclusion: - type: string enum: - - succeeded - - failed - - skipped - - canceled - checksState: + - false + - true + id: type: string - enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - required: - - createdAt - - createdIn - - creator - - deploymentHostname - - name - - id - - plan - - private - - readyState - - type - - url - - userId - type: object - type: object - transferCompletedAt: - type: number - transferStartedAt: - type: number - transferToAccountId: - type: string - transferredFromAccountId: - type: string - updatedAt: - type: number - live: - type: boolean - enablePreviewFeedback: - nullable: true - type: boolean - permissions: - properties: - aliasGlobal: - items: - $ref: '#/components/schemas/ACLAction' - type: array - analyticsSampling: - items: - $ref: '#/components/schemas/ACLAction' - type: array - analyticsUsage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - auditLog: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingAddress: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInformation: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInvoice: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInvoiceEmailRecipient: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInvoiceLanguage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingPlan: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingPurchaseOrder: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingTaxId: - items: - $ref: '#/components/schemas/ACLAction' - type: array - blob: - items: - $ref: '#/components/schemas/ACLAction' - type: array - budget: - items: - $ref: '#/components/schemas/ACLAction' - type: array - cacheArtifact: - items: - $ref: '#/components/schemas/ACLAction' - type: array - cacheArtifactUsageEvent: - items: - $ref: '#/components/schemas/ACLAction' - type: array - concurrentBuilds: - items: - $ref: '#/components/schemas/ACLAction' - type: array - connect: - items: - $ref: '#/components/schemas/ACLAction' - type: array - connectConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domain: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainAcceptDelegation: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainAuthCodes: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainCertificate: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainCheckConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainMove: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainPurchase: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainRecord: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainTransferIn: - items: - $ref: '#/components/schemas/ACLAction' - type: array - event: - items: - $ref: '#/components/schemas/ACLAction' - type: array - ownEvent: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sensitiveEnvironmentVariablePolicy: - items: - $ref: '#/components/schemas/ACLAction' - type: array - fileUpload: - items: - $ref: '#/components/schemas/ACLAction' - type: array - gitRepository: - items: - $ref: '#/components/schemas/ACLAction' - type: array - ipBlocking: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationConfigurationTransfer: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationConfigurationProjects: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationVercelConfigurationOverride: - items: - $ref: '#/components/schemas/ACLAction' - type: array - jobGlobal: - items: - $ref: '#/components/schemas/ACLAction' - type: array - logDrain: - items: - $ref: '#/components/schemas/ACLAction' - type: array - Monitoring: - items: - $ref: '#/components/schemas/ACLAction' - type: array - monitoringQuery: - items: - $ref: '#/components/schemas/ACLAction' - type: array - monitoringChart: - items: - $ref: '#/components/schemas/ACLAction' - type: array - monitoringAlert: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDeploymentFailed: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainExpire: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainMoved: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainPurchase: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainRenewal: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainTransfer: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainUnverified: - items: - $ref: '#/components/schemas/ACLAction' - type: array - NotificationMonitoringAlert: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationPaymentFailed: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationUsageAlert: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationCustomerBudget: - items: - $ref: '#/components/schemas/ACLAction' - type: array - openTelemetryEndpoint: - items: - $ref: '#/components/schemas/ACLAction' - type: array - paymentMethod: - items: - $ref: '#/components/schemas/ACLAction' - type: array - permissions: - items: - $ref: '#/components/schemas/ACLAction' - type: array - postgres: - items: - $ref: '#/components/schemas/ACLAction' - type: array - previewDeploymentSuffix: - items: - $ref: '#/components/schemas/ACLAction' - type: array - proTrialOnboarding: - items: - $ref: '#/components/schemas/ACLAction' - type: array - seawallConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sharedEnvVars: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sharedEnvVarsProduction: - items: - $ref: '#/components/schemas/ACLAction' - type: array - space: - items: - $ref: '#/components/schemas/ACLAction' - type: array - spaceRun: - items: - $ref: '#/components/schemas/ACLAction' - type: array - passwordProtectionInvoiceItem: - items: - $ref: '#/components/schemas/ACLAction' - type: array - rateLimit: - items: - $ref: '#/components/schemas/ACLAction' - type: array - redis: - items: - $ref: '#/components/schemas/ACLAction' - type: array - remoteCaching: - items: - $ref: '#/components/schemas/ACLAction' - type: array - samlConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - secret: - items: - $ref: '#/components/schemas/ACLAction' - type: array - supportCase: - items: - $ref: '#/components/schemas/ACLAction' - type: array - supportCaseComment: - items: - $ref: '#/components/schemas/ACLAction' - type: array - dataCacheBillingSettings: - items: - $ref: '#/components/schemas/ACLAction' - type: array - team: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamAccessRequest: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamFellowMembership: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamInvite: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamInviteCode: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamJoin: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamOwnMembership: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamOwnMembershipDisconnectSAML: - items: - $ref: '#/components/schemas/ACLAction' - type: array - token: - items: - $ref: '#/components/schemas/ACLAction' - type: array - usage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - usageCycle: - items: - $ref: '#/components/schemas/ACLAction' - type: array - user: - items: - $ref: '#/components/schemas/ACLAction' - type: array - userConnection: - items: - $ref: '#/components/schemas/ACLAction' - type: array - webAnalyticsPlan: - items: - $ref: '#/components/schemas/ACLAction' - type: array - edgeConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - edgeConfigItem: - items: - $ref: '#/components/schemas/ACLAction' - type: array - edgeConfigToken: - items: - $ref: '#/components/schemas/ACLAction' - type: array - webhook: - items: - $ref: '#/components/schemas/ACLAction' - type: array - webhook-event: - items: - $ref: '#/components/schemas/ACLAction' - type: array - endpointVerification: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectTransferIn: - items: - $ref: '#/components/schemas/ACLAction' - type: array - aliasProject: - items: - $ref: '#/components/schemas/ACLAction' - type: array - aliasProtectionBypass: - items: - $ref: '#/components/schemas/ACLAction' - type: array - connectConfigurationLink: - items: - $ref: '#/components/schemas/ACLAction' - type: array - dataCacheNamespace: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deployment: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentCheck: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentCheckPreview: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentCheckReRunFromProductionBranch: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentProductionGit: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentPreview: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentPrivate: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentPromote: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentRollback: - items: - $ref: '#/components/schemas/ACLAction' - type: array - logs: - items: - $ref: '#/components/schemas/ACLAction' - type: array - logsPreset: - items: - $ref: '#/components/schemas/ACLAction' - type: array - passwordProtection: - items: - $ref: '#/components/schemas/ACLAction' - type: array - job: - items: - $ref: '#/components/schemas/ACLAction' - type: array - project: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectAnalyticsSampling: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDeploymentHook: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDomain: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDomainMove: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDomainCheckConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectEnvVars: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectEnvVarsProduction: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectEnvVarsUnownedByIntegration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectId: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectIntegrationConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectLink: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectMember: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectMonitoring: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectPermissions: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectProductionBranch: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectTransfer: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectTransferOut: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectProtectionBypass: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectUsage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectAnalyticsUsage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - analytics: - items: - $ref: '#/components/schemas/ACLAction' - type: array - trustedIps: - items: - $ref: '#/components/schemas/ACLAction' - type: array - webAnalytics: + latestDeployments: + items: + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: array + link: + oneOf: + - properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + type: object + - properties: + type: + type: string + enum: + - github-limited + repo: + type: string + repoId: + type: number + createdAt: + type: number + updatedAt: + type: number + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + type: object + - properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github-custom-host + host: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - host + - org + - productionBranch + - type + type: object + - properties: + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + type: + type: string + enum: + - gitlab + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - productionBranch + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - type + type: object + - properties: + name: + type: string + slug: + type: string + owner: + type: string + type: + type: string + enum: + - bitbucket + uuid: + type: string + workspaceUuid: + type: string + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - name + - owner + - productionBranch + - slug + - type + - uuid + - workspaceUuid + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: string + type: + type: string + enum: + - vercel + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - repo + - repoId + - type + type: object + - properties: + org: + type: string + repo: + type: string + repoId: + type: string + type: + type: string + enum: + - v0 + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - repo + - repoId + - type + type: object + - properties: + owner: + type: string + description: Owner (namespace) slug, e.g. `acme`. + repo: + type: string + repoId: + type: string + description: Origin repository id. + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + type: + type: string + enum: + - cursor-origin + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + required: + - deployHooks + - gitCredentialId + - owner + - ownerId + - productionBranch + - repo + - repoId + - type + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + resourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: + items: + properties: + type: + type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 + required: + - type + type: object + description: The checks to evaluate. An empty array means nothing is evaluated. + type: array + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: + type: number + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: + type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. + required: + - action + - checks + - dryRun + - enabled + type: object + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + rootDirectory: + nullable: true + type: string + serverlessFunctionRegion: + type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + skipGitConnectDuringLink: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: + items: + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: + type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object + required: + - claims + - to + type: object + type: array + type: object + type: object + updatedAt: + type: number + live: + type: boolean + enum: + - false + - true + hasActiveBranches: + type: boolean + enum: + - false + - true + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + gitProviderOptions: + properties: + createDeployments: + type: string + enum: + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: + nullable: true + type: number + firewallConfigVersion: + type: number + firewallRoutes: + items: + properties: + src: + oneOf: + - type: string + - properties: + re: + type: string + eq: + type: string + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + list: + type: string + type: object + tierRequirement: + type: string + enum: + - advanced + - critical + - priority + has: + items: + properties: + type: + type: string + enum: + - cookie + - domain_environment + - environment + - header + - headers + - host + - initial_request_path + - ip_address + - method + - path + - protocol + - query + - region + - scheme + - trusted_source + key: + type: string + value: + oneOf: + - type: string + - properties: + re: + type: string + eq: + type: string + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + list: + type: string + type: object + required: + - type + type: object + type: array + missing: + items: + properties: + type: + type: string + enum: + - cookie + - domain_environment + - environment + - header + - headers + - host + - initial_request_path + - ip_address + - method + - path + - protocol + - query + - region + - scheme + - trusted_source + key: + type: string + value: + oneOf: + - type: string + - properties: + re: + type: string + eq: + type: string + neq: + type: string + inc: + items: + type: string + type: array + ninc: + items: + type: string + type: array + pre: + type: string + suf: + type: string + gt: + type: number + gte: + type: number + lt: + type: number + lte: + type: number + list: + type: string + type: object + required: + - type + type: object + type: array + dest: + type: string + status: + type: number + handle: + type: string + enum: + - finalize + - init + mitigate: + properties: + action: + type: string + enum: + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rule_id: + type: string + ttl: + type: number + erl: + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + - rule_id + type: object + transforms: + items: + properties: + type: + type: string + enum: + - request.headers + op: + type: string + enum: + - append + target: + properties: + key: + type: string + required: + - key + type: object + args: + type: string + required: + - args + - op + - target + - type + type: object + type: array + type: object + type: array + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: + items: + type: string + type: array + managedRules: + nullable: true + properties: + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + bot_filter: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + requestLogsKey: + items: + type: string + type: array + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + tier: + type: string + enum: + - advanced + - critical + - priority + abuse: + properties: + scanner: + type: string + history: + items: + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object + type: array + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: + items: + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object + type: array + interstitial: + type: boolean + enum: + - false + - true + interstitialHistory: + items: + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object + type: array + required: + - history + - updatedAt + type: object + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + required: + - accountId + - alias + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + - serverlessFunctionRegion + type: object + type: array + pagination: + oneOf: + - properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: string + description: Continuation token that must be used to request the next page. Base32 encoded for safe URL transmission. + example: JBSWY3DPEHPK3PXP + required: + - count + - next + type: object + description: This object contains information related to the pagination of the current request using continuation tokens. Since CosmosDB doesn't support going to previous pages, only count and next are provided. + - $ref: '#/components/schemas/Pagination' + required: + - pagination + - projects + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - ls + - list + parameters: + - name: from + description: Query only projects updated after the given timestamp or continuation token. + in: query + schema: + description: Query only projects updated after the given timestamp or continuation token. + type: string + - name: gitForkProtection + description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed + in: query + schema: + description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed + type: string + enum: + - '1' + - '0' + example: '1' + - name: limit + description: Limit the number of projects returned + in: query + schema: + description: Limit the number of projects returned + type: string + - name: search + description: Search projects by the name field + in: query + schema: + description: Search projects by the name field + type: string + maxLength: 100 + - name: repo + description: Filter results by repo. Also used for project count + in: query + schema: + description: Filter results by repo. Also used for project count + type: string + - name: repoId + description: Filter results by Repository ID. + in: query + schema: + description: Filter results by Repository ID. + type: string + - name: repoUrl + description: Filter results by Repository URL. + in: query + schema: + description: Filter results by Repository URL. + type: string + example: https://github.com/vercel/next.js + - name: excludeRepos + description: Filter results by excluding those projects that belong to a repo + in: query + schema: + description: Filter results by excluding those projects that belong to a repo + type: string + - name: edgeConfigId + description: Filter results by connected Global Config ID + in: query + schema: + description: Filter results by connected Global Config ID + type: string + - name: edgeConfigTokenId + description: Filter results by connected Global Config Token ID + in: query + schema: + description: Filter results by connected Global Config Token ID + type: string + - name: deprecated + in: query + schema: + type: boolean + - name: elasticConcurrencyEnabled + description: Filter results by projects with elastic concurrency enabled + in: query + schema: + description: Filter results by projects with elastic concurrency enabled + type: string + enum: + - '1' + - '0' + example: '1' + - name: staticIpsEnabled + description: Filter results by projects with Static IPs enabled + in: query + schema: + description: Filter results by projects with Static IPs enabled + enum: + - '0' + - '1' + example: '1' + type: string + - name: buildMachineTypes + description: Filter results by effective build machine types. Accepts comma-separated values. Use "elastic" for projects with elastic selection and "default" for projects without a build machine type set. + in: query + schema: + description: Filter results by effective build machine types. Accepts comma-separated values. Use "elastic" for projects with elastic selection and "default" for projects without a build machine type set. + type: string + example: default,enhanced + - name: buildQueueConfiguration + description: Filter results by build queue configuration. SKIP_NAMESPACE_QUEUE includes projects without a configuration set. + in: query + schema: + description: Filter results by build queue configuration. SKIP_NAMESPACE_QUEUE includes projects without a configuration set. + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + example: SKIP_NAMESPACE_QUEUE + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/traces: + get: + description: Returns the OTEL trace for a given Vercel CLI request. + operationId: getProjectTrace + security: + - bearerToken: [] + summary: Get a project trace by request ID + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + trace: + properties: + traceId: + type: string + resources: items: - $ref: '#/components/schemas/ACLAction' + properties: + name: + type: string + attributes: + additionalProperties: + type: string + type: object + required: + - attributes + - name + type: object type: array - sharedEnvVarConnection: + spans: items: - $ref: '#/components/schemas/ACLAction' - type: array - type: object - lastRollbackTarget: - nullable: true - type: object - lastAliasRequest: - nullable: true - properties: - fromDeploymentId: - type: string - toDeploymentId: - type: string - jobStatus: - type: string - enum: - - succeeded - - failed - - skipped - - pending - - in-progress - requestedAt: - type: number - type: - type: string - enum: - - promote - - rollback - required: - - fromDeploymentId - - toDeploymentId - - jobStatus - - requestedAt - - type - type: object - hasFloatingAliases: - type: boolean - protectionBypass: - additionalProperties: - properties: - createdAt: - type: number - createdBy: - type: string - scope: - type: string - enum: - - automation-bypass - required: - - createdAt - - createdBy - - scope - type: object - type: object - hasActiveBranches: - type: boolean - trustedIps: - nullable: true - oneOf: - - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - addresses: - items: + properties: + name: + type: string + kind: + type: number + resource: + type: string + library: properties: - value: + name: type: string - note: + version: type: string required: - - value + - name type: object - type: array - protectionMode: - type: string - enum: - - additional - - exclusive - required: - - deploymentType - - addresses - - protectionMode - type: object - - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - required: - - deploymentType - type: object - gitComments: - properties: - onPullRequest: - type: boolean - description: Whether the Vercel bot should comment on PRs - onCommit: - type: boolean - description: Whether the Vercel bot should comment on commits + spanId: + type: string + parentSpanId: + type: string + status: + properties: + code: + type: number + message: + type: string + required: + - code + type: object + traceState: + type: string + traceFlags: + type: number + attributes: + additionalProperties: true + type: object + links: + items: + additionalProperties: true + type: object + type: array + events: + items: + properties: + name: + type: string + timestamp: + items: + oneOf: + - type: number + - type: number + maxItems: 2 + minItems: 2 + type: array + attributes: + additionalProperties: true + type: object + required: + - attributes + - name + - timestamp + type: object + type: array + startTime: + items: + oneOf: + - type: number + - type: number + maxItems: 2 + minItems: 2 + type: array + endTime: + items: + oneOf: + - type: number + - type: number + maxItems: 2 + minItems: 2 + type: array + duration: + items: + oneOf: + - type: number + - type: number + maxItems: 2 + minItems: 2 + type: array + required: + - attributes + - duration + - endTime + - events + - kind + - library + - links + - name + - resource + - spanId + - startTime + - status + - traceFlags + type: object + type: array + rootSpanId: + type: string required: - - onPullRequest - - onCommit + - spans + - traceId type: object - paused: - type: boolean required: - - accountId - - directoryListing - - id - - name - - nodeVersion + - trace type: object '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. + description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' + '410': + description: '' parameters: - name: projectId - description: The unique project identifier - in: path + description: The project ID + in: query required: true schema: - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB - description: The unique project identifier + description: The project ID type: string - - description: The Team identifier or slug to perform the request on behalf of. + example: prj_123 + maxLength: 150 + - name: requestId + description: The Vercel CLI request ID associated with the trace in: query - name: teamId required: true schema: + description: The Vercel CLI request ID associated with the trace type: string - requestBody: - content: - application/json: - schema: - type: object - properties: - disabled: - type: boolean - example: true - description: 'Enable or disable data cache for the project - default: false' - /v9/projects: - get: - description: Allows to retrieve the list of projects of the authenticated user or team. The list will be paginated and the provided query parameters allow filtering the returned projects. - operationId: getProjects + example: cli-req-abc + maxLength: 256 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v11/projects: + post: + description: Allows to create a new project with the provided configuration. It only requires the project `name` but more configuration can be provided to override the defaults. + operationId: createProject security: - bearerToken: [] - summary: Retrieve a list of projects + summary: Create a new project tags: - projects responses: '200': - description: The paginated list of projects + description: The project was successfuly created content: application/json: schema: properties: - projects: + accountId: + type: string + creator: + properties: + type: + type: string + enum: + - user + via: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - type + - user + - via + - app + - integration + type: object + alias: items: properties: - accountId: + configuredBy: + nullable: true type: string - analytics: + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number + createdAt: + nullable: true + type: number + deployment: + nullable: true properties: id: type: string - canceledAt: + alias: + items: + type: string + type: array + aliasAssigned: nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: type: number - disabledAt: - type: number - enabledAt: - type: number - paidAt: + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: type: number - sampleRatePercent: + createdIn: + type: string + creator: nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: type: number - spendLimitInDollars: + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true required: + - createdAt + - createdIn + - creator + - deploymentHostname - id - - canceledAt - - disabledAt - - enabledAt + - name + - plan + - private + - readyState + - type + - url type: object - autoExposeSystemEnvs: - type: boolean - autoAssignCustomDomains: - type: boolean - autoAssignCustomDomainsUpdatedBy: + domain: type: string - buildCommand: + environment: + type: string + enum: + - preview + - production + gitBranch: nullable: true type: string - commandForIgnoringBuildStep: + redirect: nullable: true type: string - connectConfigurationId: + redirectStatusCode: nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: type: string - connectBuildsEnabled: + enum: + - PREVIEW + - PRODUCTION + - STAGING + required: + - deployment + - domain + - environment + - target + type: object + type: array + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - disabledAt + - enabledAt + - id + type: object + appliedCve55182Migration: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + autoAssignCustomDomains: + type: boolean + enum: + - false + - true + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + nullable: true + type: string + commandForIgnoringBuildStep: + nullable: true + type: string + connectConfigurations: + nullable: true + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: type: boolean - createdAt: - type: number - customerSupportCodeVisibility: + enum: + - false + - true + buildsEnabled: type: boolean - crons: - properties: - enabledAt: - type: number - description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' - disabledAt: - nullable: true - type: number - description: The time the feature was disabled for this project. - updatedAt: - type: number - deploymentId: - nullable: true - type: string - description: The ID of the Deployment from which the definitions originated. - definitions: + enum: + - false + - true + aws: + properties: + subnetIds: items: - properties: - host: - type: string - description: The hostname that should be used. - example: vercel.com - path: - type: string - description: The path that should be called for the cronjob. - example: /api/crons/sync-something?hello=world - schedule: - type: string - description: The cron expression. - example: 0 0 * * * - required: - - host - - path - - schedule - type: object + type: string type: array + securityGroupId: + type: string required: - - enabledAt - - disabledAt - - updatedAt - - deploymentId - - definitions + - subnetIds type: object - dataCache: + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + type: array + connectConfigurationId: + nullable: true + type: string + connectBuildsEnabled: + type: boolean + enum: + - false + - true + passiveConnectConfigurationId: + nullable: true + type: string + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + enum: + - false + - true + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: properties: - userDisabled: - type: boolean - storageSizeBytes: - nullable: true - type: number - unlimited: - type: boolean - required: - - userDisabled - type: object - devCommand: - nullable: true - type: string - directoryListing: - type: boolean - installCommand: - nullable: true - type: string - env: - items: - properties: - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - type: - type: string - enum: - - secret - - system - - encrypted - - plain - - sensitive - id: - type: string - key: - type: string - value: - type: string - configurationId: - nullable: true - type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true - type: string - gitBranch: - type: string - edgeConfigId: - nullable: true - type: string - edgeConfigTokenId: - nullable: true - type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + source: + type: string + enum: + - api + description: The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json). + description: + type: string + description: A human-readable description of what this cron job does. + hostInferred: + type: boolean + enum: + - false + - true + description: Whether the host was inferred from the production deployment URL rather than explicitly provided. + required: + - host + - path + - schedule + type: object + type: array + required: + - definitions + - deploymentId + - disabledAt + - enabledAt + - updatedAt + type: object + dataCache: + properties: + userDisabled: + type: boolean + enum: + - false + - true + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + enum: + - false + - true + required: + - userDisabled + type: object + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + expiration: + properties: + expiresAt: + type: number + description: Unix ms timestamp when the project is scheduled to expire. + lockedAt: + type: number + description: Unix ms timestamp when the project was locked. + lockedBy: + type: string + description: userId of the actor that triggered the lock (system or admin). + required: + - expiresAt + - lockedAt + - lockedBy + type: object + devCommand: + nullable: true + type: string + directoryListing: + type: boolean + enum: + - false + - true + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + value: + type: string + vsmValue: + type: string + id: + type: string + key: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + required: + - key + - type + - value + type: object + type: array + customEnvironments: + items: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: type: boolean - description: Whether `value` is decrypted. + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' required: - - type - - key - - value + - apexName + - name + - projectId + - verified type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + type: array + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + services: + items: + properties: + serviceName: + type: string + description: Service name from the deployment (Service.name). + serviceType: + type: string + enum: + - cron + - job + - web + - worker + description: Service kind (Service.type). Omitted for schemas that do not define one. framework: - nullable: true type: string enum: - - blitzjs - - nextjs - - gatsby - - remix + - actix-web + - angular + - ash - astro - - hexo - - eleventy - - docusaurus-2 + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django - docusaurus - - preact - - solidstart + - docusaurus-2 - dojo + - eleventy + - elysia - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs + - h3 + - hexo + - hono - hugo + - hydrogen + - ionic-angular + - ionic-react - jekyll - - brunch + - koa + - mastra - middleman - - zola - - hydrogen + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs - vite - vitepress + - vue - vuepress - - parcel - - sanity - - storybook - gitForkProtection: - type: boolean - gitLFS: + - xmcp + - zola + description: Framework slug, when the service has one (omitted otherwise). + runtime: + type: string + description: Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds. + required: + - serviceName + type: object + type: array + gitForkProtection: + type: boolean + enum: + - false + - true + gitLFS: + type: boolean + enum: + - false + - true + id: + type: string + ipBuckets: + items: + properties: + bucket: + type: string + default: type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object + type: array + jobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + typecheck: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + mfe-config-present: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + type: object + latestDeployments: + items: + properties: id: type: string - latestDeployments: + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: items: properties: - alias: - items: - type: string - type: array - aliasAssigned: - nullable: true - oneOf: - - type: number - - type: boolean - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - aliasFinal: - nullable: true - type: string - automaticAliases: - items: - type: string - type: array - builds: - items: - properties: - use: - type: string - src: - type: string - dest: - type: string - required: - - use - type: object - type: array - connectBuildsEnabled: - type: boolean - connectConfigurationId: - type: string - createdAt: - type: number - createdIn: - type: string - creator: - nullable: true - properties: - email: - type: string - githubLogin: - type: string - gitlabLogin: - type: string - uid: - type: string - username: - type: string - required: - - email - - uid - - username - type: object - deploymentHostname: - type: string - name: - type: string - forced: - type: boolean - id: - type: string - meta: - additionalProperties: - type: string - type: object - monorepoManager: - nullable: true - type: string - plan: - type: string - enum: - - pro - - enterprise - - hobby - - oss - private: - type: boolean - readyState: - type: string - enum: - - BUILDING - - ERROR - - INITIALIZING - - QUEUED - - READY - - CANCELED - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - requestedAt: - type: number - target: - nullable: true - type: string - teamId: - nullable: true - type: string - type: - type: string - enum: - - LAMBDAS - url: + use: type: string - userId: + src: type: string - withCache: - type: boolean - checksConclusion: + dest: type: string - enum: - - succeeded - - failed - - skipped - - canceled - checksState: + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: type: string - enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - required: - - createdAt - - createdIn - - creator - - deploymentHostname - - name - - id - - plan - - private - - readyState - - type - - url - - userId - type: object - type: array - link: - oneOf: - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: - type: string - enum: - - github - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks - type: object - - properties: - projectId: - type: string - projectName: - type: string - projectNameWithNamespace: - type: string - projectNamespace: - type: string - projectUrl: - type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: array + link: + properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + host: + type: string + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + name: + type: string + slug: + type: string + owner: + type: string + uuid: + type: string + workspaceUuid: + type: string + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + - host + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - name + - owner + - slug + - uuid + - workspaceUuid + - repo + - repoId + - ownerId + type: object + blobs: + properties: + isDefaultApp: + type: boolean + enum: + - false + - true + description: Marks the team-level, Vercel-managed default blob project (`vercel-blob-default-project`) that orphan blob stores are scoped to when connected without an explicit project. Set only by internal storage flows and immutable after creation — guards rely on it to protect the connected stores from being lost when the project is deleted or transferred. + type: object + microfrontends: + properties: + isDefaultApp: + type: boolean + enum: + - true + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + routeObservabilityToThisProject: + type: boolean + enum: + - false + - true + description: Whether observability data should be routed to this microfrontend project or a root project. + doNotRouteWithMicrofrontendsRouting: + type: boolean + enum: + - false + - true + description: Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend. + required: + - enabled + - groupIds + - isDefaultApp + - updatedAt + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + protectionConfig: + properties: + sandboxUrls: + properties: + inheritDeploymentProtection: + type: boolean + enum: + - false + - true + type: object + type: object + sandbox: + properties: + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + failoverRegions: + items: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + type: array + type: object + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rollbackDescription: + properties: + userId: + type: string + description: The user who rolled back the project. + username: + type: string + description: The username of the user who rolled back the project. + description: + type: string + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: + items: + properties: type: type: string enum: - - gitlab - createdAt: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: type: number - deployHooks: + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object + type: number type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks - type: object - - properties: - name: - type: string - slug: - type: string - owner: - type: string - type: - type: string - enum: - - bitbucket - uuid: - type: string - workspaceUuid: - type: string - createdAt: - type: number - deployHooks: + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object + type: string type: array - gitCredentialId: - type: string - updatedAt: + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: type: number - sourceless: - type: boolean - productionBranch: - type: string + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 required: - - deployHooks + - type type: object - name: - type: string - nodeVersion: + description: The checks to evaluate. An empty array means nothing is evaluated. + type: array + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: + type: number + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: + type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. + required: + - action + - checks + - dryRun + - enabled + type: object + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + defaultResourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: type: string - enum: - - 18.x - - 16.x - - 14.x - - 12.x - - 10.x - outputDirectory: - nullable: true + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rootDirectory: + nullable: true + type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + skewProtectionBoundaryAt: + type: number + skewProtectionMaxAge: + type: number + skewProtectionAllowedDomains: + items: + type: string + type: array + skipGitConnectDuringLink: + type: boolean + enum: + - false + - true + staticIps: + properties: + builds: + type: boolean + enum: + - false + - true + enabled: + type: boolean + enum: + - false + - true + regions: + items: type: string - passwordProtection: - nullable: true - type: object - productionDeploymentsFastLane: - type: boolean - publicSource: - nullable: true - type: boolean - rootDirectory: - nullable: true + type: array + required: + - builds + - enabled + - regions + type: object + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true + properties: + id: type: string - serverlessFunctionRegion: + alias: + items: + type: string + type: array + aliasAssigned: nullable: true - type: string - skipGitConnectDuringLink: - type: boolean - sourceFilesOutsideRootDirectory: - type: boolean - ssoProtection: + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: nullable: true properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - required: - - deploymentType - type: object - targets: - additionalProperties: - nullable: true - properties: - alias: - items: - type: string - type: array - aliasAssigned: - nullable: true - oneOf: - - type: number - - type: boolean - aliasError: - nullable: true - properties: - code: - type: string - message: - type: string - required: - - code - - message - type: object - aliasFinal: - nullable: true - type: string - automaticAliases: - items: - type: string - type: array - builds: - items: - properties: - use: - type: string - src: - type: string - dest: - type: string - required: - - use - type: object - type: array - connectBuildsEnabled: - type: boolean - connectConfigurationId: - type: string - createdAt: - type: number - createdIn: - type: string - creator: - nullable: true - properties: - email: - type: string - githubLogin: - type: string - gitlabLogin: - type: string - uid: - type: string - username: - type: string - required: - - email - - uid - - username - type: object - deploymentHostname: - type: string - name: - type: string - forced: - type: boolean - id: - type: string - meta: - additionalProperties: - type: string - type: object - monorepoManager: - nullable: true - type: string - plan: - type: string - enum: - - pro - - enterprise - - hobby - - oss - private: - type: boolean - readyState: - type: string - enum: - - BUILDING - - ERROR - - INITIALIZING - - QUEUED - - READY - - CANCELED - readySubstate: - type: string - enum: - - STAGED - - PROMOTED - requestedAt: - type: number - target: - nullable: true - type: string - teamId: - nullable: true - type: string - type: - type: string - enum: - - LAMBDAS - url: - type: string - userId: - type: string - withCache: - type: boolean - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - checksState: - type: string - enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - required: - - createdAt - - createdIn - - creator - - deploymentHostname - - name - - id - - plan - - private - - readyState - - type - - url - - userId - type: object - type: object - transferCompletedAt: - type: number - transferStartedAt: - type: number - transferToAccountId: - type: string - transferredFromAccountId: - type: string - updatedAt: - type: number - live: - type: boolean - enablePreviewFeedback: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: nullable: true - type: boolean - permissions: + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: properties: - aliasProject: - items: - $ref: '#/components/schemas/ACLAction' - type: array - aliasProtectionBypass: - items: - $ref: '#/components/schemas/ACLAction' - type: array - connectConfigurationLink: - items: - $ref: '#/components/schemas/ACLAction' - type: array - dataCacheNamespace: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deployment: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentCheck: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentCheckPreview: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentCheckReRunFromProductionBranch: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentProductionGit: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentPreview: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentPrivate: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentPromote: - items: - $ref: '#/components/schemas/ACLAction' - type: array - deploymentRollback: - items: - $ref: '#/components/schemas/ACLAction' - type: array - logs: - items: - $ref: '#/components/schemas/ACLAction' - type: array - logsPreset: - items: - $ref: '#/components/schemas/ACLAction' - type: array - passwordProtection: - items: - $ref: '#/components/schemas/ACLAction' - type: array - job: - items: - $ref: '#/components/schemas/ACLAction' - type: array - project: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectAnalyticsSampling: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDeploymentHook: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDomain: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDomainMove: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectDomainCheckConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectEnvVars: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectEnvVarsProduction: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectEnvVarsUnownedByIntegration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectId: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectIntegrationConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectLink: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectMember: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectMonitoring: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectPermissions: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectProductionBranch: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectTransfer: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectTransferOut: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectProtectionBypass: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectUsage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - projectAnalyticsUsage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - analytics: - items: - $ref: '#/components/schemas/ACLAction' - type: array - trustedIps: - items: - $ref: '#/components/schemas/ACLAction' - type: array - webAnalytics: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sharedEnvVarConnection: - items: - $ref: '#/components/schemas/ACLAction' - type: array - aliasGlobal: - items: - $ref: '#/components/schemas/ACLAction' - type: array - analyticsSampling: - items: - $ref: '#/components/schemas/ACLAction' - type: array - analyticsUsage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - auditLog: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingAddress: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInformation: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInvoice: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInvoiceEmailRecipient: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingInvoiceLanguage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingPlan: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingPurchaseOrder: - items: - $ref: '#/components/schemas/ACLAction' - type: array - billingTaxId: - items: - $ref: '#/components/schemas/ACLAction' - type: array - blob: - items: - $ref: '#/components/schemas/ACLAction' - type: array - budget: - items: - $ref: '#/components/schemas/ACLAction' - type: array - cacheArtifact: - items: - $ref: '#/components/schemas/ACLAction' - type: array - cacheArtifactUsageEvent: - items: - $ref: '#/components/schemas/ACLAction' - type: array - concurrentBuilds: - items: - $ref: '#/components/schemas/ACLAction' - type: array - connect: - items: - $ref: '#/components/schemas/ACLAction' - type: array - connectConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domain: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainAcceptDelegation: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainAuthCodes: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainCertificate: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainCheckConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainMove: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainPurchase: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainRecord: - items: - $ref: '#/components/schemas/ACLAction' - type: array - domainTransferIn: - items: - $ref: '#/components/schemas/ACLAction' - type: array - event: - items: - $ref: '#/components/schemas/ACLAction' - type: array - ownEvent: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sensitiveEnvironmentVariablePolicy: - items: - $ref: '#/components/schemas/ACLAction' - type: array - fileUpload: - items: - $ref: '#/components/schemas/ACLAction' - type: array - gitRepository: - items: - $ref: '#/components/schemas/ACLAction' - type: array - ipBlocking: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationConfigurationTransfer: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationConfigurationProjects: - items: - $ref: '#/components/schemas/ACLAction' - type: array - integrationVercelConfigurationOverride: - items: - $ref: '#/components/schemas/ACLAction' - type: array - jobGlobal: - items: - $ref: '#/components/schemas/ACLAction' - type: array - logDrain: - items: - $ref: '#/components/schemas/ACLAction' - type: array - Monitoring: - items: - $ref: '#/components/schemas/ACLAction' - type: array - monitoringQuery: - items: - $ref: '#/components/schemas/ACLAction' - type: array - monitoringChart: - items: - $ref: '#/components/schemas/ACLAction' - type: array - monitoringAlert: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDeploymentFailed: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainConfiguration: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainExpire: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainMoved: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainPurchase: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainRenewal: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainTransfer: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationDomainUnverified: - items: - $ref: '#/components/schemas/ACLAction' - type: array - NotificationMonitoringAlert: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationPaymentFailed: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationUsageAlert: - items: - $ref: '#/components/schemas/ACLAction' - type: array - notificationCustomerBudget: - items: - $ref: '#/components/schemas/ACLAction' - type: array - openTelemetryEndpoint: - items: - $ref: '#/components/schemas/ACLAction' - type: array - paymentMethod: - items: - $ref: '#/components/schemas/ACLAction' - type: array - permissions: - items: - $ref: '#/components/schemas/ACLAction' - type: array - postgres: - items: - $ref: '#/components/schemas/ACLAction' - type: array - previewDeploymentSuffix: - items: - $ref: '#/components/schemas/ACLAction' - type: array - proTrialOnboarding: - items: - $ref: '#/components/schemas/ACLAction' - type: array - seawallConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sharedEnvVars: - items: - $ref: '#/components/schemas/ACLAction' - type: array - sharedEnvVarsProduction: - items: - $ref: '#/components/schemas/ACLAction' - type: array - space: - items: - $ref: '#/components/schemas/ACLAction' - type: array - spaceRun: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - passwordProtectionInvoiceItem: + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enum: + - false + - true + enablePreviewFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null + enableProductionFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null + permissions: + properties: + oauth2Connection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userMfaConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userPreference: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAuthn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + accessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + agent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyBypassAll: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeySpendAttribution: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyZdrExemption: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayCredits: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayPrivateModels: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayGuardrails: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewaySettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscripts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscriptsSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayVirtualModelConfigs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alerts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alertRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyAiGateway: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Application: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallationRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + automation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingRefund: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blobStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeChecks: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeOwners: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciInvocations: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClientProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexContact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachineDefault: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cursorOriginInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + defaultDeploymentProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + drain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigSchema: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + flagsExplorerSubscription: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + imageOptimizationNewPrice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationRole: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationDeploymentAction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResource: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceReplCommand: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceSecrets: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationSSOSession: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationPullRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsIssuer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsProjectGrant: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceBillingData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationEdgeConfigData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceFlexCommit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInstallationMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPreferences: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationStatementOfReasons: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oidcFederationPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityFunnel: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityNotebook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organization: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organizationDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organizationTeam: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgresStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateCloudAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redisStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + repository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeIsLocked: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeTokenSetSensitive: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamGitExclusivity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamMemberMfaStatus: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamMicrofrontends: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamTokenInvalidation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + toolbarComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vcrRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vpcPeeringConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + bulkRedirects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachine: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentBuildLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + environments: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + onDemandBuild: + items: + $ref: '#/components/schemas/ACLAction' + type: array + onDemandConcurrency: + items: + $ref: '#/components/schemas/ACLAction' + type: array + optionsAllowlist: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateLinkEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + productionAliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + productionShareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAccessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectCheckRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentExpiration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentProtectionStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainVerify: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlags: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsSdkKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFromV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectOIDCToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRollingRelease: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRoutes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTier: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + pageIntegrity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityPlusConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLinkStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + skewProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedSources: + items: + $ref: '#/components/schemas/ACLAction' + type: array + v0Chat: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAuth: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + workflowRunData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: string + description: (opaque JSON object) + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + nullable: true + type: string + toDeploymentId: + type: string + fromRollingReleaseId: + type: string + description: If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release. + jobStatus: + type: string + enum: + - failed + - in-progress + - pending + - skipped + - succeeded + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - jobStatus + - requestedAt + - toDeploymentId + - type + type: object + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + enum: + - false + - true + trustedIps: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - addresses + - deploymentType + - protectionMode + type: object + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: items: - $ref: '#/components/schemas/ACLAction' + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: + type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object + required: + - claims + - to + type: object + type: array + type: object + type: object + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + gitProviderOptions: + properties: + createDeployments: + type: string + enum: + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + concurrencyBucketName: + type: string + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: + nullable: true + type: number + firewallConfigVersion: + type: number + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: + items: + type: string + type: array + managedRules: + nullable: true + properties: + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + bot_filter: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + deploymentPolicy: + nullable: true + properties: + gitSources: + nullable: true + items: + properties: + sources: items: - $ref: '#/components/schemas/ACLAction' - type: array - redis: - items: - $ref: '#/components/schemas/ACLAction' - type: array - remoteCaching: - items: - $ref: '#/components/schemas/ACLAction' - type: array - samlConfig: - items: - $ref: '#/components/schemas/ACLAction' - type: array - secret: - items: - $ref: '#/components/schemas/ACLAction' - type: array - supportCase: - items: - $ref: '#/components/schemas/ACLAction' - type: array - supportCaseComment: - items: - $ref: '#/components/schemas/ACLAction' - type: array - dataCacheBillingSettings: - items: - $ref: '#/components/schemas/ACLAction' - type: array - team: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamAccessRequest: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamFellowMembership: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamInvite: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamInviteCode: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamJoin: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamOwnMembership: - items: - $ref: '#/components/schemas/ACLAction' - type: array - teamOwnMembershipDisconnectSAML: - items: - $ref: '#/components/schemas/ACLAction' - type: array - token: - items: - $ref: '#/components/schemas/ACLAction' - type: array - usage: - items: - $ref: '#/components/schemas/ACLAction' - type: array - usageCycle: - items: - $ref: '#/components/schemas/ACLAction' - type: array - user: - items: - $ref: '#/components/schemas/ACLAction' - type: array - userConnection: - items: - $ref: '#/components/schemas/ACLAction' - type: array - webAnalyticsPlan: - items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: + type: string + required: + - org + - provider + type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. type: array - edgeConfig: + enabled: + type: boolean + enum: + - false + - true + environments: items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object type: array - edgeConfigItem: + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + deploymentSources: + nullable: true + items: + properties: + sources: items: - $ref: '#/components/schemas/ACLAction' + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' type: array - edgeConfigToken: + enabled: + type: boolean + enum: + - false + - true + environments: items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object type: array - webhook: + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + type: object + description: Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident. + tier: + type: string + enum: + - advanced + - critical + - priority + usageStatus: + properties: + kind: + type: string + enum: + - flat + description: Billing mode. Always 'flat' for flat-rate projects. + exceededAllowanceUntil: + type: number + description: Timestamp until which the project has exceeded its CDN allowance. + bypassThrottleUntil: + type: number + description: Timestamp until which throttling is bypassed (project pays list rates for overage). + throttled: + type: boolean + enum: + - false + - true + description: Per-project throttle, set explicitly for this project (e.g. via the per-project Flat Rate CDN endpoint). + teamThrottled: + type: boolean + enum: + - false + - true + description: Synced from `team.billing.usageStatus.throttled`. When `true`, the team has throttled all of its projects regardless of `throttled`. The effective throttle the CDN enforces is `throttled || teamThrottled`. + required: + - kind + type: object + features: + properties: + webAnalytics: + type: boolean + enum: + - false + - true + type: object + v0: + type: boolean + enum: + - false + - true + v0Created: + type: boolean + enum: + - false + - true + abuse: + properties: + scanner: + type: string + history: + items: + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object + type: array + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: + items: + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object + type: array + interstitial: + type: boolean + enum: + - false + - true + interstitialHistory: + items: + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object + type: array + required: + - history + - updatedAt + type: object + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object type: array - webhook-event: + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + hasDeployments: + type: boolean + enum: + - false + - true + dismissedToasts: + items: + properties: + key: + type: string + dismissedAt: + type: number + action: + type: string + enum: + - accept + - cancel + - delete + value: + nullable: true + oneOf: + - type: string + - type: number + - properties: + previousValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + currentValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + required: + - currentValue + - previousValue + type: object + - type: boolean + enum: + - false + - true + required: + - action + - dismissedAt + - key + - value + type: object + type: array + protectedSourcemaps: + type: boolean + enum: + - false + - true + tracing: + properties: + domains: + type: string + ignorePaths: + items: + type: string + type: array + samplingRules: + items: + properties: + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + destination: + type: string + enum: + - external + - internal + description: Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed. + required: + - rate + type: object + type: array + type: object + avatar: + nullable: true + type: string + required: + - accountId + - alias + - defaultResourceConfig + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + At least one environment variable failed validation + The Bitbucket Webhook for the project link could not be created + The Gitlab Webhook for the project link could not be created + '401': + description: The request is not authorized. + '402': + description: |- + The account is missing a payment so payment method must be updated + Pro customers are allowed to deploy Serverless Functions to up to `proMaxRegions` regions, or if the project was created before the limit was introduced. + Deploying to Serverless Functions to multiple regions requires a plan update + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: A project with the provided name already exists. + '410': + description: '' + '428': + description: Owner does not have protection add-on + '429': + description: '' + '500': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + bodyArguments: + - name + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + properties: + enablePreviewFeedback: + description: Opt-in to preview toolbar on the project level + type: boolean + nullable: true + enableProductionFeedback: + description: Opt-in to production toolbar on the project level + type: boolean + nullable: true + previewDeploymentsDisabled: + description: Specifies whether preview deployments are disabled for this project. + type: boolean + nullable: true + previewDeploymentSuffix: + description: Custom domain suffix for preview deployments. Takes precedence over team-level suffix. Must be a domain owned by the team. + type: string + maxLength: 253 + nullable: true + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + commandForIgnoringBuildStep: + maxLength: 256 + type: string + nullable: true + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + environmentVariables: + description: Collection of ENV Variables the Project will use + items: + properties: + key: + description: Name of the ENV variable + type: string + target: + description: Deployment Target or Targets in which the ENV variable will be used + oneOf: + - enum: + - production + - preview + - development + - items: + enum: + - production + - preview + - development + type: array + gitBranch: + description: If defined, the git branch of the environment variable (must have target=preview) + type: string + maxLength: 250 + type: + description: Type of the ENV variable + enum: + - system + - encrypted + - plain + - sensitive + type: string + value: + description: Value for the ENV variable + type: string + required: + - key + - value + - target + type: object + type: array + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + enum: + - null + - container + - blitzjs + - nextjs + - gatsby + - remix + - react-router + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart-1 + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - tanstack-start + - tanstack-start-lovable + - vitepress + - vuepress + - parcel + - fastapi + - flask + - fasthtml + - django + - ash + - factory-eve + - eve + - sanity + - sanity-v2 + - storybook + - nitro + - hono + - express + - h3 + - koa + - nestjs + - elysia + - fastify + - xmcp + - python + - ruby + - rust + - axum + - actix-web + - bun + - node + - go + - services + - mastra + gitRepository: + description: The Git Repository that will be connected to the project. When this is defined, any pushes to the specified connected Git Repository will be automatically deployed + properties: + repo: + description: 'The name of the git repository. For example: \"vercel/next.js\"' + type: string + type: + description: The Git Provider of the repository + enum: + - github + - github-limited + - gitlab + - bitbucket + - vercel + - cursor-origin + required: + - type + - repo + type: object + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + name: + description: The desired name for the project + example: a-project-name + type: string + maxLength: 100 + skipGitConnectDuringLink: + description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + type: boolean + deprecated: true + ssoProtection: + description: The Vercel Auth setting for the project (historically named \"SSO Protection\") + type: object + properties: + deploymentType: + type: string + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + required: + - deploymentType + nullable: true + sandbox: + type: object + description: Specifies the default region and failover regions for sandboxes created in the project + properties: + region: + description: The Vercel region sandboxes in this project are created in by default. + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + example: iad1 + failoverRegions: + description: The regions sandboxes in this project fall back to when they cannot be created in `region`. + type: array + uniqueItems: true + maxItems: 19 + items: + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + example: + - sfo1 + - cle1 + additionalProperties: false + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + publicSource: + deprecated: true + description: Deprecated. Accepted for backwards compatibility but ignored. + type: boolean + nullable: true + rootDirectory: + description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + maxLength: 256 + type: string + nullable: true + serverlessFunctionRegion: + description: The region to deploy Serverless Functions in this project + maxLength: 4 + type: string + nullable: true + serverlessFunctionZeroConfigFailover: + description: Specifies whether Zero Config Failover is enabled for this project. + type: boolean + oidcTokenConfig: + description: OpenID Connect JSON Web Token generation configuration. + type: object + additionalProperties: false + properties: + enabled: + description: Whether or not to generate OpenID Connect JSON Web Tokens. + deprecated: true + type: boolean + default: true + issuerMode: + description: 'team: `https://oidc.vercel.com/[team_slug]` global: `https://oidc.vercel.com`' + type: string + enum: + - team + - global + default: team + enableAffectedProjectsDeployments: + description: Opt-in to skip deployments when there are no changes to the root directory and its dependencies + type: boolean + resourceConfig: + properties: + buildMachineType: + enum: + - basic + - enhanced + - turbo + - standard + - elastic + fluid: + type: boolean + functionDefaultRegions: + description: The regions to deploy Vercel Functions to for this project + type: array + minItems: 1 + uniqueItems: true + items: + type: string + maxLength: 4 + functionDefaultTimeout: + type: number + maximum: 900 + minimum: 1 + functionDefaultMemoryType: + enum: + - standard_legacy + - standard + - performance + - performance_xl + functionZeroConfigFailover: + description: Specifies whether Zero Config Failover is enabled for this project. + oneOf: + - type: boolean + elasticConcurrencyEnabled: + type: boolean + buildMachineSelection: + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + enum: + - oom-failure + - enospc-failure + - build-timeout-failure + - basic-floor + - high-peak-memory + - sustained-high-cpu + - high-peak-disk + - long-build-duration + - short-build-duration + - enterprise-floor + isNSNBDisabled: + type: boolean + buildQueue: + type: object + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + enableFunctionsBeta: + type: boolean + type: object + description: Specifies resource override configuration for the project + additionalProperties: false + required: + - name + type: object + /v1/projects/{id_or_name}/token: + post: + description: Generates an OIDC token for the project and returns it. + operationId: getProjectToken + security: + - bearerToken: [] + summary: Generate a project OIDC token + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + token: + type: string + required: + - token + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: The project ID or name + in: path + required: true + schema: + description: The project ID or name + type: string + example: my-project, + maxLength: 150 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + source: + description: The source that is calling the endpoint. + type: string + example: vercel-cli:pull + maxLength: 150 + /v1/projects/traces/session: + post: + description: Mints a short-lived HS256 JWT scoped to a deployment hostname. The Vercel CLI presents this JWT to the Vercel proxy on requests it wants traced. + operationId: createTraceSession + security: + - bearerToken: [] + summary: Create a trace session token for a deployment + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + token: + type: string + required: + - token + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '422': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - projectId + - hostname + additionalProperties: false + properties: + projectId: + type: string + description: The project ID the deployment belongs to. + hostname: + type: string + description: The deployment hostname to scope the trace session to. + /v9/projects/{id_or_name}: + get: + description: Get the information for a specific project by passing either the project `id` or `name` in the URL. + operationId: getProject + security: + - bearerToken: [] + summary: Find a project by id or name + tags: + - projects + responses: + '200': + description: The project information + content: + application/json: + schema: + properties: + integrations: + items: + properties: + installationId: + type: string + description: The integration installation ID. + example: icfg_3bwCLgxL8qt5kjRLcv2Dit7F + resources: + items: + properties: + externalResourceId: + type: string + required: + - externalResourceId + type: object + description: The list of the installation resources connected to the project. + type: array + description: The list of the installation resources connected to the project. + required: + - installationId + type: object + description: Integration installation enabled on the project. + type: array + accountId: + type: string + creator: + properties: + type: + type: string + enum: + - user + via: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - type + - user + - via + - app + - integration + type: object + alias: + items: + properties: + configuredBy: + nullable: true + type: string + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number + createdAt: + nullable: true + type: number + deployment: + nullable: true + properties: + id: + type: string + alias: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - endpointVerification: + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - projectTransferIn: + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: items: - $ref: '#/components/schemas/ACLAction' + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object type: array - type: object - lastRollbackTarget: - nullable: true - type: object - lastAliasRequest: - nullable: true - properties: - fromDeploymentId: - type: string - toDeploymentId: - type: string - jobStatus: + checksConclusion: type: string enum: - - succeeded + - canceled - failed - skipped - - pending - - in-progress - requestedAt: + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: type: number - type: + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: type: string + forced: + type: boolean enum: - - promote - - rollback - required: - - fromDeploymentId - - toDeploymentId - - jobStatus - - requestedAt - - type - type: object - hasFloatingAliases: - type: boolean - protectionBypass: - additionalProperties: - properties: - createdAt: - type: number - createdBy: - type: string - scope: + - false + - true + name: + type: string + meta: + additionalProperties: type: string - enum: - - automation-bypass - required: - - createdAt - - createdBy - - scope - type: object - type: object - hasActiveBranches: - type: boolean - trustedIps: - nullable: true - oneOf: - - properties: - deploymentType: + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - addresses: + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: items: - properties: - value: - type: string - note: - type: string - required: - - value - type: object + type: string type: array - protectionMode: - type: string - enum: - - additional - - exclusive - required: - - deploymentType - - addresses - - protectionMode - type: object - - properties: - deploymentType: + plan: type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production required: - - deploymentType + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub type: object - gitComments: - properties: - onPullRequest: + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: type: boolean - description: Whether the Vercel bot should comment on PRs - onCommit: + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: type: boolean - description: Whether the Vercel bot should comment on commits + enum: + - false + - true required: - - onPullRequest - - onCommit + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url type: object - paused: - type: boolean + domain: + type: string + environment: + type: string + enum: + - preview + - production + gitBranch: + nullable: true + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: + type: string + enum: + - PREVIEW + - PRODUCTION + - STAGING required: - - accountId - - directoryListing - - id - - name - - nodeVersion + - deployment + - domain + - environment + - target type: object type: array - pagination: - $ref: '#/components/schemas/Pagination' - required: - - projects - - pagination - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: from - description: Query only projects updated after the given timestamp - in: query - schema: - description: Query only projects updated after the given timestamp - type: string - - name: gitForkProtection - description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed - in: query - schema: - description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed - type: string - enum: - - '1' - - '0' - example: '1' - - name: limit - description: Limit the number of projects returned - in: query - schema: - description: Limit the number of projects returned - type: string - - name: search - description: Search projects by the name field - in: query - schema: - description: Search projects by the name field - type: string - - name: repo - description: Filter results by repo. Also used for project count - in: query - schema: - description: Filter results by repo. Also used for project count - type: string - - name: repoId - description: Filter results by Repository ID. - in: query - schema: - description: Filter results by Repository ID. - type: string - - name: repoUrl - description: Filter results by Repository URL. - in: query - schema: - description: Filter results by Repository URL. - type: string - example: 'https://github.com/vercel/next.js' - - name: excludeRepos - description: Filter results by excluding those projects that belong to a repo - in: query - schema: - description: Filter results by excluding those projects that belong to a repo - type: string - - name: edgeConfigId - description: Filter results by connected Edge Config ID - in: query - schema: - description: Filter results by connected Edge Config ID - type: string - - name: edgeConfigTokenId - description: Filter results by connected Edge Config Token ID - in: query - schema: - description: Filter results by connected Edge Config Token ID - type: string - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - post: - description: Allows to create a new project with the provided configuration. It only requires the project `name` but more configuration can be provided to override the defaults. - operationId: createProject - security: - - bearerToken: [] - summary: Create a new project - tags: - - projects - responses: - '200': - description: The project was successfuly created - content: - application/json: - schema: - properties: - accountId: - type: string analytics: properties: id: @@ -3538,15 +9594,48 @@ paths: nullable: true type: number required: - - id - - canceledAt - disabledAt - enabledAt + - id + type: object + appliedCve55182Migration: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id type: object autoExposeSystemEnvs: type: boolean + enum: + - false + - true autoAssignCustomDomains: type: boolean + enum: + - false + - true autoAssignCustomDomainsUpdatedBy: type: string buildCommand: @@ -3555,15 +9644,73 @@ paths: commandForIgnoringBuildStep: nullable: true type: string + connectConfigurations: + nullable: true + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: + type: boolean + enum: + - false + - true + buildsEnabled: + type: boolean + enum: + - false + - true + aws: + properties: + subnetIds: + items: + type: string + type: array + securityGroupId: + type: string + required: + - subnetIds + type: object + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + type: array connectConfigurationId: nullable: true type: string connectBuildsEnabled: type: boolean + enum: + - false + - true + passiveConnectConfigurationId: + nullable: true + type: string createdAt: type: number customerSupportCodeVisibility: type: boolean + enum: + - false + - true crons: properties: enabledAt: @@ -3594,6 +9741,20 @@ paths: type: string description: The cron expression. example: 0 0 * * * + source: + type: string + enum: + - api + description: The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json). + description: + type: string + description: A human-readable description of what this cron job does. + hostInferred: + type: boolean + enum: + - false + - true + description: Whether the host was inferred from the production deployment URL rather than explicitly provided. required: - host - path @@ -3601,29 +9762,73 @@ paths: type: object type: array required: - - enabledAt + - definitions + - deploymentId - disabledAt + - enabledAt - updatedAt - - deploymentId - - definitions type: object dataCache: properties: userDisabled: type: boolean + enum: + - false + - true storageSizeBytes: nullable: true type: number unlimited: type: boolean + enum: + - false + - true required: - userDisabled type: object + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + expiration: + properties: + expiresAt: + type: number + description: Unix ms timestamp when the project is scheduled to expire. + lockedAt: + type: number + description: Unix ms timestamp when the project was locked. + lockedBy: + type: string + description: userId of the actor that triggered the lock (system or admin). + required: + - expiresAt + - lockedAt + - lockedBy + type: object devCommand: nullable: true type: string directoryListing: type: boolean + enum: + - false + - true installCommand: nullable: true type: string @@ -3635,33 +9840,44 @@ paths: - items: type: string enum: - - production - - preview - development - - preview - development + - preview + - preview + - production type: array - type: string enum: - production - preview - development - - preview - - development type: type: string enum: - - system - - secret - encrypted - plain + - secret - sensitive - id: + - system + sunsetSecretId: type: string - key: + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true value: type: string + vsmValue: + type: string + id: + type: string + key: + type: string configurationId: nullable: true type: string @@ -3677,6 +9893,12 @@ paths: type: string gitBranch: type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. edgeConfigId: nullable: true type: string @@ -3694,8 +9916,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3705,8 +9927,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3716,8 +9938,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3727,8 +9949,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3738,8 +9960,30 @@ paths: storeId: type: string required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: - storeId + - type type: object - properties: type: @@ -3749,8 +9993,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3760,8 +10004,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3771,8 +10015,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3782,8 +10026,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3793,8 +10037,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3804,8 +10048,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -3815,73 +10059,441 @@ paths: storeId: type: string required: + - storeId - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: - storeId + - type type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array required: - - type - key + - type - value type: object type: array + customEnvironments: + items: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + type: array framework: nullable: true type: string enum: - - blitzjs - - nextjs - - gatsby - - remix + - actix-web + - angular + - ash - astro - - hexo - - eleventy - - docusaurus-2 + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django - docusaurus - - preact - - solidstart + - docusaurus-2 - dojo + - eleventy + - elysia - ember - - vue - - scully + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen - ionic-angular - - angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook - svelte - sveltekit - sveltekit-1 - - ionic-react - - create-react-app - - gridsome + - tanstack-start + - tanstack-start-lovable - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - vite - vitepress + - vue - vuepress - - parcel - - sanity - - storybook + - xmcp + - zola + - null + services: + items: + properties: + serviceName: + type: string + description: Service name from the deployment (Service.name). + serviceType: + type: string + enum: + - cron + - job + - web + - worker + description: Service kind (Service.type). Omitted for schemas that do not define one. + framework: + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + description: Framework slug, when the service has one (omitted otherwise). + runtime: + type: string + description: Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds. + required: + - serviceName + type: object + type: array gitForkProtection: type: boolean + enum: + - false + - true gitLFS: type: boolean + enum: + - false + - true id: type: string + ipBuckets: + items: + properties: + bucket: + type: string + default: + type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object + type: array + jobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + typecheck: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + mfe-config-present: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + type: object latestDeployments: items: properties: + id: + type: string alias: items: type: string @@ -3891,6 +10503,9 @@ paths: oneOf: - type: number - type: boolean + enum: + - false + - true aliasError: nullable: true properties: @@ -3909,6 +10524,24 @@ paths: items: type: string type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number builds: items: properties: @@ -3922,8 +10555,24 @@ paths: - use type: object type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running connectBuildsEnabled: type: boolean + enum: + - false + - true connectConfigurationId: type: string createdAt: @@ -3948,13 +10597,16 @@ paths: - uid - username type: object + deletedAt: + type: number deploymentHostname: type: string - name: - type: string forced: type: boolean - id: + enum: + - false + - true + name: type: string meta: additionalProperties: @@ -3963,29 +10615,81 @@ paths: monorepoManager: nullable: true type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object plan: type: string enum: - - pro - enterprise - hobby - - oss + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false private: type: boolean + enum: + - false + - true + readyAt: + type: number readyState: type: string enum: + - BLOCKED - BUILDING + - CANCELED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED readySubstate: type: string enum: - - STAGED - PROMOTED + - ROLLING + - STAGED requestedAt: type: number target: @@ -4002,217 +10706,651 @@ paths: type: string userId: type: string + description: Present for user creators; omitted for app/integration/system creators. withCache: type: boolean - checksConclusion: + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: array + link: + properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + host: + type: string + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + name: + type: string + slug: + type: string + owner: + type: string + uuid: + type: string + workspaceUuid: + type: string + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + - host + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - name + - owner + - slug + - uuid + - workspaceUuid + - repo + - repoId + - ownerId + type: object + blobs: + properties: + isDefaultApp: + type: boolean + enum: + - false + - true + description: Marks the team-level, Vercel-managed default blob project (`vercel-blob-default-project`) that orphan blob stores are scoped to when connected without an explicit project. Set only by internal storage flows and immutable after creation — guards rely on it to protect the connected stores from being lost when the project is deleted or transferred. + type: object + microfrontends: + properties: + isDefaultApp: + type: boolean + enum: + - true + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + routeObservabilityToThisProject: + type: boolean + enum: + - false + - true + description: Whether observability data should be routed to this microfrontend project or a root project. + doNotRouteWithMicrofrontendsRouting: + type: boolean + enum: + - false + - true + description: Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend. + required: + - enabled + - groupIds + - isDefaultApp + - updatedAt + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + protectionConfig: + properties: + sandboxUrls: + properties: + inheritDeploymentProtection: + type: boolean + enum: + - false + - true + type: object + type: object + sandbox: + properties: + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + failoverRegions: + items: type: string enum: - - succeeded - - failed - - skipped - - canceled - checksState: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + type: array + type: object + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: type: string - enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false - required: - - createdAt - - createdIn - - creator - - deploymentHostname - - name - - id - - plan - - private - - readyState - - type - - url - - userId - type: object - type: array - link: - oneOf: - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: type: string enum: - - github - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE type: object - - properties: - projectId: - type: string - projectName: - type: string - projectNameWithNamespace: - type: string - projectNamespace: - type: string - projectUrl: - type: string - type: - type: string + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rollbackDescription: + properties: + userId: + type: string + description: The user who rolled back the project. + username: + type: string + description: The username of the user who rolled back the project. + description: + type: string + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean enum: - - gitlab - createdAt: - type: number - deployHooks: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: items: properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: + type: type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 required: - - id - - name - - ref - - url + - type type: object + description: The checks to evaluate. An empty array means nothing is evaluated. type: array - gitCredentialId: - type: string - updatedAt: + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: type: number - sourceless: - type: boolean - productionBranch: + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. required: - - deployHooks + - action + - checks + - dryRun + - enabled type: object - - properties: - name: - type: string - slug: - type: string - owner: - type: string - type: + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + defaultResourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: type: string enum: - - bitbucket - uuid: - type: string - workspaceUuid: - type: string - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE type: object - name: - type: string - nodeVersion: - type: string - enum: - - 18.x - - 16.x - - 14.x - - 12.x - - 10.x - outputDirectory: - nullable: true - type: string - passwordProtection: - nullable: true + enableFunctionsBeta: + type: boolean + enum: + - false + - true type: object - productionDeploymentsFastLane: - type: boolean - publicSource: - nullable: true - type: boolean + required: + - functionDefaultRegions rootDirectory: nullable: true type: string - serverlessFunctionRegion: - nullable: true - type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + skewProtectionBoundaryAt: + type: number + skewProtectionMaxAge: + type: number + skewProtectionAllowedDomains: + items: + type: string + type: array skipGitConnectDuringLink: type: boolean + enum: + - false + - true + staticIps: + properties: + builds: + type: boolean + enum: + - false + - true + enabled: + type: boolean + enum: + - false + - true + regions: + items: + type: string + type: array + required: + - builds + - enabled + - regions + type: object sourceFilesOutsideRootDirectory: type: boolean + enum: + - false + - true + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true ssoProtection: nullable: true properties: @@ -4220,8 +11358,27 @@ paths: type: string enum: - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains - preview - prod_deployment_urls_and_all_previews + - null required: - deploymentType type: object @@ -4229,6 +11386,8 @@ paths: additionalProperties: nullable: true properties: + id: + type: string alias: items: type: string @@ -4238,6 +11397,9 @@ paths: oneOf: - type: number - type: boolean + enum: + - false + - true aliasError: nullable: true properties: @@ -4256,6 +11418,24 @@ paths: items: type: string type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number builds: items: properties: @@ -4269,8 +11449,24 @@ paths: - use type: object type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running connectBuildsEnabled: type: boolean + enum: + - false + - true connectConfigurationId: type: string createdAt: @@ -4295,13 +11491,16 @@ paths: - uid - username type: object + deletedAt: + type: number deploymentHostname: type: string - name: - type: string forced: type: boolean - id: + enum: + - false + - true + name: type: string meta: additionalProperties: @@ -4310,29 +11509,81 @@ paths: monorepoManager: nullable: true type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object plan: type: string enum: - - pro - enterprise - hobby - - oss + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false private: type: boolean + enum: + - false + - true + readyAt: + type: number readyState: type: string enum: + - BLOCKED - BUILDING + - CANCELED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED readySubstate: type: string enum: - - STAGED - PROMOTED + - ROLLING + - STAGED requestedAt: type: number target: @@ -4349,42 +11600,24 @@ paths: type: string userId: type: string + description: Present for user creators; omitted for app/integration/system creators. withCache: type: boolean - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - checksState: - type: string enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false + - false + - true required: - createdAt - createdIn - creator - deploymentHostname - - name - id + - name - plan - private - readyState - type - url - - userId type: object type: object transferCompletedAt: @@ -4399,128 +11632,682 @@ paths: type: number live: type: boolean + enum: + - false + - true enablePreviewFeedback: nullable: true type: boolean + enum: + - false + - true + - null + enableProductionFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null permissions: properties: + oauth2Connection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userMfaConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userPreference: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAuthn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + accessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + agent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyBypassAll: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeySpendAttribution: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyZdrExemption: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayCredits: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayPrivateModels: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayGuardrails: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewaySettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscripts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscriptsSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayVirtualModelConfigs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alerts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alertRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array aliasGlobal: items: $ref: '#/components/schemas/ACLAction' type: array - analyticsSampling: + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyAiGateway: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Application: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallationRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + automation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingRefund: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blobStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeChecks: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeOwners: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciInvocations: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClientProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexContact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachineDefault: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cursorOriginInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + defaultDeploymentProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + drain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigSchema: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + flagsExplorerSubscription: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + imageOptimizationNewPrice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationRole: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationDeploymentAction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResource: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceReplCommand: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceSecrets: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationSSOSession: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationPullRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsIssuer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsProjectGrant: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceBillingData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationEdgeConfigData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceFlexCommit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInstallationMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: items: $ref: '#/components/schemas/ACLAction' type: array - analyticsUsage: + notificationDeploymentFailed: items: $ref: '#/components/schemas/ACLAction' type: array - auditLog: + notificationDomainConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - billingAddress: + notificationDomainExpire: items: $ref: '#/components/schemas/ACLAction' type: array - billingInformation: + notificationDomainMoved: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoice: + notificationDomainPurchase: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoiceEmailRecipient: + notificationDomainRenewal: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoiceLanguage: + notificationDomainTransfer: items: $ref: '#/components/schemas/ACLAction' type: array - billingPlan: + notificationDomainUnverified: items: $ref: '#/components/schemas/ACLAction' type: array - billingPurchaseOrder: + NotificationMonitoringAlert: items: $ref: '#/components/schemas/ACLAction' type: array - billingTaxId: + notificationPaymentFailed: items: $ref: '#/components/schemas/ACLAction' type: array - blob: + notificationPreferences: items: $ref: '#/components/schemas/ACLAction' type: array - budget: + notificationStatementOfReasons: items: $ref: '#/components/schemas/ACLAction' type: array - cacheArtifact: + notificationUsageAlert: items: $ref: '#/components/schemas/ACLAction' type: array - cacheArtifactUsageEvent: + oidcFederationPolicy: items: $ref: '#/components/schemas/ACLAction' type: array - concurrentBuilds: + observabilityConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - connect: + observabilityFunnel: items: $ref: '#/components/schemas/ACLAction' type: array - connectConfiguration: + observabilityNotebook: items: $ref: '#/components/schemas/ACLAction' type: array - domain: + openTelemetryEndpoint: items: $ref: '#/components/schemas/ACLAction' type: array - domainAcceptDelegation: + ownEvent: items: $ref: '#/components/schemas/ACLAction' type: array - domainAuthCodes: + organization: items: $ref: '#/components/schemas/ACLAction' type: array - domainCertificate: + organizationDomain: items: $ref: '#/components/schemas/ACLAction' type: array - domainCheckConfig: + organizationTeam: items: $ref: '#/components/schemas/ACLAction' type: array - domainMove: + passwordProtectionInvoiceItem: items: $ref: '#/components/schemas/ACLAction' type: array - domainPurchase: + paymentMethod: items: $ref: '#/components/schemas/ACLAction' type: array - domainRecord: + permissions: items: $ref: '#/components/schemas/ACLAction' type: array - domainTransferIn: + postgres: items: $ref: '#/components/schemas/ACLAction' type: array - event: + postgresStoreTokenSet: items: $ref: '#/components/schemas/ACLAction' type: array - ownEvent: + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateCloudAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redisStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + repository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityConfig: items: $ref: '#/components/schemas/ACLAction' type: array @@ -4528,762 +12315,2221 @@ paths: items: $ref: '#/components/schemas/ACLAction' type: array - fileUpload: + sharedEnvVars: items: $ref: '#/components/schemas/ACLAction' type: array - gitRepository: + sharedEnvVarsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - ipBlocking: + space: items: $ref: '#/components/schemas/ACLAction' type: array - integration: + spaceRun: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfiguration: + storeIsLocked: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfigurationTransfer: + storeTokenSetSensitive: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfigurationProjects: + storeTransfer: items: $ref: '#/components/schemas/ACLAction' type: array - integrationVercelConfigurationOverride: + supportCase: items: $ref: '#/components/schemas/ACLAction' type: array - jobGlobal: + supportCaseComment: items: $ref: '#/components/schemas/ACLAction' type: array - logDrain: + team: items: $ref: '#/components/schemas/ACLAction' type: array - Monitoring: + teamAccessRequest: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringQuery: + teamFellowMembership: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringChart: + teamGitExclusivity: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringAlert: + teamInvite: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDeploymentFailed: + teamInviteCode: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainConfiguration: + teamInviteLink: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainExpire: + teamJoin: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainMoved: + teamMemberMfaStatus: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainPurchase: + teamMicrofrontends: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainRenewal: + teamOwnMembership: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainTransfer: + teamOwnMembershipDisconnectSAML: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainUnverified: + teamSudo: items: $ref: '#/components/schemas/ACLAction' type: array - NotificationMonitoringAlert: + teamTokenInvalidation: items: $ref: '#/components/schemas/ACLAction' type: array - notificationPaymentFailed: + token: items: $ref: '#/components/schemas/ACLAction' type: array - notificationUsageAlert: + toolbarComment: items: $ref: '#/components/schemas/ACLAction' type: array - notificationCustomerBudget: + usage: items: $ref: '#/components/schemas/ACLAction' type: array - openTelemetryEndpoint: + usageCycle: items: $ref: '#/components/schemas/ACLAction' type: array - paymentMethod: + vcrRepository: items: $ref: '#/components/schemas/ACLAction' type: array - permissions: + vpcPeeringConnection: items: $ref: '#/components/schemas/ACLAction' type: array - postgres: + webAnalyticsPlan: items: $ref: '#/components/schemas/ACLAction' type: array - previewDeploymentSuffix: + webhook: items: $ref: '#/components/schemas/ACLAction' type: array - proTrialOnboarding: + webhook-event: items: $ref: '#/components/schemas/ACLAction' type: array - seawallConfig: + aliasProject: items: $ref: '#/components/schemas/ACLAction' type: array - sharedEnvVars: + aliasProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - sharedEnvVarsProduction: + bulkRedirects: items: $ref: '#/components/schemas/ACLAction' type: array - space: + buildMachine: items: $ref: '#/components/schemas/ACLAction' type: array - spaceRun: + connectConfigurationLink: items: $ref: '#/components/schemas/ACLAction' type: array - passwordProtectionInvoiceItem: + dataCacheNamespace: items: $ref: '#/components/schemas/ACLAction' type: array - rateLimit: + deployment: items: $ref: '#/components/schemas/ACLAction' type: array - redis: + deploymentBuildLogs: items: $ref: '#/components/schemas/ACLAction' type: array - remoteCaching: + deploymentCheck: items: $ref: '#/components/schemas/ACLAction' type: array - samlConfig: + deploymentCheckPreview: items: $ref: '#/components/schemas/ACLAction' type: array - secret: + deploymentCheckReRunFromProductionBranch: items: $ref: '#/components/schemas/ACLAction' type: array - supportCase: + deploymentProductionGit: items: $ref: '#/components/schemas/ACLAction' type: array - supportCaseComment: + deploymentV0: items: $ref: '#/components/schemas/ACLAction' type: array - dataCacheBillingSettings: + deploymentPreview: items: $ref: '#/components/schemas/ACLAction' type: array - team: + deploymentPrivate: items: $ref: '#/components/schemas/ACLAction' type: array - teamAccessRequest: + deploymentPromote: items: $ref: '#/components/schemas/ACLAction' type: array - teamFellowMembership: + deploymentRollback: items: $ref: '#/components/schemas/ACLAction' type: array - teamInvite: + edgeCacheNamespace: items: $ref: '#/components/schemas/ACLAction' type: array - teamInviteCode: + environments: items: $ref: '#/components/schemas/ACLAction' type: array - teamJoin: + job: items: $ref: '#/components/schemas/ACLAction' type: array - teamOwnMembership: + logs: items: $ref: '#/components/schemas/ACLAction' type: array - teamOwnMembershipDisconnectSAML: + logsPreset: items: $ref: '#/components/schemas/ACLAction' type: array - token: + observabilityData: items: $ref: '#/components/schemas/ACLAction' type: array - usage: + onDemandBuild: items: $ref: '#/components/schemas/ACLAction' type: array - usageCycle: + onDemandConcurrency: items: $ref: '#/components/schemas/ACLAction' type: array - user: + optionsAllowlist: items: $ref: '#/components/schemas/ACLAction' type: array - userConnection: + passwordProtection: items: $ref: '#/components/schemas/ACLAction' type: array - webAnalyticsPlan: + privateLinkEndpoint: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfig: + productionAliasProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfigItem: + productionShareableLink: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfigToken: + project: items: $ref: '#/components/schemas/ACLAction' type: array - webhook: + projectAccessGroup: items: $ref: '#/components/schemas/ACLAction' type: array - webhook-event: + projectAnalyticsSampling: items: $ref: '#/components/schemas/ACLAction' type: array - endpointVerification: + projectAnalyticsUsage: items: $ref: '#/components/schemas/ACLAction' type: array - projectTransferIn: + projectCheck: items: $ref: '#/components/schemas/ACLAction' type: array - aliasProject: + projectCheckRun: items: $ref: '#/components/schemas/ACLAction' type: array - aliasProtectionBypass: + projectDeploymentExpiration: items: $ref: '#/components/schemas/ACLAction' type: array - connectConfigurationLink: + projectDeploymentHook: items: $ref: '#/components/schemas/ACLAction' type: array - dataCacheNamespace: + projectDeploymentProtectionStrict: items: $ref: '#/components/schemas/ACLAction' type: array - deployment: + projectDomain: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheck: + projectDomainCheckConfig: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheckPreview: + projectDomainMove: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheckReRunFromProductionBranch: + projectDomainVerify: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlags: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsSdkKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFromV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentProductionGit: + projectOIDCToken: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPreview: + projectPermissions: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPrivate: + projectProductionBranch: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPromote: + projectProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentRollback: + projectRollingRelease: items: $ref: '#/components/schemas/ACLAction' type: array - logs: + projectRoutes: items: $ref: '#/components/schemas/ACLAction' type: array - logsPreset: + projectSupportCase: items: $ref: '#/components/schemas/ACLAction' type: array - passwordProtection: + projectSupportCaseComment: items: $ref: '#/components/schemas/ACLAction' type: array - job: + projectTier: items: $ref: '#/components/schemas/ACLAction' type: array - project: + projectTransfer: items: $ref: '#/components/schemas/ACLAction' type: array - projectAnalyticsSampling: + projectTransferOut: items: $ref: '#/components/schemas/ACLAction' type: array - projectDeploymentHook: + projectUsage: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomain: + pageIntegrity: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomainMove: + seawallConfig: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomainCheckConfig: + securityPlusConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVars: + shareableLink: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVarsProduction: + shareableLinkStrict: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVarsUnownedByIntegration: + sharedEnvVarConnection: items: $ref: '#/components/schemas/ACLAction' type: array - projectId: + skewProtection: items: $ref: '#/components/schemas/ACLAction' type: array - projectIntegrationConfiguration: + analytics: items: $ref: '#/components/schemas/ACLAction' type: array - projectLink: + trustedIps: items: $ref: '#/components/schemas/ACLAction' type: array - projectMember: + trustedSources: items: $ref: '#/components/schemas/ACLAction' type: array - projectMonitoring: + v0Chat: items: $ref: '#/components/schemas/ACLAction' type: array - projectPermissions: + vercelAuth: items: $ref: '#/components/schemas/ACLAction' type: array - projectProductionBranch: + vercelRun: items: $ref: '#/components/schemas/ACLAction' type: array - projectTransfer: + webAnalytics: items: $ref: '#/components/schemas/ACLAction' type: array - projectTransferOut: + workflowRunData: items: $ref: '#/components/schemas/ACLAction' type: array - projectProtectionBypass: + type: object + lastRollbackTarget: + nullable: true + type: string + description: (opaque JSON object) + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + nullable: true + type: string + toDeploymentId: + type: string + fromRollingReleaseId: + type: string + description: If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release. + jobStatus: + type: string + enum: + - failed + - in-progress + - pending + - skipped + - succeeded + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - jobStatus + - requestedAt + - toDeploymentId + - type + type: object + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + enum: + - false + - true + trustedIps: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: items: - $ref: '#/components/schemas/ACLAction' + properties: + value: + type: string + note: + type: string + required: + - value + type: object type: array - projectUsage: + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - addresses + - deploymentType + - protectionMode + type: object + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: + items: + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: + type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object + required: + - claims + - to + type: object + type: array + type: object + type: object + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + gitProviderOptions: + properties: + createDeployments: + type: string + enum: + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + concurrencyBucketName: + type: string + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: + nullable: true + type: number + firewallConfigVersion: + type: number + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - projectAnalyticsUsage: + managedRules: + nullable: true + properties: + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + bot_filter: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + deploymentPolicy: + nullable: true + properties: + gitSources: + nullable: true items: - $ref: '#/components/schemas/ACLAction' + properties: + sources: + items: + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: + type: string + required: + - org + - provider + type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' type: array - analytics: + deploymentSources: + nullable: true items: - $ref: '#/components/schemas/ACLAction' + properties: + sources: + items: + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' type: array - trustedIps: + type: object + description: Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident. + tier: + type: string + enum: + - advanced + - critical + - priority + usageStatus: + properties: + kind: + type: string + enum: + - flat + description: Billing mode. Always 'flat' for flat-rate projects. + exceededAllowanceUntil: + type: number + description: Timestamp until which the project has exceeded its CDN allowance. + bypassThrottleUntil: + type: number + description: Timestamp until which throttling is bypassed (project pays list rates for overage). + throttled: + type: boolean + enum: + - false + - true + description: Per-project throttle, set explicitly for this project (e.g. via the per-project Flat Rate CDN endpoint). + teamThrottled: + type: boolean + enum: + - false + - true + description: Synced from `team.billing.usageStatus.throttled`. When `true`, the team has throttled all of its projects regardless of `throttled`. The effective throttle the CDN enforces is `throttled || teamThrottled`. + required: + - kind + type: object + features: + properties: + webAnalytics: + type: boolean + enum: + - false + - true + type: object + v0: + type: boolean + enum: + - false + - true + v0Created: + type: boolean + enum: + - false + - true + abuse: + properties: + scanner: + type: string + history: items: - $ref: '#/components/schemas/ACLAction' + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object type: array - webAnalytics: + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object type: array - sharedEnvVarConnection: + interstitial: + type: boolean + enum: + - false + - true + interstitialHistory: items: - $ref: '#/components/schemas/ACLAction' + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object type: array - type: object - lastRollbackTarget: - nullable: true - type: object - lastAliasRequest: - nullable: true - properties: - fromDeploymentId: - type: string - toDeploymentId: - type: string - jobStatus: - type: string - enum: - - succeeded - - failed - - skipped - - pending - - in-progress - requestedAt: - type: number - type: - type: string - enum: - - promote - - rollback required: - - fromDeploymentId - - toDeploymentId - - jobStatus - - requestedAt - - type + - history + - updatedAt type: object - hasFloatingAliases: + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + hasDeployments: type: boolean - protectionBypass: - additionalProperties: + enum: + - false + - true + dismissedToasts: + items: properties: - createdAt: - type: number - createdBy: + key: type: string - scope: + dismissedAt: + type: number + action: type: string enum: - - automation-bypass - required: - - createdAt - - createdBy - - scope - type: object - type: object - hasActiveBranches: - type: boolean - trustedIps: - nullable: true - oneOf: - - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - addresses: - items: - properties: - value: - type: string - note: - type: string + - accept + - cancel + - delete + value: + nullable: true + oneOf: + - type: string + - type: number + - properties: + previousValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + currentValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true required: - - value + - currentValue + - previousValue type: object - type: array - protectionMode: - type: string - enum: - - additional - - exclusive - required: - - deploymentType - - addresses - - protectionMode - type: object - - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - required: - - deploymentType - type: object - gitComments: - properties: - onPullRequest: - type: boolean - description: Whether the Vercel bot should comment on PRs - onCommit: - type: boolean - description: Whether the Vercel bot should comment on commits - required: - - onPullRequest - - onCommit - type: object - paused: + - type: boolean + enum: + - false + - true + required: + - action + - dismissedAt + - key + - value + type: object + type: array + protectedSourcemaps: type: boolean - required: - - accountId - - directoryListing - - id - - name - - nodeVersion - type: object - '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. - The Bitbucket Webhook for the project link could not be created - The Gitlab Webhook for the project link could not be created - '401': - description: '' - '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated - '403': - description: You do not have permission to access this resource. - '409': - description: A project with the provided name already exists. - parameters: - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - additionalProperties: false - properties: - buildCommand: - description: The build command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - commandForIgnoringBuildStep: - maxLength: 256 - type: string - nullable: true - devCommand: - description: The dev command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - environmentVariables: - description: Collection of ENV Variables the Project will use - items: + enum: + - false + - true + tracing: properties: - key: - description: Name of the ENV variable - type: string - target: - description: Deployment Target or Targets in which the ENV variable will be used - oneOf: - - enum: - - production - - preview - - development - - items: - enum: - - production - - preview - - development - type: array - gitBranch: - description: The git branch of the environment variable - type: string - maxLength: 250 - example: feature-1 - type: - description: Type of the ENV variable - enum: - - system - - secret - - encrypted - - plain - type: string - value: - description: Value for the ENV variable + domains: type: string - required: - - key - - value - - target + ignorePaths: + items: + type: string + type: array + samplingRules: + items: + properties: + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + destination: + type: string + enum: + - external + - internal + description: Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed. + required: + - rate + type: object + type: array type: object - type: array - framework: - description: The framework that is being used for this project. When `null` is used no framework is selected - enum: - - null - - blitzjs - - nextjs - - gatsby - - remix - - astro - - hexo - - eleventy - - docusaurus-2 - - docusaurus - - preact - - solidstart - - dojo - - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app - - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - - vite - - vitepress - - vuepress - - parcel - - sanity - - storybook - gitRepository: - description: 'The Git Repository that will be connected to the project. When this is defined, any pushes to the specified connected Git Repository will be automatically deployed' - properties: - repo: - description: 'The name of the git repository. For example: \"vercel/next.js\"' - type: string - type: - description: The Git Provider of the repository - enum: - - github - - gitlab - - bitbucket - required: - - type - - repo - type: object - installCommand: - description: The install command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - name: - description: The desired name for the project - example: a-project-name - type: string - maxLength: 100 - pattern: '^[a-z0-9]([a-z0-9]|-[a-z0-9])*$' - skipGitConnectDuringLink: - description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. - type: boolean - deprecated: true - outputDirectory: - description: The output directory of the project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - publicSource: - description: Specifies whether the source code and logs of the deployments for this project should be public or not - type: boolean - nullable: true - rootDirectory: - description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root - maxLength: 256 - type: string - nullable: true - serverlessFunctionRegion: - description: The region to deploy Serverless Functions in this project - maxLength: 4 - type: string - nullable: true - required: - - name - type: object - '/v9/projects/{idOrName}': - get: - description: Get the information for a specific project by passing either the project `id` or `name` in the URL. - operationId: getProject + avatar: + nullable: true + type: string + required: + - accountId + - alias + - defaultResourceConfig + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - inspect + - get + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update the fields of a project using either its `name` or `id`. + operationId: updateProject security: - bearerToken: [] - summary: Find a project by id or name + summary: Update an existing project tags: - projects responses: '200': - description: The project information + description: The project was successfully updated content: application/json: schema: properties: accountId: type: string + creator: + properties: + type: + type: string + enum: + - user + via: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - type + - user + - via + - app + - integration + type: object + alias: + items: + properties: + configuredBy: + nullable: true + type: string + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number + createdAt: + nullable: true + type: number + deployment: + nullable: true + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + domain: + type: string + environment: + type: string + enum: + - preview + - production + gitBranch: + nullable: true + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: + type: string + enum: + - PREVIEW + - PRODUCTION + - STAGING + required: + - deployment + - domain + - environment + - target + type: object + type: array analytics: properties: id: @@ -5304,15 +14550,48 @@ paths: nullable: true type: number required: - - id - - canceledAt - disabledAt - enabledAt + - id + type: object + appliedCve55182Migration: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id type: object autoExposeSystemEnvs: type: boolean + enum: + - false + - true autoAssignCustomDomains: type: boolean + enum: + - false + - true autoAssignCustomDomainsUpdatedBy: type: string buildCommand: @@ -5321,15 +14600,73 @@ paths: commandForIgnoringBuildStep: nullable: true type: string + connectConfigurations: + nullable: true + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: + type: boolean + enum: + - false + - true + buildsEnabled: + type: boolean + enum: + - false + - true + aws: + properties: + subnetIds: + items: + type: string + type: array + securityGroupId: + type: string + required: + - subnetIds + type: object + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + type: array connectConfigurationId: nullable: true type: string connectBuildsEnabled: type: boolean + enum: + - false + - true + passiveConnectConfigurationId: + nullable: true + type: string createdAt: type: number customerSupportCodeVisibility: type: boolean + enum: + - false + - true crons: properties: enabledAt: @@ -5360,6 +14697,20 @@ paths: type: string description: The cron expression. example: 0 0 * * * + source: + type: string + enum: + - api + description: The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json). + description: + type: string + description: A human-readable description of what this cron job does. + hostInferred: + type: boolean + enum: + - false + - true + description: Whether the host was inferred from the production deployment URL rather than explicitly provided. required: - host - path @@ -5367,29 +14718,73 @@ paths: type: object type: array required: - - enabledAt + - definitions + - deploymentId - disabledAt + - enabledAt - updatedAt - - deploymentId - - definitions type: object dataCache: properties: userDisabled: type: boolean + enum: + - false + - true storageSizeBytes: nullable: true type: number unlimited: type: boolean + enum: + - false + - true required: - userDisabled type: object + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + expiration: + properties: + expiresAt: + type: number + description: Unix ms timestamp when the project is scheduled to expire. + lockedAt: + type: number + description: Unix ms timestamp when the project was locked. + lockedBy: + type: string + description: userId of the actor that triggered the lock (system or admin). + required: + - expiresAt + - lockedAt + - lockedBy + type: object devCommand: nullable: true type: string directoryListing: type: boolean + enum: + - false + - true installCommand: nullable: true type: string @@ -5400,34 +14795,39 @@ paths: oneOf: - items: type: string - enum: - - production - - preview - - development - - preview - - development type: array - type: string enum: - production - preview - development - - preview - - development type: type: string enum: - - secret - - system - encrypted - plain + - secret - sensitive - id: + - system + sunsetSecretId: type: string - key: + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true value: type: string + vsmValue: + type: string + id: + type: string + key: + type: string configurationId: nullable: true type: string @@ -5443,6 +14843,12 @@ paths: type: string gitBranch: type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. edgeConfigId: nullable: true type: string @@ -5456,198 +14862,588 @@ paths: type: type: string enum: - - redis-url + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - redis-rest-api-url + - blob-webhook-public-key storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - redis-rest-api-token + - postgres-url storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - redis-rest-api-read-only-token + - postgres-url-non-pooling storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - blob-read-write-token + - postgres-prisma-url storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - postgres-url + - postgres-user storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - postgres-url-non-pooling + - postgres-host storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - postgres-prisma-url + - postgres-password storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - postgres-user + - postgres-database storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - postgres-host + - postgres-url-no-ssl storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - postgres-password + - integration-store-secret storeId: type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string required: - - type + - integrationConfigurationId + - integrationId + - integrationProductId - storeId + - type type: object - properties: type: type: string enum: - - postgres-database - storeId: + - flags-connection-string + projectId: type: string required: + - projectId - type - - storeId type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array required: - - type - key + - type - value type: object type: array + customEnvironments: + items: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + type: array framework: nullable: true type: string enum: - - blitzjs - - nextjs - - gatsby - - remix + - actix-web + - angular + - ash - astro - - hexo - - eleventy - - docusaurus-2 + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django - docusaurus - - preact - - solidstart + - docusaurus-2 - dojo + - eleventy + - elysia - ember - - vue - - scully + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen - ionic-angular - - angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook - svelte - sveltekit - sveltekit-1 - - ionic-react - - create-react-app - - gridsome + - tanstack-start + - tanstack-start-lovable - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - vite - vitepress + - vue - vuepress - - parcel - - sanity - - storybook + - xmcp + - zola + - null + services: + items: + properties: + serviceName: + type: string + description: Service name from the deployment (Service.name). + serviceType: + type: string + enum: + - cron + - job + - web + - worker + description: Service kind (Service.type). Omitted for schemas that do not define one. + framework: + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + description: Framework slug, when the service has one (omitted otherwise). + runtime: + type: string + description: Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds. + required: + - serviceName + type: object + type: array gitForkProtection: type: boolean + enum: + - false + - true gitLFS: type: boolean + enum: + - false + - true id: type: string + ipBuckets: + items: + properties: + bucket: + type: string + default: + type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object + type: array + jobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + typecheck: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + mfe-config-present: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + type: object latestDeployments: items: properties: + id: + type: string alias: items: type: string @@ -5657,6 +15453,9 @@ paths: oneOf: - type: number - type: boolean + enum: + - false + - true aliasError: nullable: true properties: @@ -5675,6 +15474,24 @@ paths: items: type: string type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number builds: items: properties: @@ -5688,8 +15505,24 @@ paths: - use type: object type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running connectBuildsEnabled: type: boolean + enum: + - false + - true connectConfigurationId: type: string createdAt: @@ -5714,13 +15547,16 @@ paths: - uid - username type: object + deletedAt: + type: number deploymentHostname: type: string - name: - type: string forced: type: boolean - id: + enum: + - false + - true + name: type: string meta: additionalProperties: @@ -5729,29 +15565,81 @@ paths: monorepoManager: nullable: true type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object plan: type: string enum: - - pro - enterprise - hobby - - oss + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false private: type: boolean + enum: + - false + - true + readyAt: + type: number readyState: type: string enum: + - BLOCKED - BUILDING + - CANCELED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED readySubstate: type: string enum: - - STAGED - PROMOTED + - ROLLING + - STAGED requestedAt: type: number target: @@ -5768,217 +15656,651 @@ paths: type: string userId: type: string + description: Present for user creators; omitted for app/integration/system creators. withCache: type: boolean - checksConclusion: - type: string enum: - - succeeded - - failed - - skipped - - canceled - checksState: - type: string - enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false + - false + - true required: - createdAt - createdIn - creator - deploymentHostname - - name - id + - name - plan - private - readyState - type - url - - userId type: object type: array link: - oneOf: - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: + properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + host: + type: string + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + name: + type: string + slug: + type: string + owner: + type: string + uuid: + type: string + workspaceUuid: + type: string + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + - host + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - name + - owner + - slug + - uuid + - workspaceUuid + - repo + - repoId + - ownerId + type: object + blobs: + properties: + isDefaultApp: + type: boolean + enum: + - false + - true + description: Marks the team-level, Vercel-managed default blob project (`vercel-blob-default-project`) that orphan blob stores are scoped to when connected without an explicit project. Set only by internal storage flows and immutable after creation — guards rely on it to protect the connected stores from being lost when the project is deleted or transferred. + type: object + microfrontends: + properties: + isDefaultApp: + type: boolean + enum: + - true + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + routeObservabilityToThisProject: + type: boolean + enum: + - false + - true + description: Whether observability data should be routed to this microfrontend project or a root project. + doNotRouteWithMicrofrontendsRouting: + type: boolean + enum: + - false + - true + description: Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend. + required: + - enabled + - groupIds + - isDefaultApp + - updatedAt + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + protectionConfig: + properties: + sandboxUrls: + properties: + inheritDeploymentProtection: + type: boolean + enum: + - false + - true + type: object + type: object + sandbox: + properties: + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + failoverRegions: + items: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + type: array + type: object + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: type: string enum: - - github - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE type: object - - properties: - projectId: - type: string - projectName: - type: string - projectNameWithNamespace: - type: string - projectNamespace: - type: string - projectUrl: - type: string - type: - type: string + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rollbackDescription: + properties: + userId: + type: string + description: The user who rolled back the project. + username: + type: string + description: The username of the user who rolled back the project. + description: + type: string + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean enum: - - gitlab - createdAt: - type: number - deployHooks: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: items: properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: + type: type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 required: - - id - - name - - ref - - url + - type type: object + description: The checks to evaluate. An empty array means nothing is evaluated. type: array - gitCredentialId: - type: string - updatedAt: + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: type: number - sourceless: - type: boolean - productionBranch: + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. required: - - deployHooks + - action + - checks + - dryRun + - enabled type: object - - properties: - name: - type: string - slug: - type: string - owner: - type: string - type: + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + defaultResourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: type: string enum: - - bitbucket - uuid: - type: string - workspaceUuid: - type: string - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE type: object - name: - type: string - nodeVersion: - type: string - enum: - - 18.x - - 16.x - - 14.x - - 12.x - - 10.x - outputDirectory: - nullable: true - type: string - passwordProtection: - nullable: true + enableFunctionsBeta: + type: boolean + enum: + - false + - true type: object - productionDeploymentsFastLane: - type: boolean - publicSource: - nullable: true - type: boolean + required: + - functionDefaultRegions rootDirectory: nullable: true type: string - serverlessFunctionRegion: - nullable: true - type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + skewProtectionBoundaryAt: + type: number + skewProtectionMaxAge: + type: number + skewProtectionAllowedDomains: + items: + type: string + type: array skipGitConnectDuringLink: type: boolean + enum: + - false + - true + staticIps: + properties: + builds: + type: boolean + enum: + - false + - true + enabled: + type: boolean + enum: + - false + - true + regions: + items: + type: string + type: array + required: + - builds + - enabled + - regions + type: object sourceFilesOutsideRootDirectory: type: boolean + enum: + - false + - true + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true ssoProtection: nullable: true properties: @@ -5986,8 +16308,27 @@ paths: type: string enum: - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains - preview - prod_deployment_urls_and_all_previews + - null required: - deploymentType type: object @@ -5995,6 +16336,8 @@ paths: additionalProperties: nullable: true properties: + id: + type: string alias: items: type: string @@ -6004,6 +16347,9 @@ paths: oneOf: - type: number - type: boolean + enum: + - false + - true aliasError: nullable: true properties: @@ -6022,6 +16368,24 @@ paths: items: type: string type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number builds: items: properties: @@ -6035,8 +16399,24 @@ paths: - use type: object type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running connectBuildsEnabled: type: boolean + enum: + - false + - true connectConfigurationId: type: string createdAt: @@ -6061,44 +16441,99 @@ paths: - uid - username type: object + deletedAt: + type: number deploymentHostname: type: string - name: - type: string forced: type: boolean - id: + enum: + - false + - true + name: type: string meta: additionalProperties: type: string type: object - monorepoManager: - nullable: true - type: string + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object plan: type: string enum: - - pro - enterprise - hobby - - oss + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false private: type: boolean + enum: + - false + - true + readyAt: + type: number readyState: type: string enum: + - BLOCKED - BUILDING + - CANCELED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED readySubstate: type: string enum: - - STAGED - PROMOTED + - ROLLING + - STAGED requestedAt: type: number target: @@ -6115,42 +16550,24 @@ paths: type: string userId: type: string + description: Present for user creators; omitted for app/integration/system creators. withCache: type: boolean - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - checksState: - type: string enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false + - false + - true required: - createdAt - createdIn - creator - deploymentHostname - - name - id + - name - plan - private - readyState - type - url - - userId type: object type: object transferCompletedAt: @@ -6165,128 +16582,682 @@ paths: type: number live: type: boolean + enum: + - false + - true enablePreviewFeedback: nullable: true type: boolean + enum: + - false + - true + - null + enableProductionFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null permissions: properties: + oauth2Connection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userMfaConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userPreference: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAuthn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + accessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + agent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyBypassAll: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeySpendAttribution: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyZdrExemption: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayCredits: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayPrivateModels: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayGuardrails: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewaySettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscripts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscriptsSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayVirtualModelConfigs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alerts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alertRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array aliasGlobal: items: $ref: '#/components/schemas/ACLAction' type: array - analyticsSampling: + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyAiGateway: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Application: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallationRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + automation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingRefund: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blobStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeChecks: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeOwners: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciInvocations: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClientProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexContact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachineDefault: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cursorOriginInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + defaultDeploymentProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + drain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigSchema: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + flagsExplorerSubscription: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + imageOptimizationNewPrice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationRole: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationDeploymentAction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResource: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceReplCommand: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceSecrets: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationSSOSession: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationPullRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsIssuer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsProjectGrant: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceBillingData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationEdgeConfigData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceFlexCommit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInstallationMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: items: $ref: '#/components/schemas/ACLAction' type: array - analyticsUsage: + notificationPaymentFailed: items: $ref: '#/components/schemas/ACLAction' type: array - auditLog: + notificationPreferences: items: $ref: '#/components/schemas/ACLAction' type: array - billingAddress: + notificationStatementOfReasons: items: $ref: '#/components/schemas/ACLAction' type: array - billingInformation: + notificationUsageAlert: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoice: + oidcFederationPolicy: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoiceEmailRecipient: + observabilityConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoiceLanguage: + observabilityFunnel: items: $ref: '#/components/schemas/ACLAction' type: array - billingPlan: + observabilityNotebook: items: $ref: '#/components/schemas/ACLAction' type: array - billingPurchaseOrder: + openTelemetryEndpoint: items: $ref: '#/components/schemas/ACLAction' type: array - billingTaxId: + ownEvent: items: $ref: '#/components/schemas/ACLAction' type: array - blob: + organization: items: $ref: '#/components/schemas/ACLAction' type: array - budget: + organizationDomain: items: $ref: '#/components/schemas/ACLAction' type: array - cacheArtifact: + organizationTeam: items: $ref: '#/components/schemas/ACLAction' type: array - cacheArtifactUsageEvent: + passwordProtectionInvoiceItem: items: $ref: '#/components/schemas/ACLAction' type: array - concurrentBuilds: + paymentMethod: items: $ref: '#/components/schemas/ACLAction' type: array - connect: + permissions: items: $ref: '#/components/schemas/ACLAction' type: array - connectConfiguration: + postgres: items: $ref: '#/components/schemas/ACLAction' type: array - domain: + postgresStoreTokenSet: items: $ref: '#/components/schemas/ACLAction' type: array - domainAcceptDelegation: + previewDeploymentSuffix: items: $ref: '#/components/schemas/ACLAction' type: array - domainAuthCodes: + privateCloudAccount: items: $ref: '#/components/schemas/ACLAction' type: array - domainCertificate: + projectTransferIn: items: $ref: '#/components/schemas/ACLAction' type: array - domainCheckConfig: + projectTransferRequest: items: $ref: '#/components/schemas/ACLAction' type: array - domainMove: + proTrialOnboarding: items: $ref: '#/components/schemas/ACLAction' type: array - domainPurchase: + rateLimit: items: $ref: '#/components/schemas/ACLAction' type: array - domainRecord: + redis: items: $ref: '#/components/schemas/ACLAction' type: array - domainTransferIn: + redisStoreTokenSet: items: $ref: '#/components/schemas/ACLAction' type: array - event: + remoteCaching: items: $ref: '#/components/schemas/ACLAction' type: array - ownEvent: + repository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityConfig: items: $ref: '#/components/schemas/ACLAction' type: array @@ -6294,599 +17265,3166 @@ paths: items: $ref: '#/components/schemas/ACLAction' type: array - fileUpload: + sharedEnvVars: items: $ref: '#/components/schemas/ACLAction' type: array - gitRepository: + sharedEnvVarsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - ipBlocking: + space: items: $ref: '#/components/schemas/ACLAction' type: array - integration: + spaceRun: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfiguration: + storeIsLocked: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfigurationTransfer: + storeTokenSetSensitive: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfigurationProjects: + storeTransfer: items: $ref: '#/components/schemas/ACLAction' type: array - integrationVercelConfigurationOverride: + supportCase: items: $ref: '#/components/schemas/ACLAction' type: array - jobGlobal: + supportCaseComment: items: $ref: '#/components/schemas/ACLAction' type: array - logDrain: + team: items: $ref: '#/components/schemas/ACLAction' type: array - Monitoring: + teamAccessRequest: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringQuery: + teamFellowMembership: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringChart: + teamGitExclusivity: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringAlert: + teamInvite: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDeploymentFailed: + teamInviteCode: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainConfiguration: + teamInviteLink: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainExpire: + teamJoin: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainMoved: + teamMemberMfaStatus: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainPurchase: + teamMicrofrontends: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainRenewal: + teamOwnMembership: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainTransfer: + teamOwnMembershipDisconnectSAML: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainUnverified: + teamSudo: items: $ref: '#/components/schemas/ACLAction' type: array - NotificationMonitoringAlert: + teamTokenInvalidation: items: $ref: '#/components/schemas/ACLAction' type: array - notificationPaymentFailed: + token: items: $ref: '#/components/schemas/ACLAction' type: array - notificationUsageAlert: + toolbarComment: items: $ref: '#/components/schemas/ACLAction' type: array - notificationCustomerBudget: + usage: items: $ref: '#/components/schemas/ACLAction' type: array - openTelemetryEndpoint: + usageCycle: items: $ref: '#/components/schemas/ACLAction' type: array - paymentMethod: + vcrRepository: items: $ref: '#/components/schemas/ACLAction' type: array - permissions: + vpcPeeringConnection: items: $ref: '#/components/schemas/ACLAction' type: array - postgres: + webAnalyticsPlan: items: $ref: '#/components/schemas/ACLAction' type: array - previewDeploymentSuffix: + webhook: items: $ref: '#/components/schemas/ACLAction' type: array - proTrialOnboarding: + webhook-event: items: $ref: '#/components/schemas/ACLAction' type: array - seawallConfig: + aliasProject: items: $ref: '#/components/schemas/ACLAction' type: array - sharedEnvVars: + aliasProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - sharedEnvVarsProduction: + bulkRedirects: items: $ref: '#/components/schemas/ACLAction' type: array - space: + buildMachine: items: $ref: '#/components/schemas/ACLAction' type: array - spaceRun: + connectConfigurationLink: items: $ref: '#/components/schemas/ACLAction' type: array - passwordProtectionInvoiceItem: + dataCacheNamespace: items: $ref: '#/components/schemas/ACLAction' type: array - rateLimit: + deployment: items: $ref: '#/components/schemas/ACLAction' type: array - redis: + deploymentBuildLogs: items: $ref: '#/components/schemas/ACLAction' type: array - remoteCaching: + deploymentCheck: items: $ref: '#/components/schemas/ACLAction' type: array - samlConfig: + deploymentCheckPreview: items: $ref: '#/components/schemas/ACLAction' type: array - secret: + deploymentCheckReRunFromProductionBranch: items: $ref: '#/components/schemas/ACLAction' type: array - supportCase: + deploymentProductionGit: items: $ref: '#/components/schemas/ACLAction' type: array - supportCaseComment: + deploymentV0: items: $ref: '#/components/schemas/ACLAction' type: array - dataCacheBillingSettings: + deploymentPreview: items: $ref: '#/components/schemas/ACLAction' type: array - team: + deploymentPrivate: items: $ref: '#/components/schemas/ACLAction' type: array - teamAccessRequest: + deploymentPromote: items: $ref: '#/components/schemas/ACLAction' type: array - teamFellowMembership: + deploymentRollback: items: $ref: '#/components/schemas/ACLAction' type: array - teamInvite: + edgeCacheNamespace: items: $ref: '#/components/schemas/ACLAction' type: array - teamInviteCode: + environments: items: $ref: '#/components/schemas/ACLAction' type: array - teamJoin: + job: items: $ref: '#/components/schemas/ACLAction' type: array - teamOwnMembership: + logs: items: $ref: '#/components/schemas/ACLAction' type: array - teamOwnMembershipDisconnectSAML: + logsPreset: items: $ref: '#/components/schemas/ACLAction' type: array - token: + observabilityData: items: $ref: '#/components/schemas/ACLAction' type: array - usage: + onDemandBuild: items: $ref: '#/components/schemas/ACLAction' type: array - usageCycle: + onDemandConcurrency: items: $ref: '#/components/schemas/ACLAction' type: array - user: + optionsAllowlist: items: $ref: '#/components/schemas/ACLAction' type: array - userConnection: + passwordProtection: items: $ref: '#/components/schemas/ACLAction' type: array - webAnalyticsPlan: + privateLinkEndpoint: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfig: + productionAliasProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfigItem: + productionShareableLink: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfigToken: + project: items: $ref: '#/components/schemas/ACLAction' type: array - webhook: + projectAccessGroup: items: $ref: '#/components/schemas/ACLAction' type: array - webhook-event: + projectAnalyticsSampling: items: $ref: '#/components/schemas/ACLAction' type: array - endpointVerification: + projectAnalyticsUsage: items: $ref: '#/components/schemas/ACLAction' type: array - projectTransferIn: + projectCheck: items: $ref: '#/components/schemas/ACLAction' type: array - aliasProject: + projectCheckRun: items: $ref: '#/components/schemas/ACLAction' type: array - aliasProtectionBypass: + projectDeploymentExpiration: items: $ref: '#/components/schemas/ACLAction' type: array - connectConfigurationLink: + projectDeploymentHook: items: $ref: '#/components/schemas/ACLAction' type: array - dataCacheNamespace: + projectDeploymentProtectionStrict: items: $ref: '#/components/schemas/ACLAction' type: array - deployment: + projectDomain: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheck: + projectDomainCheckConfig: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheckPreview: + projectDomainMove: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheckReRunFromProductionBranch: + projectDomainVerify: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentProductionGit: + projectEvent: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPreview: + projectEnvVars: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPrivate: + projectEnvVarsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPromote: + projectEnvVarsUnownedByIntegration: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentRollback: + projectFlags: items: $ref: '#/components/schemas/ACLAction' type: array - logs: + projectFlagsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - logsPreset: + projectFlagsSdkKey: items: $ref: '#/components/schemas/ACLAction' type: array - passwordProtection: + projectFromV0: items: $ref: '#/components/schemas/ACLAction' type: array - job: + projectId: items: $ref: '#/components/schemas/ACLAction' type: array - project: + projectIntegrationConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - projectAnalyticsSampling: + projectLink: items: $ref: '#/components/schemas/ACLAction' type: array - projectDeploymentHook: + projectMember: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomain: + projectMonitoring: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomainMove: + projectOIDCToken: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomainCheckConfig: + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRollingRelease: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRoutes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTier: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + pageIntegrity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityPlusConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLinkStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + skewProtection: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVars: + analytics: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVarsProduction: + trustedIps: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVarsUnownedByIntegration: + trustedSources: items: $ref: '#/components/schemas/ACLAction' type: array - projectId: + v0Chat: items: $ref: '#/components/schemas/ACLAction' type: array - projectIntegrationConfiguration: + vercelAuth: items: $ref: '#/components/schemas/ACLAction' type: array - projectLink: + vercelRun: items: $ref: '#/components/schemas/ACLAction' type: array - projectMember: + webAnalytics: items: $ref: '#/components/schemas/ACLAction' type: array - projectMonitoring: + workflowRunData: items: $ref: '#/components/schemas/ACLAction' type: array - projectPermissions: + type: object + lastRollbackTarget: + nullable: true + type: string + description: (opaque JSON object) + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + nullable: true + type: string + toDeploymentId: + type: string + fromRollingReleaseId: + type: string + description: If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release. + jobStatus: + type: string + enum: + - failed + - in-progress + - pending + - skipped + - succeeded + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - jobStatus + - requestedAt + - toDeploymentId + - type + type: object + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + enum: + - false + - true + trustedIps: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: items: - $ref: '#/components/schemas/ACLAction' + properties: + value: + type: string + note: + type: string + required: + - value + type: object type: array - projectProductionBranch: + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - addresses + - deploymentType + - protectionMode + type: object + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: + items: + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: + type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object + required: + - claims + - to + type: object + type: array + type: object + type: object + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + gitProviderOptions: + properties: + createDeployments: + type: string + enum: + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + concurrencyBucketName: + type: string + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: + nullable: true + type: number + firewallConfigVersion: + type: number + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - projectTransfer: + managedRules: + nullable: true + properties: + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + bot_filter: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + deploymentPolicy: + nullable: true + properties: + gitSources: + nullable: true items: - $ref: '#/components/schemas/ACLAction' + properties: + sources: + items: + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: + type: string + required: + - org + - provider + type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' type: array - projectTransferOut: + deploymentSources: + nullable: true items: - $ref: '#/components/schemas/ACLAction' + properties: + sources: + items: + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' type: array - projectProtectionBypass: + type: object + description: Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident. + tier: + type: string + enum: + - advanced + - critical + - priority + usageStatus: + properties: + kind: + type: string + enum: + - flat + description: Billing mode. Always 'flat' for flat-rate projects. + exceededAllowanceUntil: + type: number + description: Timestamp until which the project has exceeded its CDN allowance. + bypassThrottleUntil: + type: number + description: Timestamp until which throttling is bypassed (project pays list rates for overage). + throttled: + type: boolean + enum: + - false + - true + description: Per-project throttle, set explicitly for this project (e.g. via the per-project Flat Rate CDN endpoint). + teamThrottled: + type: boolean + enum: + - false + - true + description: Synced from `team.billing.usageStatus.throttled`. When `true`, the team has throttled all of its projects regardless of `throttled`. The effective throttle the CDN enforces is `throttled || teamThrottled`. + required: + - kind + type: object + features: + properties: + webAnalytics: + type: boolean + enum: + - false + - true + type: object + v0: + type: boolean + enum: + - false + - true + v0Created: + type: boolean + enum: + - false + - true + abuse: + properties: + scanner: + type: string + history: items: - $ref: '#/components/schemas/ACLAction' + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object type: array - projectUsage: + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object type: array - projectAnalyticsUsage: + interstitial: + type: boolean + enum: + - false + - true + interstitialHistory: items: - $ref: '#/components/schemas/ACLAction' + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object type: array - analytics: + required: + - history + - updatedAt + type: object + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + hasDeployments: + type: boolean + enum: + - false + - true + dismissedToasts: + items: + properties: + key: + type: string + dismissedAt: + type: number + action: + type: string + enum: + - accept + - cancel + - delete + value: + nullable: true + oneOf: + - type: string + - type: number + - properties: + previousValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + currentValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + required: + - currentValue + - previousValue + type: object + - type: boolean + enum: + - false + - true + required: + - action + - dismissedAt + - key + - value + type: object + type: array + protectedSourcemaps: + type: boolean + enum: + - false + - true + tracing: + properties: + domains: + type: string + ignorePaths: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - trustedIps: + samplingRules: items: - $ref: '#/components/schemas/ACLAction' + properties: + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + destination: + type: string + enum: + - external + - internal + description: Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed. + required: + - rate + type: object type: array - webAnalytics: - items: - $ref: '#/components/schemas/ACLAction' + type: object + avatar: + nullable: true + type: string + required: + - accountId + - alias + - defaultResourceConfig + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + Trusted IPs is only accessible for enterprise customers. This plan gate runs before the ACL check below on purpose: it depends only on the team's billing plan, so it can reject unsupported plans deterministically. `auth.can` resolves team membership (a DynamoDB lookup) and rejecting here first avoids depending on that external read for a request that is invalid regardless of authorization. + '401': + description: The request is not authorized. + '402': + description: |- + The account is missing a payment so payment method must be updated + Pro customers are allowed to deploy Serverless Functions to up to `proMaxRegions` regions, or if the project was created before the limit was introduced. + Deploying to Serverless Functions to multiple regions requires a plan update + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: |- + The provided name for the project is already being used + The project is currently being transferred. + '410': + description: '' + '428': + description: Owner does not have protection add-on + '429': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - rename + bodyArguments: + - name + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + additionalProperties: false + properties: + autoExposeSystemEnvs: + type: boolean + autoAssignCustomDomains: + type: boolean + autoAssignCustomDomainsUpdatedBy: + type: string + buildCommand: + description: The build command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + commandForIgnoringBuildStep: + maxLength: 256 + type: string + nullable: true + customerSupportCodeVisibility: + description: Specifies whether customer support can see git source for a deployment + type: boolean + devCommand: + description: The dev command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + directoryListing: + type: boolean + framework: + description: The framework that is being used for this project. When `null` is used no framework is selected + enum: + - null + - container + - blitzjs + - nextjs + - gatsby + - remix + - react-router + - astro + - hexo + - eleventy + - docusaurus-2 + - docusaurus + - preact + - solidstart-1 + - solidstart + - dojo + - ember + - vue + - scully + - ionic-angular + - angular + - polymer + - svelte + - sveltekit + - sveltekit-1 + - ionic-react + - create-react-app + - gridsome + - umijs + - sapper + - saber + - stencil + - nuxtjs + - redwoodjs + - hugo + - jekyll + - brunch + - middleman + - zola + - hydrogen + - vite + - tanstack-start + - tanstack-start-lovable + - vitepress + - vuepress + - parcel + - fastapi + - flask + - fasthtml + - django + - ash + - factory-eve + - eve + - sanity + - sanity-v2 + - storybook + - nitro + - hono + - express + - h3 + - koa + - nestjs + - elysia + - fastify + - xmcp + - python + - ruby + - rust + - axum + - actix-web + - bun + - node + - go + - services + - mastra + type: string + nullable: true + gitForkProtection: + description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed + type: boolean + gitLFS: + description: Specifies whether Git LFS is enabled for this project. + type: boolean + protectedSourcemaps: + description: Specifies whether sourcemaps are protected and require authentication to access. + type: boolean + installCommand: + description: The install command for this project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + name: + description: The desired name for the project + example: a-project-name + type: string + maxLength: 100 + nodeVersion: + enum: + - 24.x + - 22.x + - 20.x + - 18.x + - 16.x + - 14.x + - 12.x + - 10.x + type: string + outputDirectory: + description: The output directory of the project. When `null` is used this value will be automatically detected + maxLength: 256 + type: string + nullable: true + previewDeploymentsDisabled: + description: Specifies whether preview deployments are disabled for this project. + type: boolean + nullable: true + previewDeploymentSuffix: + description: Custom domain suffix for preview deployments. Takes precedence over team-level suffix. Must be a domain owned by the team. + type: string + maxLength: 253 + nullable: true + resourceConfig: + properties: + buildMachineType: + enum: + - null + - basic + - enhanced + - turbo + - standard + - elastic + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildQueue: + type: object + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + fluid: + type: boolean + functionDefaultRegions: + description: The regions to deploy Vercel Functions to for this project + type: array + minItems: 1 + uniqueItems: true + items: + type: string + maxLength: 4 + functionDefaultTimeout: + type: number + maximum: 900 + minimum: 1 + functionDefaultMemoryType: + enum: + - standard_legacy + - standard + - performance + - performance_xl + functionZeroConfigFailover: + description: Specifies whether Zero Config Failover is enabled for this project. + oneOf: + - type: boolean + elasticConcurrencyEnabled: + type: boolean + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + enum: + - oom-failure + - enospc-failure + - build-timeout-failure + - basic-floor + - high-peak-memory + - sustained-high-cpu + - high-peak-disk + - long-build-duration + - short-build-duration + - enterprise-floor + isNSNBDisabled: + type: boolean + enableFunctionsBeta: + type: boolean + type: object + description: Specifies resource override configuration for the project + additionalProperties: false + publicSource: + deprecated: true + description: Deprecated. Accepted for backwards compatibility but ignored. + type: boolean + nullable: true + rootDirectory: + description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root + maxLength: 256 + type: string + nullable: true + serverlessFunctionRegion: + description: The region to deploy Serverless Functions in this project + maxLength: 4 + type: string + nullable: true + serverlessFunctionZeroConfigFailover: + description: Specifies whether Zero Config Failover is enabled for this project. + type: boolean + skewProtectionBoundaryAt: + description: Deployments created before this absolute datetime have Skew Protection disabled. Value is in milliseconds since epoch to match \"createdAt\" fields. + minimum: 0 + type: integer + skewProtectionMaxAge: + description: Deployments created before this rolling window have Skew Protection disabled. Value is in seconds to match \"revalidate\" fields. + minimum: 0 + type: integer + skewProtectionAllowedDomains: + description: Cross-site domains allowed to fetch skew-protected assets (hostnames, optionally with leading wildcard like *.example.com). + type: array + items: + type: string + maxLength: 254 + maxItems: 12 + skipGitConnectDuringLink: + description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. + type: boolean + deprecated: true + sourceFilesOutsideRootDirectory: + description: Indicates if there are source files outside of the root directory + type: boolean + enablePreviewFeedback: + description: Opt-in to preview toolbar on the project level + type: boolean + nullable: true + enableProductionFeedback: + description: Opt-in to production toolbar on the project level + type: boolean + nullable: true + enableAffectedProjectsDeployments: + description: Opt-in to skip deployments when there are no changes to the root directory and its dependencies + type: boolean + enableExternalRewriteCaching: + description: Specifies whether external rewrite caching is enabled for this project. + type: boolean + staticIps: + additionalProperties: false + description: Manage Static IPs for this project + properties: + enabled: + description: Opt-in to Static IPs for this project + type: boolean + required: + - enabled + type: object + tracing: + description: Tracing configuration for this project + type: object + additionalProperties: false + properties: + domains: + description: Comma-separated list of drain endpoint domains + type: string + ignorePaths: + description: Paths to ignore for tracing + type: array + items: + type: string + samplingRules: + description: Sampling rules for trace collection + type: array + maxItems: 10 + items: + type: object + additionalProperties: false + required: + - rate + properties: + rate: + type: number + minimum: 0 + maximum: 1 + description: Sampling rate from 0 to 1 + env: + type: string + enum: + - production + - preview + description: Environment to apply sampling to + requestPath: + type: string + description: Request path prefix to apply the sampling rule to + destination: + type: string + enum: + - internal + - external + description: Tracing destination this rule applies to. Derived server-side when project tracing is computed; accepted here so a computed config can round-trip through this endpoint. + nullable: true + oidcTokenConfig: + description: OpenID Connect JSON Web Token generation configuration. + type: object + additionalProperties: false + properties: + enabled: + description: Whether or not to generate OpenID Connect JSON Web Tokens. + deprecated: true + type: boolean + default: true + issuerMode: + description: 'team: `https://oidc.vercel.com/[team_slug]` global: `https://oidc.vercel.com`' + type: string + enum: + - team + - global + default: team + passwordProtection: + additionalProperties: false + description: Allows to protect project deployments with a password + properties: + deploymentType: + description: Specify if the password will apply to every Deployment Target or just Preview + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + type: string + password: + description: The password that will be used to protect Project Deployments + maxLength: 72 + type: string + nullable: true + required: + - deploymentType + type: object + nullable: true + passport: + description: Passport configuration for the project. + type: object + additionalProperties: false + properties: + connectorId: + type: string + deploymentType: + type: string + default: all + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + required: + - connectorId + nullable: true + sandbox: + type: object + description: Specifies the default region and failover regions for sandboxes created in the project + properties: + region: + description: The Vercel region sandboxes in this project are created in by default. + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + example: iad1 + failoverRegions: + description: The regions sandboxes in this project fall back to when they cannot be created in `region`. + type: array + uniqueItems: true + maxItems: 19 + items: + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + example: + - sfo1 + - cle1 + additionalProperties: false + ssoProtection: + additionalProperties: false + description: Ensures visitors to your Preview Deployments are logged into Vercel and have a minimum of Viewer access on your team + properties: + deploymentType: + default: preview + description: Specify if the Vercel Authentication (SSO Protection) will apply to every Deployment Target or just Preview + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + type: string + required: + - deploymentType + type: object + nullable: true + trustedIps: + additionalProperties: false + description: Restricts access to deployments based on the incoming request IP address + properties: + deploymentType: + description: Specify if the Trusted IPs will apply to every Deployment Target or just Preview + enum: + - all + - preview + - production + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + type: string + addresses: + type: array + items: + type: object + properties: + value: + type: string + description: The IP addresses that are allowlisted. Supports IPv4 addresses and CIDR notations. IPv6 is not supported + note: + type: string + description: An optional note explaining what the IP address or subnet is used for + maxLength: 20 + required: + - value + additionalProperties: false + minItems: 1 + protectionMode: + description: 'exclusive: ip match is enough to bypass deployment protection (regardless of other settings). additional: ip must match + any other protection should be also provided (password, vercel auth, shareable link, automation bypass header, automation bypass query param)' + enum: + - exclusive + - additional + type: string + required: + - deploymentType + - addresses + - protectionMode + type: object + nullable: true + trustedSources: + type: object + additionalProperties: false + description: Deployment Protection Trusted Sources + properties: + enableVercelCiSameRepository: + type: boolean + description: Allow same-team Vercel CI access to preview deployments built from the same repository as the CI run. The deployment source repository, not the current project repository link, is authoritative. Defaults to enabled when not stored. Omitting this field preserves its stored value, including when trustedSources is cleared. Set true explicitly to re-enable. + projects: + type: object + maxProperties: 100 + additionalProperties: + type: object + additionalProperties: false + properties: + label: + type: string + maxLength: 100 + description: The label or description of the trusted source + customAllow: + type: array + minItems: 1 + maxItems: 20 + items: + type: object + additionalProperties: false + required: + - from + - to + properties: + to: + type: object + additionalProperties: false + description: A set of environments, expressed as explicit slugs, a named preset, or both. At least one of `slugs` or `preset` must be set. + anyOf: + - required: + - slugs + - required: + - preset + properties: + slugs: + type: array + minItems: 1 + maxItems: 10 + uniqueItems: true + items: + type: string + maxLength: 64 + description: A system environment (\"production\", \"preview\", or \"development\") or a custom environment slug + preset: + type: string + enum: + - all-custom + from: + type: object + additionalProperties: false + description: A set of environments, expressed as explicit slugs, a named preset, or both. At least one of `slugs` or `preset` must be set. + anyOf: + - required: + - slugs + - required: + - preset + properties: + slugs: + type: array + minItems: 1 + maxItems: 10 + uniqueItems: true + items: + type: string + maxLength: 64 + description: A system environment (\"production\", \"preview\", or \"development\") or a custom environment slug + preset: + type: string + enum: + - all-custom + description: Optional overrides for the default same-env-by-slug matching. + oidcProviders: + type: object + maxProperties: 50 + additionalProperties: type: array - sharedEnvVarConnection: + minItems: 1 + maxItems: 10 items: - $ref: '#/components/schemas/ACLAction' - type: array - type: object - lastRollbackTarget: - nullable: true - type: object - lastAliasRequest: - nullable: true + type: object + additionalProperties: false + required: + - claims + - to + properties: + label: + type: string + maxLength: 100 + description: The label or description of the trusted source + to: + type: object + additionalProperties: false + description: A set of environments, expressed as explicit slugs, a named preset, or both. At least one of `slugs` or `preset` must be set. + anyOf: + - required: + - slugs + - required: + - preset + properties: + slugs: + type: array + minItems: 1 + maxItems: 10 + uniqueItems: true + items: + type: string + maxLength: 64 + description: A system environment (\"production\", \"preview\", or \"development\") or a custom environment slug + preset: + type: string + enum: + - all-custom + claims: + type: object + minProperties: 1 + maxProperties: 20 + additionalProperties: + type: array + minItems: 1 + maxItems: 20 + items: + type: string + maxLength: 256 + nullable: true + deploymentPolicy: + type: object + description: Composable deployment-time policy. Each rule type holds a list of rules, one per environment scope. + additionalProperties: false + properties: + gitSources: + anyOf: + - type: array + items: + type: object + additionalProperties: false + required: + - enabled + - environments + - sources + properties: + enabled: + type: boolean + environments: + type: array + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - target + properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - production + - preview + - type: object + additionalProperties: false + required: + - type + - environmentId + properties: + type: + type: string + enum: + - custom + environmentId: + type: string + sources: + type: array + items: + anyOf: + - type: object + additionalProperties: false + required: + - provider + - org + properties: + provider: + type: string + enum: + - github + - bitbucket + org: + type: string + repo: + type: string + - type: object + additionalProperties: false + required: + - provider + - namespace + properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + - type: string + deploymentSources: + anyOf: + - type: array + items: + type: object + additionalProperties: false + required: + - enabled + - environments + - sources + properties: + enabled: + type: boolean + environments: + type: array + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - target + properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - production + - preview + - type: object + additionalProperties: false + required: + - type + - environmentId + properties: + type: + type: string + enum: + - custom + environmentId: + type: string + sources: + type: array + items: + type: string + enum: + - git + - cli + - rest-api + - deploy-hook + - integration + - v0 + - type: string + optionsAllowlist: + additionalProperties: false + description: Specify a list of paths that should not be protected by Deployment Protection to enable Cors preflight requests + properties: + paths: + type: array + items: + type: object + properties: + value: + type: string + description: The regex path that should not be protected by Deployment Protection + pattern: ^/.* + required: + - value + additionalProperties: false + minItems: 1 + maxItems: 5 + required: + - paths + type: object + nullable: true + connectConfigurations: + type: array + description: The list of connections from project environment to Secure Compute network + items: + additionalProperties: false properties: - fromDeploymentId: + envId: type: string - toDeploymentId: + description: The ID of the environment + connectConfigurationId: type: string - jobStatus: + description: The ID of the Secure Compute network + passive: + type: boolean + description: Whether the configuration should be passive, meaning builds will not run there and only passive Serverless Functions will be deployed + buildsEnabled: + type: boolean + description: Flag saying if project builds should use Secure Compute + required: + - envId + - connectConfigurationId + - passive + - buildsEnabled + oneOf: + - type: string + description: (opaque JSON object) + type: object + minItems: 1 + nullable: true + dismissedToasts: + description: An array of objects representing a Dismissed Toast in regards to a Project. Objects are either merged with existing toasts (on key match), or added to the `dimissedToasts` array.` + type: array + minItems: 0 + maxItems: 50 + items: + type: object + additionalProperties: false + required: + - key + - dismissedAt + - action + - value + properties: + key: type: string - enum: - - succeeded - - failed - - skipped - - pending - - in-progress - requestedAt: + description: unique identifier for the dismissed toast + dismissedAt: type: number + description: unix timestamp representing the time the toast was dimissed + action: + enum: + - cancel + - accept + - delete + description: Whether the toast was dismissed, the action was accepted, or the dismissal with this key should be removed + value: + oneOf: + - type: string + - type: string + - type: boolean + - type: number + - type: object + additionalProperties: false + required: + - previousValue + - currentValue + properties: + previousValue: + oneOf: + - type: number + - type: boolean + - type: string + currentValue: + oneOf: + - type: number + - type: boolean + - type: string + type: object + required: true + x-speakeasy-usage-example: + title: Update an existing project + description: Update the fields of a project using either its name or id. + position: 2 + delete: + description: Delete a specific project by passing either the project `id` or `name` in the URL. + operationId: deleteProject + security: + - bearerToken: [] + summary: Delete a Project + tags: + - projects + responses: + '204': + description: The project was successfuly removed + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{id_or_name}/avatar: + post: + description: Upload an image as the avatar of the project identified by `idOrName`. The request body is the raw bytes of a JPG, PNG, or SVG image; the `Content-Type` header must declare which. SVG payloads are sanitized and optimized server-side before storage. The final SHA-1 of the stored bytes becomes the project's `avatar` value. The actual upload pipeline (validation, sanitization, S3 write, conditional `updateProject`, and event emission) lives in the shared `@api/project-avatar-upload` helper so it can be reused by background workers. + operationId: uploadProjectAvatar + security: + - bearerToken: [] + summary: Upload a project avatar + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + accountId: + type: string + creator: + properties: type: type: string enum: - - promote - - rollback + - user + via: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + required: + - app + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + - properties: + type: + type: string + enum: + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - integration + - type + type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object required: - - fromDeploymentId - - toDeploymentId - - jobStatus - - requestedAt - type + - user + - via + - app + - integration type: object - hasFloatingAliases: - type: boolean - protectionBypass: - additionalProperties: + alias: + items: properties: + configuredBy: + nullable: true + type: string + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number createdAt: + nullable: true type: number - createdBy: + deployment: + nullable: true + properties: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + domain: + type: string + environment: + type: string + enum: + - preview + - production + gitBranch: + nullable: true + type: string + redirect: + nullable: true type: string - scope: + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: type: string enum: - - automation-bypass + - PREVIEW + - PRODUCTION + - STAGING required: - - createdAt - - createdBy - - scope + - deployment + - domain + - environment + - target type: object - type: object - hasActiveBranches: - type: boolean - trustedIps: - nullable: true - oneOf: - - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - addresses: - items: - properties: - value: - type: string - note: - type: string - required: - - value - type: object - type: array - protectionMode: - type: string - enum: - - additional - - exclusive - required: - - deploymentType - - addresses - - protectionMode - type: object - - properties: - deploymentType: - type: string - enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - required: - - deploymentType - type: object - gitComments: - properties: - onPullRequest: - type: boolean - description: Whether the Vercel bot should comment on PRs - onCommit: - type: boolean - description: Whether the Vercel bot should comment on commits - required: - - onPullRequest - - onCommit - type: object - paused: - type: boolean - required: - - accountId - - directoryListing - - id - - name - - nodeVersion - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: idOrName - description: The unique project identifier or the project name - in: path - required: true - schema: - description: The unique project identifier or the project name - oneOf: - - type: string - - type: boolean - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - patch: - description: Update the fields of a project using either its `name` or `id`. - operationId: updateProject - security: - - bearerToken: [] - summary: Update an existing project - tags: - - projects - responses: - '200': - description: The project was successfully updated - content: - application/json: - schema: - properties: - accountId: - type: string + type: array analytics: properties: id: @@ -6907,15 +20445,48 @@ paths: nullable: true type: number required: - - id - - canceledAt - disabledAt - enabledAt + - id + type: object + appliedCve55182Migration: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id type: object autoExposeSystemEnvs: type: boolean + enum: + - false + - true autoAssignCustomDomains: type: boolean + enum: + - false + - true autoAssignCustomDomainsUpdatedBy: type: string buildCommand: @@ -6924,15 +20495,73 @@ paths: commandForIgnoringBuildStep: nullable: true type: string + connectConfigurations: + nullable: true + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: + type: boolean + enum: + - false + - true + buildsEnabled: + type: boolean + enum: + - false + - true + aws: + properties: + subnetIds: + items: + type: string + type: array + securityGroupId: + type: string + required: + - subnetIds + type: object + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + type: array connectConfigurationId: nullable: true type: string connectBuildsEnabled: type: boolean + enum: + - false + - true + passiveConnectConfigurationId: + nullable: true + type: string createdAt: type: number customerSupportCodeVisibility: type: boolean + enum: + - false + - true crons: properties: enabledAt: @@ -6963,6 +20592,20 @@ paths: type: string description: The cron expression. example: 0 0 * * * + source: + type: string + enum: + - api + description: The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json). + description: + type: string + description: A human-readable description of what this cron job does. + hostInferred: + type: boolean + enum: + - false + - true + description: Whether the host was inferred from the production deployment URL rather than explicitly provided. required: - host - path @@ -6970,29 +20613,73 @@ paths: type: object type: array required: - - enabledAt + - definitions + - deploymentId - disabledAt + - enabledAt - updatedAt - - deploymentId - - definitions type: object dataCache: properties: userDisabled: type: boolean + enum: + - false + - true storageSizeBytes: nullable: true type: number unlimited: type: boolean + enum: + - false + - true required: - userDisabled type: object + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + expiration: + properties: + expiresAt: + type: number + description: Unix ms timestamp when the project is scheduled to expire. + lockedAt: + type: number + description: Unix ms timestamp when the project was locked. + lockedBy: + type: string + description: userId of the actor that triggered the lock (system or admin). + required: + - expiresAt + - lockedAt + - lockedBy + type: object devCommand: nullable: true type: string directoryListing: type: boolean + enum: + - false + - true installCommand: nullable: true type: string @@ -7004,33 +20691,46 @@ paths: - items: type: string enum: - - production - - preview - development - - preview - development + - preview + - preview + - production type: array - type: string enum: - - production - - preview - development - - preview - development + - preview + - preview + - production type: type: string enum: - - secret - - system - encrypted - plain + - secret - sensitive - id: + - system + sunsetSecretId: type: string - key: + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true value: type: string + vsmValue: + type: string + id: + type: string + key: + type: string configurationId: nullable: true type: string @@ -7046,6 +20746,12 @@ paths: type: string gitBranch: type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. edgeConfigId: nullable: true type: string @@ -7059,56 +20765,78 @@ paths: type: type: string enum: - - redis-url + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - redis-rest-api-url + - redis-rest-api-read-only-token storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - redis-rest-api-token + - blob-read-write-token storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - redis-rest-api-read-only-token + - blob-store-id storeId: type: string required: - - type - storeId + - type type: object - properties: type: type: string enum: - - blob-read-write-token + - blob-webhook-public-key storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7118,8 +20846,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7129,8 +20857,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7140,8 +20868,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7151,8 +20879,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7162,8 +20890,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7173,8 +20901,8 @@ paths: storeId: type: string required: - - type - storeId + - type type: object - properties: type: @@ -7184,73 +20912,441 @@ paths: storeId: type: string required: + - storeId - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: - storeId + - type type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array required: - - type - key + - type - value type: object type: array + customEnvironments: + items: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: + type: string + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + type: array framework: nullable: true type: string enum: - - blitzjs - - nextjs - - gatsby - - remix + - actix-web + - angular + - ash - astro - - hexo - - eleventy - - docusaurus-2 + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django - docusaurus - - preact - - solidstart + - docusaurus-2 - dojo + - eleventy + - elysia - ember - - vue - - scully + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen - ionic-angular - - angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook - svelte - sveltekit - sveltekit-1 - - ionic-react - - create-react-app - - gridsome + - tanstack-start + - tanstack-start-lovable - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - vite - vitepress + - vue - vuepress - - parcel - - sanity - - storybook + - xmcp + - zola + - null + services: + items: + properties: + serviceName: + type: string + description: Service name from the deployment (Service.name). + serviceType: + type: string + enum: + - cron + - job + - web + - worker + description: Service kind (Service.type). Omitted for schemas that do not define one. + framework: + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + description: Framework slug, when the service has one (omitted otherwise). + runtime: + type: string + description: Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds. + required: + - serviceName + type: object + type: array gitForkProtection: type: boolean + enum: + - false + - true gitLFS: type: boolean + enum: + - false + - true id: type: string + ipBuckets: + items: + properties: + bucket: + type: string + default: + type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object + type: array + jobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + typecheck: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + mfe-config-present: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + type: object latestDeployments: items: properties: + id: + type: string alias: items: type: string @@ -7260,6 +21356,9 @@ paths: oneOf: - type: number - type: boolean + enum: + - false + - true aliasError: nullable: true properties: @@ -7278,6 +21377,24 @@ paths: items: type: string type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number builds: items: properties: @@ -7291,8 +21408,24 @@ paths: - use type: object type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running connectBuildsEnabled: type: boolean + enum: + - false + - true connectConfigurationId: type: string createdAt: @@ -7317,13 +21450,16 @@ paths: - uid - username type: object + deletedAt: + type: number deploymentHostname: type: string - name: - type: string forced: type: boolean - id: + enum: + - false + - true + name: type: string meta: additionalProperties: @@ -7332,29 +21468,81 @@ paths: monorepoManager: nullable: true type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object plan: type: string enum: - - pro - enterprise - hobby - - oss + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false private: type: boolean + enum: + - false + - true + readyAt: + type: number readyState: type: string enum: + - BLOCKED - BUILDING + - CANCELED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED readySubstate: type: string enum: - - STAGED - PROMOTED + - ROLLING + - STAGED requestedAt: type: number target: @@ -7371,217 +21559,651 @@ paths: type: string userId: type: string + description: Present for user creators; omitted for app/integration/system creators. withCache: type: boolean - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - checksState: - type: string enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false + - false + - true required: - createdAt - createdIn - creator - deploymentHostname - - name - id + - name - plan - private - readyState - type - url - - userId type: object type: array link: - oneOf: - - properties: - org: - type: string - repo: - type: string - repoId: - type: number - type: - type: string - enum: - - github - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: + properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + url: + type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + host: + type: string + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + name: + type: string + slug: + type: string + owner: + type: string + uuid: + type: string + workspaceUuid: + type: string + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + - host + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - name + - owner + - slug + - uuid + - workspaceUuid + - repo + - repoId + - ownerId + type: object + blobs: + properties: + isDefaultApp: + type: boolean + enum: + - false + - true + description: Marks the team-level, Vercel-managed default blob project (`vercel-blob-default-project`) that orphan blob stores are scoped to when connected without an explicit project. Set only by internal storage flows and immutable after creation — guards rely on it to protect the connected stores from being lost when the project is deleted or transferred. + type: object + microfrontends: + properties: + isDefaultApp: + type: boolean + enum: + - true + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + routeObservabilityToThisProject: + type: boolean + enum: + - false + - true + description: Whether observability data should be routed to this microfrontend project or a root project. + doNotRouteWithMicrofrontendsRouting: + type: boolean + enum: + - false + - true + description: Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend. + required: + - enabled + - groupIds + - isDefaultApp + - updatedAt + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + protectionConfig: + properties: + sandboxUrls: + properties: + inheritDeploymentProtection: type: boolean - productionBranch: - type: string - required: - - deployHooks + enum: + - false + - true type: object - - properties: - projectId: - type: string - projectName: - type: string - projectNameWithNamespace: - type: string - projectNamespace: - type: string - projectUrl: - type: string - type: + type: object + sandbox: + properties: + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + failoverRegions: + items: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + type: array + type: object + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: type: string enum: - - gitlab - createdAt: - type: number - deployHooks: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rollbackDescription: + properties: + userId: + type: string + description: The user who rolled back the project. + username: + type: string + description: The username of the user who rolled back the project. + description: + type: string + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: items: properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: + type: type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 required: - - id - - name - - ref - - url + - type type: object + description: The checks to evaluate. An empty array means nothing is evaluated. type: array - gitCredentialId: - type: string - updatedAt: + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: type: number - sourceless: - type: boolean - productionBranch: + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. required: - - deployHooks + - action + - checks + - dryRun + - enabled type: object - - properties: - name: - type: string - slug: - type: string - owner: - type: string - type: + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + defaultResourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: type: string enum: - - bitbucket - uuid: - type: string - workspaceUuid: - type: string - createdAt: - type: number - deployHooks: - items: - properties: - createdAt: - type: number - id: - type: string - name: - type: string - ref: - type: string - url: - type: string - required: - - id - - name - - ref - - url - type: object - type: array - gitCredentialId: - type: string - updatedAt: - type: number - sourceless: - type: boolean - productionBranch: - type: string - required: - - deployHooks + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE type: object - name: - type: string - nodeVersion: - type: string - enum: - - 18.x - - 16.x - - 14.x - - 12.x - - 10.x - outputDirectory: - nullable: true - type: string - passwordProtection: - nullable: true + enableFunctionsBeta: + type: boolean + enum: + - false + - true type: object - productionDeploymentsFastLane: - type: boolean - publicSource: - nullable: true - type: boolean + required: + - functionDefaultRegions rootDirectory: nullable: true type: string - serverlessFunctionRegion: - nullable: true - type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + skewProtectionBoundaryAt: + type: number + skewProtectionMaxAge: + type: number + skewProtectionAllowedDomains: + items: + type: string + type: array skipGitConnectDuringLink: type: boolean + enum: + - false + - true + staticIps: + properties: + builds: + type: boolean + enum: + - false + - true + enabled: + type: boolean + enum: + - false + - true + regions: + items: + type: string + type: array + required: + - builds + - enabled + - regions + type: object sourceFilesOutsideRootDirectory: type: boolean + enum: + - false + - true + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true ssoProtection: nullable: true properties: @@ -7589,8 +22211,27 @@ paths: type: string enum: - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: + nullable: true + type: string + enum: + - all + - all_except_custom_domains - preview - prod_deployment_urls_and_all_previews + - null required: - deploymentType type: object @@ -7598,6 +22239,8 @@ paths: additionalProperties: nullable: true properties: + id: + type: string alias: items: type: string @@ -7607,6 +22250,9 @@ paths: oneOf: - type: number - type: boolean + enum: + - false + - true aliasError: nullable: true properties: @@ -7625,6 +22271,24 @@ paths: items: type: string type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number builds: items: properties: @@ -7638,8 +22302,24 @@ paths: - use type: object type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running connectBuildsEnabled: type: boolean + enum: + - false + - true connectConfigurationId: type: string createdAt: @@ -7664,13 +22344,16 @@ paths: - uid - username type: object - deploymentHostname: - type: string - name: + deletedAt: + type: number + deploymentHostname: type: string forced: type: boolean - id: + enum: + - false + - true + name: type: string meta: additionalProperties: @@ -7679,29 +22362,81 @@ paths: monorepoManager: nullable: true type: string + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object plan: type: string enum: - - pro - enterprise - hobby - - oss + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false private: type: boolean + enum: + - false + - true + readyAt: + type: number readyState: type: string enum: + - BLOCKED - BUILDING + - CANCELED - ERROR - INITIALIZING - QUEUED - READY - - CANCELED readySubstate: type: string enum: - - STAGED - PROMOTED + - ROLLING + - STAGED requestedAt: type: number target: @@ -7718,42 +22453,24 @@ paths: type: string userId: type: string + description: Present for user creators; omitted for app/integration/system creators. withCache: type: boolean - checksConclusion: - type: string - enum: - - succeeded - - failed - - skipped - - canceled - checksState: - type: string enum: - - registered - - running - - completed - readyAt: - type: number - buildingAt: - type: number - previewCommentsEnabled: - type: boolean - description: Whether or not preview comments are enabled for the deployment - example: false + - false + - true required: - createdAt - createdIn - creator - deploymentHostname - - name - id + - name - plan - private - readyState - type - url - - userId type: object type: object transferCompletedAt: @@ -7768,128 +22485,682 @@ paths: type: number live: type: boolean + enum: + - false + - true enablePreviewFeedback: nullable: true type: boolean + enum: + - false + - true + - null + enableProductionFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null permissions: properties: + oauth2Connection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userMfaConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userPreference: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAuthn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + accessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + agent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyBypassAll: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeySpendAttribution: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyZdrExemption: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayCredits: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayPrivateModels: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayGuardrails: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewaySettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscripts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscriptsSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayVirtualModelConfigs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alerts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alertRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array aliasGlobal: items: $ref: '#/components/schemas/ACLAction' type: array - analyticsSampling: + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyAiGateway: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Application: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallationRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + automation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingRefund: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blobStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeChecks: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeOwners: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciInvocations: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClientProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexContact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachineDefault: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cursorOriginInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + defaultDeploymentProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + drain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigSchema: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + flagsExplorerSubscription: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + imageOptimizationNewPrice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationRole: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationDeploymentAction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResource: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceReplCommand: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceSecrets: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationSSOSession: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationPullRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsIssuer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsProjectGrant: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceBillingData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationEdgeConfigData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceFlexCommit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInstallationMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: items: $ref: '#/components/schemas/ACLAction' type: array - analyticsUsage: + NotificationMonitoringAlert: items: $ref: '#/components/schemas/ACLAction' type: array - auditLog: + notificationPaymentFailed: items: $ref: '#/components/schemas/ACLAction' type: array - billingAddress: + notificationPreferences: items: $ref: '#/components/schemas/ACLAction' type: array - billingInformation: + notificationStatementOfReasons: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoice: + notificationUsageAlert: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoiceEmailRecipient: + oidcFederationPolicy: items: $ref: '#/components/schemas/ACLAction' type: array - billingInvoiceLanguage: + observabilityConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - billingPlan: + observabilityFunnel: items: $ref: '#/components/schemas/ACLAction' type: array - billingPurchaseOrder: + observabilityNotebook: items: $ref: '#/components/schemas/ACLAction' type: array - billingTaxId: + openTelemetryEndpoint: items: $ref: '#/components/schemas/ACLAction' type: array - blob: + ownEvent: items: $ref: '#/components/schemas/ACLAction' type: array - budget: + organization: items: $ref: '#/components/schemas/ACLAction' type: array - cacheArtifact: + organizationDomain: items: $ref: '#/components/schemas/ACLAction' type: array - cacheArtifactUsageEvent: + organizationTeam: items: $ref: '#/components/schemas/ACLAction' type: array - concurrentBuilds: + passwordProtectionInvoiceItem: items: $ref: '#/components/schemas/ACLAction' type: array - connect: + paymentMethod: items: $ref: '#/components/schemas/ACLAction' type: array - connectConfiguration: + permissions: items: $ref: '#/components/schemas/ACLAction' type: array - domain: + postgres: items: $ref: '#/components/schemas/ACLAction' type: array - domainAcceptDelegation: + postgresStoreTokenSet: items: $ref: '#/components/schemas/ACLAction' type: array - domainAuthCodes: + previewDeploymentSuffix: items: $ref: '#/components/schemas/ACLAction' type: array - domainCertificate: + privateCloudAccount: items: $ref: '#/components/schemas/ACLAction' type: array - domainCheckConfig: + projectTransferIn: items: $ref: '#/components/schemas/ACLAction' type: array - domainMove: + projectTransferRequest: items: $ref: '#/components/schemas/ACLAction' type: array - domainPurchase: + proTrialOnboarding: items: $ref: '#/components/schemas/ACLAction' type: array - domainRecord: + rateLimit: items: $ref: '#/components/schemas/ACLAction' type: array - domainTransferIn: + redis: items: $ref: '#/components/schemas/ACLAction' type: array - event: + redisStoreTokenSet: items: $ref: '#/components/schemas/ACLAction' type: array - ownEvent: + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + repository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityConfig: items: $ref: '#/components/schemas/ACLAction' type: array @@ -7897,1020 +23168,5632 @@ paths: items: $ref: '#/components/schemas/ACLAction' type: array - fileUpload: + sharedEnvVars: items: $ref: '#/components/schemas/ACLAction' type: array - gitRepository: + sharedEnvVarsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - ipBlocking: + space: items: $ref: '#/components/schemas/ACLAction' type: array - integration: + spaceRun: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfiguration: + storeIsLocked: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfigurationTransfer: + storeTokenSetSensitive: items: $ref: '#/components/schemas/ACLAction' type: array - integrationConfigurationProjects: + storeTransfer: items: $ref: '#/components/schemas/ACLAction' type: array - integrationVercelConfigurationOverride: + supportCase: items: $ref: '#/components/schemas/ACLAction' type: array - jobGlobal: + supportCaseComment: items: $ref: '#/components/schemas/ACLAction' type: array - logDrain: + team: items: $ref: '#/components/schemas/ACLAction' type: array - Monitoring: + teamAccessRequest: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringQuery: + teamFellowMembership: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringChart: + teamGitExclusivity: items: $ref: '#/components/schemas/ACLAction' type: array - monitoringAlert: + teamInvite: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDeploymentFailed: + teamInviteCode: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainConfiguration: + teamInviteLink: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainExpire: + teamJoin: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainMoved: + teamMemberMfaStatus: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainPurchase: + teamMicrofrontends: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainRenewal: + teamOwnMembership: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainTransfer: + teamOwnMembershipDisconnectSAML: items: $ref: '#/components/schemas/ACLAction' type: array - notificationDomainUnverified: + teamSudo: items: $ref: '#/components/schemas/ACLAction' type: array - NotificationMonitoringAlert: + teamTokenInvalidation: items: $ref: '#/components/schemas/ACLAction' type: array - notificationPaymentFailed: + token: items: $ref: '#/components/schemas/ACLAction' type: array - notificationUsageAlert: + toolbarComment: items: $ref: '#/components/schemas/ACLAction' type: array - notificationCustomerBudget: + usage: items: $ref: '#/components/schemas/ACLAction' type: array - openTelemetryEndpoint: + usageCycle: items: $ref: '#/components/schemas/ACLAction' type: array - paymentMethod: + vcrRepository: items: $ref: '#/components/schemas/ACLAction' type: array - permissions: + vpcPeeringConnection: items: $ref: '#/components/schemas/ACLAction' type: array - postgres: + webAnalyticsPlan: items: $ref: '#/components/schemas/ACLAction' type: array - previewDeploymentSuffix: + webhook: items: $ref: '#/components/schemas/ACLAction' type: array - proTrialOnboarding: + webhook-event: items: $ref: '#/components/schemas/ACLAction' type: array - seawallConfig: + aliasProject: items: $ref: '#/components/schemas/ACLAction' type: array - sharedEnvVars: + aliasProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - sharedEnvVarsProduction: + bulkRedirects: items: $ref: '#/components/schemas/ACLAction' type: array - space: + buildMachine: items: $ref: '#/components/schemas/ACLAction' type: array - spaceRun: + connectConfigurationLink: items: $ref: '#/components/schemas/ACLAction' type: array - passwordProtectionInvoiceItem: + dataCacheNamespace: items: $ref: '#/components/schemas/ACLAction' type: array - rateLimit: + deployment: items: $ref: '#/components/schemas/ACLAction' type: array - redis: + deploymentBuildLogs: items: $ref: '#/components/schemas/ACLAction' type: array - remoteCaching: + deploymentCheck: items: $ref: '#/components/schemas/ACLAction' type: array - samlConfig: + deploymentCheckPreview: items: $ref: '#/components/schemas/ACLAction' type: array - secret: + deploymentCheckReRunFromProductionBranch: items: $ref: '#/components/schemas/ACLAction' type: array - supportCase: + deploymentProductionGit: items: $ref: '#/components/schemas/ACLAction' type: array - supportCaseComment: + deploymentV0: items: $ref: '#/components/schemas/ACLAction' type: array - dataCacheBillingSettings: + deploymentPreview: items: $ref: '#/components/schemas/ACLAction' type: array - team: + deploymentPrivate: items: $ref: '#/components/schemas/ACLAction' type: array - teamAccessRequest: + deploymentPromote: items: $ref: '#/components/schemas/ACLAction' type: array - teamFellowMembership: + deploymentRollback: items: $ref: '#/components/schemas/ACLAction' type: array - teamInvite: + edgeCacheNamespace: items: $ref: '#/components/schemas/ACLAction' type: array - teamInviteCode: + environments: items: $ref: '#/components/schemas/ACLAction' type: array - teamJoin: + job: items: $ref: '#/components/schemas/ACLAction' type: array - teamOwnMembership: + logs: items: $ref: '#/components/schemas/ACLAction' type: array - teamOwnMembershipDisconnectSAML: + logsPreset: items: $ref: '#/components/schemas/ACLAction' type: array - token: + observabilityData: items: $ref: '#/components/schemas/ACLAction' type: array - usage: + onDemandBuild: items: $ref: '#/components/schemas/ACLAction' type: array - usageCycle: + onDemandConcurrency: items: $ref: '#/components/schemas/ACLAction' type: array - user: + optionsAllowlist: items: $ref: '#/components/schemas/ACLAction' type: array - userConnection: + passwordProtection: items: $ref: '#/components/schemas/ACLAction' type: array - webAnalyticsPlan: + privateLinkEndpoint: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfig: + productionAliasProtectionBypass: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfigItem: + productionShareableLink: items: $ref: '#/components/schemas/ACLAction' type: array - edgeConfigToken: + project: items: $ref: '#/components/schemas/ACLAction' type: array - webhook: + projectAccessGroup: items: $ref: '#/components/schemas/ACLAction' type: array - webhook-event: + projectAnalyticsSampling: items: $ref: '#/components/schemas/ACLAction' type: array - endpointVerification: + projectAnalyticsUsage: items: $ref: '#/components/schemas/ACLAction' type: array - projectTransferIn: + projectCheck: items: $ref: '#/components/schemas/ACLAction' type: array - aliasProject: + projectCheckRun: items: $ref: '#/components/schemas/ACLAction' type: array - aliasProtectionBypass: + projectDeploymentExpiration: items: $ref: '#/components/schemas/ACLAction' type: array - connectConfigurationLink: + projectDeploymentHook: items: $ref: '#/components/schemas/ACLAction' type: array - dataCacheNamespace: + projectDeploymentProtectionStrict: items: $ref: '#/components/schemas/ACLAction' type: array - deployment: + projectDomain: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheck: + projectDomainCheckConfig: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheckPreview: + projectDomainMove: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentCheckReRunFromProductionBranch: + projectDomainVerify: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentProductionGit: + projectEvent: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPreview: + projectEnvVars: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPrivate: + projectEnvVarsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentPromote: + projectEnvVarsUnownedByIntegration: items: $ref: '#/components/schemas/ACLAction' type: array - deploymentRollback: + projectFlags: items: $ref: '#/components/schemas/ACLAction' type: array - logs: + projectFlagsProduction: items: $ref: '#/components/schemas/ACLAction' type: array - logsPreset: + projectFlagsSdkKey: items: $ref: '#/components/schemas/ACLAction' type: array - passwordProtection: + projectFromV0: items: $ref: '#/components/schemas/ACLAction' type: array - job: + projectId: items: $ref: '#/components/schemas/ACLAction' type: array - project: + projectIntegrationConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - projectAnalyticsSampling: + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectOIDCToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRollingRelease: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRoutes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTier: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + pageIntegrity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityPlusConfiguration: items: $ref: '#/components/schemas/ACLAction' type: array - projectDeploymentHook: + shareableLink: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomain: + shareableLinkStrict: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomainMove: + sharedEnvVarConnection: items: $ref: '#/components/schemas/ACLAction' type: array - projectDomainCheckConfig: + skewProtection: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVars: + analytics: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVarsProduction: + trustedIps: items: $ref: '#/components/schemas/ACLAction' type: array - projectEnvVarsUnownedByIntegration: + trustedSources: items: $ref: '#/components/schemas/ACLAction' type: array - projectId: + v0Chat: items: $ref: '#/components/schemas/ACLAction' type: array - projectIntegrationConfiguration: + vercelAuth: items: $ref: '#/components/schemas/ACLAction' type: array - projectLink: + vercelRun: items: $ref: '#/components/schemas/ACLAction' type: array - projectMember: + webAnalytics: items: $ref: '#/components/schemas/ACLAction' type: array - projectMonitoring: + workflowRunData: items: $ref: '#/components/schemas/ACLAction' type: array - projectPermissions: + type: object + lastRollbackTarget: + nullable: true + type: string + description: (opaque JSON object) + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + nullable: true + type: string + toDeploymentId: + type: string + fromRollingReleaseId: + type: string + description: If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release. + jobStatus: + type: string + enum: + - failed + - in-progress + - pending + - skipped + - succeeded + requestedAt: + type: number + type: + type: string + enum: + - promote + - rollback + required: + - fromDeploymentId + - jobStatus + - requestedAt + - toDeploymentId + - type + type: object + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + enum: + - false + - true + trustedIps: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: items: - $ref: '#/components/schemas/ACLAction' + properties: + value: + type: string + note: + type: string + required: + - value + type: object type: array - projectProductionBranch: + protectionMode: + type: string + enum: + - additional + - exclusive + required: + - addresses + - deploymentType + - protectionMode + type: object + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: + items: + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: + type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object + required: + - claims + - to + type: object + type: array + type: object + type: object + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on commits + required: + - onCommit + - onPullRequest + type: object + gitProviderOptions: + properties: + createDeployments: + type: string + enum: + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + concurrencyBucketName: + type: string + webAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: + nullable: true + type: number + firewallConfigVersion: + type: number + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - projectTransfer: + managedRules: + nullable: true + properties: + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + bot_filter: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + deploymentPolicy: + nullable: true + properties: + gitSources: + nullable: true items: - $ref: '#/components/schemas/ACLAction' + properties: + sources: + items: + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: + type: string + required: + - org + - provider + type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' type: array - projectTransferOut: + deploymentSources: + nullable: true items: - $ref: '#/components/schemas/ACLAction' + properties: + sources: + items: + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' type: array - projectProtectionBypass: + type: object + description: Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident. + tier: + type: string + enum: + - advanced + - critical + - priority + usageStatus: + properties: + kind: + type: string + enum: + - flat + description: Billing mode. Always 'flat' for flat-rate projects. + exceededAllowanceUntil: + type: number + description: Timestamp until which the project has exceeded its CDN allowance. + bypassThrottleUntil: + type: number + description: Timestamp until which throttling is bypassed (project pays list rates for overage). + throttled: + type: boolean + enum: + - false + - true + description: Per-project throttle, set explicitly for this project (e.g. via the per-project Flat Rate CDN endpoint). + teamThrottled: + type: boolean + enum: + - false + - true + description: Synced from `team.billing.usageStatus.throttled`. When `true`, the team has throttled all of its projects regardless of `throttled`. The effective throttle the CDN enforces is `throttled || teamThrottled`. + required: + - kind + type: object + features: + properties: + webAnalytics: + type: boolean + enum: + - false + - true + type: object + v0: + type: boolean + enum: + - false + - true + v0Created: + type: boolean + enum: + - false + - true + abuse: + properties: + scanner: + type: string + history: items: - $ref: '#/components/schemas/ACLAction' + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object type: array - projectUsage: + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: items: - $ref: '#/components/schemas/ACLAction' + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object type: array - projectAnalyticsUsage: + interstitial: + type: boolean + enum: + - false + - true + interstitialHistory: items: - $ref: '#/components/schemas/ACLAction' + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object type: array - analytics: + required: + - history + - updatedAt + type: object + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + hasDeployments: + type: boolean + enum: + - false + - true + dismissedToasts: + items: + properties: + key: + type: string + dismissedAt: + type: number + action: + type: string + enum: + - accept + - cancel + - delete + value: + nullable: true + oneOf: + - type: string + - type: number + - properties: + previousValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + currentValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + required: + - currentValue + - previousValue + type: object + - type: boolean + enum: + - false + - true + required: + - action + - dismissedAt + - key + - value + type: object + type: array + protectedSourcemaps: + type: boolean + enum: + - false + - true + tracing: + properties: + domains: + type: string + ignorePaths: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array - trustedIps: + samplingRules: items: - $ref: '#/components/schemas/ACLAction' + properties: + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + destination: + type: string + enum: + - external + - internal + description: Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed. + required: + - rate + type: object type: array - webAnalytics: - items: - $ref: '#/components/schemas/ACLAction' + type: object + avatar: + nullable: true + type: string + required: + - accountId + - alias + - defaultResourceConfig + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + '413': + description: '' + '415': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name. + in: path + required: true + schema: + description: The unique project identifier or the project name. + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/octet-stream: + schema: + $ref: '#/components/schemas/StackqlOctetStreamBody' + /v9/projects/{id_or_name}/domains: + get: + description: Retrieve the domains associated with a given project by passing either the project `id` or `name` in the URL. + operationId: getProjectDomains + security: + - bearerToken: [] + summary: Retrieve project domains by project by id or name + tags: + - projects + responses: + '200': + description: Successful response retrieving a list of domains + content: + application/json: + schema: + properties: + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: number + prev: + nullable: true + type: number + required: + - count + - next + - prev + type: object + required: + - domains + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + oneOf: + - type: string + - name: production + description: Filters only production domains when set to `true`. + in: query + required: false + schema: + default: 'false' + description: Filters only production domains when set to `true`. + enum: + - 'true' + - 'false' + - name: target + description: Filters on the target of the domain. Can be either "production", "preview" + in: query + required: false + schema: + description: Filters on the target of the domain. Can be either "production", "preview" + enum: + - production + - preview + type: string + - name: customEnvironmentId + description: The unique custom environment identifier within the project + in: query + required: false + schema: + description: The unique custom environment identifier within the project + type: string + example: env_123abc4567 + - name: gitBranch + description: Filters domains based on specific branch. + in: query + required: false + schema: + description: Filters domains based on specific branch. + type: string + - name: redirects + description: Excludes redirect project domains when "false". Includes redirect project domains when "true" (default). + in: query + required: false + schema: + default: 'true' + description: Excludes redirect project domains when "false". Includes redirect project domains when "true" (default). + enum: + - 'true' + - 'false' + - name: redirect + description: Filters domains based on their redirect target. + in: query + required: false + schema: + description: Filters domains based on their redirect target. + type: string + example: example.com + - name: verified + description: Filters domains based on their verification status. + in: query + required: false + schema: + description: Filters domains based on their verification status. + enum: + - 'true' + - 'false' + - name: limit + description: Maximum number of domains to list from a request (max 100). + in: query + required: false + schema: + description: Maximum number of domains to list from a request (max 100). + type: number + example: 20 + - name: since + description: Get domains created after this JavaScript timestamp. + in: query + required: false + schema: + description: Get domains created after this JavaScript timestamp. + type: number + example: 1609499532000 + - name: until + description: Get domains created before this JavaScript timestamp. + in: query + required: false + schema: + description: Get domains created before this JavaScript timestamp. + type: number + example: 1612264332000 + - name: order + description: Domains sort order by createdAt + in: query + required: false + schema: + default: DESC + description: Domains sort order by createdAt + enum: + - ASC + - DESC + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v9/projects/{id_or_name}/domains/{domain}: + get: + description: Get project domain by project id/name and domain name. + operationId: getProjectDomain + security: + - bearerToken: [] + summary: Get a project domain + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Update a project domain's configuration, including the name, git branch and redirect of the domain. + operationId: updateProjectDomain + security: + - bearerToken: [] + summary: Update a project domain + tags: + - projects + responses: + '200': + description: The domain was updated successfuly + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The domain redirect is not valid + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: The project is currently being transferred + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + gitBranch: + description: Git branch to link the project domain + example: null + type: string + maxLength: 250 + nullable: true + redirect: + description: Target destination domain for redirect + example: foobar.com + type: string + nullable: true + redirectStatusCode: + description: Status code for domain redirect + example: 307 + type: integer + enum: + - null + - 301 + - 302 + - 307 + - 308 + nullable: true + type: object + required: true + delete: + description: Remove a domain from a project by passing the domain name and by specifying the project by either passing the project `id` or `name` in the URL. + operationId: removeProjectDomain + security: + - bearerToken: [] + summary: Remove a domain from a project + tags: + - projects + responses: + '200': + description: The domain was succesfully removed from the project + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: The project is currently being transferred + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + removeRedirects: + type: boolean + description: Whether to remove all domains from this project that redirect to the domain being removed. + /v10/projects/{id_or_name}/domains: + post: + description: Add a domain to the project by passing its domain name and by specifying the project by either passing the project `id` or `name` in the URL. If the domain is not yet verified to be used on this project, the request will return `verified = false`, and the domain will need to be verified according to the `verification` challenge via `POST /projects/:idOrName/domains/:domain/verify`. If the domain already exists on the project, the request will fail with a `400` status code. + operationId: addProjectDomain + security: + - bearerToken: [] + summary: Add a domain to a project + tags: + - projects + responses: + '200': + description: The domain was successfully added to the project + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The domain is not valid + You can't set both a git branch and a redirect for the domain + The domain can not be added because the latest production deployment for the project was not successful + The domain redirect is not valid + A domain cannot redirect to itself + You can not set the production branch as a branch for your domain + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + You don't have access to the domain you are adding + '409': + description: |- + The domain is already assigned to another Vercel project + Cannot create project domain since owner already has `domain` on their account, but it's not verified yet. + Cannot create project domain since owner already has `domain` on their account, and it's verified. + The domain is not allowed to be used + The project is currently being transferred + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + name: + description: The project domain name + example: www.example.com + type: string + gitBranch: + description: Git branch to link the project domain + example: null + maxLength: 250 + type: string + nullable: true + customEnvironmentId: + description: The unique custom environment identifier within the project + type: string + redirect: + description: Target destination domain for redirect + example: foobar.com + type: string + nullable: true + redirectStatusCode: + description: Status code for domain redirect + example: 307 + type: integer + enum: + - null + - 301 + - 302 + - 307 + - 308 + nullable: true + required: + - name + type: object + required: true + /v1/projects/{id_or_name}/domains/{domain}/move: + post: + description: Move one project's domain to another project. Also allows the move of all redirects pointed to that domain in the same project. + operationId: moveProjectDomain + security: + - bearerToken: [] + summary: Move a project domain + tags: + - projects + responses: + '200': + description: The domain was updated successfuly + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The domain redirect is not valid + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: The project is currently being transferred + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + - name: domain + description: The project domain name + in: path + required: true + schema: + description: The project domain name + type: string + example: www.example.com + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + required: + - projectId + properties: + projectId: + description: The unique target project identifier + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + type: string + gitBranch: + description: Git branch to link the project domain + example: null + type: string + maxLength: 250 + nullable: true + redirect: + description: Target destination domain for redirect + example: foobar.com + type: string + nullable: true + redirectStatusCode: + description: Status code for domain redirect + example: 307 + type: integer + enum: + - null + - 301 + - 302 + - 307 + - 308 + nullable: true + type: object + /v9/projects/{id_or_name}/domains/{domain}/verify: + post: + description: Attempts to verify a project domain with `verified = false` by checking the correctness of the project domain's `verification` challenge. + operationId: verifyProjectDomain + security: + - bearerToken: [] + summary: Verify project domain + tags: + - projects + responses: + '200': + description: |- + The project domain was verified successfully + Domain is already verified + content: + application/json: + schema: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + required: + - apexName + - name + - projectId + - verified + type: object + '400': + description: |- + One of the provided values in the request query is invalid. + There is an existing TXT record on the domain verifying it for another project + The domain does not have a TXT record that attempts to verify the project domain + The TXT record on the domain does not match the expected challenge for the project domain + Project domain is not assigned to project + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier or the project name + type: string + - name: domain + description: The domain name you want to verify + in: path + required: true + schema: + description: The domain name you want to verify + type: string + example: example.com + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v10/projects/{id_or_name}/env: + get: + description: Retrieve the environment variables for a given project by passing either the project `id` or `name` in the URL. + operationId: filterProjectEnvs + security: + - bearerToken: [] + summary: Retrieve the environment variables of a project by id or name + tags: + - projects + responses: + '200': + description: The list of environment variables for the given project + content: + application/json: + schema: + properties: + securityIssues: + items: + type: string + enum: + - flags-secret-needs-split + - readable-secret + type: array + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + value: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + system: + type: boolean + enum: + - false + - true + id: + type: string + key: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production type: array - sharedEnvVarConnection: + - type: string + enum: + - development + - development + - preview + - preview + - production + gitBranch: + type: string + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + configurationId: + nullable: true + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + envs: + items: + properties: + securityIssues: + items: + type: string + enum: + - flags-secret-needs-split + - readable-secret + type: array + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + value: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + system: + type: boolean + enum: + - false + - true + id: + type: string + key: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + gitBranch: + type: string + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + configurationId: + nullable: true + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + required: + - key + - securityIssues + - type + - value + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + hiddenProductionEnvCount: + type: number + required: + - key + - securityIssues + - type + - value + - envs + - pagination + - hiddenProductionEnvCount + type: object + description: The list of environment variables for the given project + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - ls + - list + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + x-vercel-cli: + kind: argument + - name: gitBranch + description: If defined, the git branch of the environment variable to filter the results (must have target=preview) + in: query + required: false + schema: + description: If defined, the git branch of the environment variable to filter the results (must have target=preview) + type: string + maxLength: 250 + example: feature-1 + - name: decrypt + description: If true, the environment variable value will be decrypted + in: query + required: false + schema: + description: If true, the environment variable value will be decrypted + type: string + enum: + - 'true' + - 'false' + example: 'true' + deprecated: true + - name: source + description: The source that is calling the endpoint. + in: query + required: false + schema: + description: The source that is calling the endpoint. + type: string + example: vercel-cli:pull + - name: customEnvironmentId + description: The unique custom environment identifier within the project + in: query + required: false + schema: + type: string + description: The unique custom environment identifier within the project + example: env_123abc4567 + - name: customEnvironmentSlug + description: The custom environment slug (name) within the project + in: query + required: false + schema: + type: string + description: The custom environment slug (name) within the project + example: my-custom-env + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + x-speakeasy-test: false + post: + description: Create one or more environment variables for a project by passing its `key`, `value`, `type` and `target` and by specifying the project by either passing the project `id` or `name` in the URL. If you include `upsert=true` as a query parameter, a new environment variable will not be created if it already exists but, the existing variable's value will be updated. + operationId: createProjectEnv + security: + - bearerToken: [] + summary: Create one or more environment variables + tags: + - projects + responses: + '201': + description: The environment variable was created successfully + content: + application/json: + schema: + properties: + created: + properties: + target: + oneOf: + - items: + type: string + enum: + - production + - preview + - development + type: array + - type: string + enum: + - production + - preview + - development + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + value: + type: string + vsmValue: + type: string + id: + type: string + key: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: items: - $ref: '#/components/schemas/ACLAction' + type: string type: array + system: + type: boolean + enum: + - false + - true + required: + - key + - type + - value type: object - lastRollbackTarget: + items: + properties: + target: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - production + - preview + - development + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + value: + type: string + vsmValue: + type: string + id: + type: string + key: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + system: + type: boolean + enum: + - false + - true + required: + - key + - type + - value + type: object + failed: + items: + properties: + error: + properties: + code: + type: string + message: + type: string + key: + type: string + envVarId: + type: string + envVarKey: + type: string + action: + type: string + link: + type: string + value: + oneOf: + - type: string + - items: + type: string + enum: + - production + - preview + - development + type: array + gitBranch: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - production + - preview + - development + project: + type: string + required: + - code + - message + type: object + required: + - error + type: object + type: array + required: + - failed + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + The environment variable coudn't be created because an ongoing update env update is already happening + The environment variable coudn't be created because project document is too large + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: |- + You do not have permission to access this resource. + The environment variable cannot be created because it already exists + '404': + description: '' + '409': + description: '' + '410': + description: '' + '429': + description: '' + '500': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: + - name: id_or_name + description: The unique project identifier or the project name + in: path + required: true + schema: + description: The unique project identifier or the project name + type: string + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + x-vercel-cli: + kind: argument + - name: upsert + description: Allow override of environment variable if it already exists + in: query + required: false + schema: + description: Allow override of environment variable if it already exists + type: string + example: 'true' + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - key + - value + - type + anyOf: + - required: + - target + - required: + - customEnvironmentIds + properties: + key: + description: The name of the environment variable + type: string + example: API_URL + value: + description: The value of the environment variable + type: string + example: https://api.vercel.com + type: + description: The type of environment variable + type: string + enum: + - system + - encrypted + - plain + - sensitive + example: plain + target: + description: The target environment of the environment variable + type: array + items: + enum: + - production + - preview + - development + example: + - preview + gitBranch: + description: If defined, the git branch of the environment variable (must have target=preview) + type: string + maxLength: 250 + example: feature-1 + nullable: true + comment: + type: string + description: A comment to add context on what this environment variable is for + example: database connection string for production + maxLength: 500 + customEnvironmentIds: + type: array + description: The custom environment IDs associated with the environment variable + items: + type: string + example: env_1234567890 + items: + type: object + required: + - key + - value + - type + anyOf: + - required: + - target + - required: + - customEnvironmentIds + properties: + key: + description: The name of the environment variable + type: string + example: API_URL + value: + description: The value of the environment variable + type: string + example: https://api.vercel.com + type: + description: The type of environment variable + type: string + enum: + - system + - encrypted + - plain + - sensitive + example: plain + target: + description: The target environment of the environment variable + type: array + items: + enum: + - production + - preview + - development + example: + - preview + gitBranch: + description: If defined, the git branch of the environment variable (must have target=preview) + type: string + maxLength: 250 + example: feature-1 + nullable: true + comment: + type: string + description: A comment to add context on what this environment variable is for + example: database connection string for production + maxLength: 500 + customEnvironmentIds: + type: array + description: The custom environment IDs associated with the environment variable + items: + type: string + example: env_1234567890 + required: true + /v1/projects/{id_or_name}/env/{id}: + get: + description: Retrieve the environment variable for a given project. + operationId: getProjectEnv + security: + - bearerToken: [] + summary: Retrieve the decrypted value of an environment variable of a project by id + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + decrypted: + type: boolean + enum: + - false + - true + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + edgeConfigId: nullable: true - type: object - lastAliasRequest: + type: string + edgeConfigTokenId: nullable: true - properties: - fromDeploymentId: - type: string - toDeploymentId: - type: string - jobStatus: - type: string - enum: - - succeeded - - failed - - skipped - - pending - - in-progress - requestedAt: - type: number - type: - type: string - enum: - - promote - - rollback - required: - - fromDeploymentId - - toDeploymentId - - jobStatus - - requestedAt - - type - type: object - hasFloatingAliases: - type: boolean - protectionBypass: - additionalProperties: - properties: - createdAt: - type: number - createdBy: - type: string - scope: + type: string + createdAt: + type: number + updatedAt: + type: number + id: + type: string + key: + type: string + target: + oneOf: + - items: type: string enum: - - automation-bypass - required: - - createdAt - - createdBy - - scope - type: object - type: object - hasActiveBranches: - type: boolean - trustedIps: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - production + - preview + - development + gitBranch: + type: string + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + configurationId: + nullable: true + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + contentHint: nullable: true oneOf: - properties: - deploymentType: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: type: string enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production - addresses: - items: - properties: - value: - type: string - note: - type: string - required: - - value - type: object - type: array - protectionMode: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: type: string enum: - - exclusive - - additional + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string required: - - deploymentType - - addresses - - protectionMode + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type type: object - properties: - deploymentType: + type: type: string enum: - - all - - preview - - prod_deployment_urls_and_all_previews - - production + - flags-connection-string + projectId: + type: string required: - - deploymentType + - projectId + - type type: object - gitComments: + internalContentHint: + nullable: true properties: - onPullRequest: - type: boolean - description: Whether the Vercel bot should comment on PRs - onCommit: - type: boolean - description: Whether the Vercel bot should comment on commits + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. required: - - onPullRequest - - onCommit + - encryptedValue + - type type: object - paused: - type: boolean + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string + type: array + value: + type: string required: - - accountId - - directoryListing - - id - - name - - nodeVersion + - decrypted + - key + - type + - value type: object '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. - Owner does not have protection add-on - Trusted IPs is only accessible for enterprise customers - Advanced Deployment Protection is not available for the user plan + description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. - '409': - description: |- - The provided name for the project is already being used - The project is currently being transferred. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - - name: idOrName + - name: id_or_name description: The unique project identifier or the project name in: path required: true schema: - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB description: The unique project identifier or the project name type: string - - description: The Team identifier or slug to perform the request on behalf of. + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + x-vercel-cli: + kind: argument + - name: id + description: The unique ID for the environment variable to get the decrypted value. + in: path + required: true + schema: + description: The unique ID for the environment variable to get the decrypted value. + type: string + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - requestBody: - content: - application/json: - schema: - additionalProperties: false - properties: - autoExposeSystemEnvs: - type: boolean - autoAssignCustomDomains: - type: boolean - autoAssignCustomDomainsUpdatedBy: - type: string - buildCommand: - description: The build command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - commandForIgnoringBuildStep: - maxLength: 256 - type: string - nullable: true - customerSupportCodeVisibility: - description: Specifies whether customer support can see git source for a deployment - type: boolean - devCommand: - description: The dev command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - directoryListing: - type: boolean - framework: - description: The framework that is being used for this project. When `null` is used no framework is selected - enum: - - null - - blitzjs - - nextjs - - gatsby - - remix - - astro - - hexo - - eleventy - - docusaurus-2 - - docusaurus - - preact - - solidstart - - dojo - - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app - - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - - vite - - vitepress - - vuepress - - parcel - - sanity - - storybook - type: string - nullable: true - gitForkProtection: - description: Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed - type: boolean - gitLFS: - description: Specifies whether Git LFS is enabled for this project. - type: boolean - installCommand: - description: The install command for this project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string - nullable: true - name: - description: The desired name for the project - example: a-project-name - type: string - maxLength: 100 - pattern: '^[a-z0-9]([a-z0-9]|-[a-z0-9])*$' - nodeVersion: - enum: - - 18.x - - 16.x - - 14.x - - 12.x - - 10.x - type: string - outputDirectory: - description: The output directory of the project. When `null` is used this value will be automatically detected - maxLength: 256 - type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v9/projects/{id_or_name}/env/{id}: + delete: + description: Delete a specific environment variable for a given project by passing the environment variable identifier and either passing the project `id` or `name` in the URL. + operationId: removeProjectEnv + security: + - bearerToken: [] + summary: Remove an environment variable + tags: + - projects + responses: + '200': + description: The environment variable was successfully removed + content: + application/json: + schema: + items: nullable: true - passwordProtection: - additionalProperties: false - description: Allows to protect project deployments with a password properties: - deploymentType: - description: Specify if the password will apply to every Deployment Target or just Preview + type: + type: string enum: - - all - - preview - - prod_deployment_urls_and_all_previews + - encrypted + - plain + - secret + - sensitive + - system + value: type: string - password: - description: The password that will be used to protect Project Deployments - maxLength: 72 + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + id: + type: string + key: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - production + - preview + - development + gitBranch: + type: string + createdBy: + nullable: true type: string + updatedBy: nullable: true - required: - - deploymentType - type: object - nullable: true - publicSource: - description: Specifies whether the source code and logs of the deployments for this project should be public or not - type: boolean - nullable: true - rootDirectory: - description: The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root - maxLength: 256 - type: string - nullable: true - serverlessFunctionRegion: - description: The region to deploy Serverless Functions in this project - maxLength: 4 - type: string - nullable: true - skipGitConnectDuringLink: - description: Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`. - type: boolean - deprecated: true - sourceFilesOutsideRootDirectory: - description: Indicates if there are source files outside of the root directory - type: boolean - ssoProtection: - additionalProperties: false - description: Ensures visitors to your Preview Deployments are logged into Vercel and have a minimum of Viewer access on your team - properties: - deploymentType: - default: preview - description: Specify if the Vercel Authentication (SSO Protection) will apply to every Deployment Target or just Preview + type: string + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean enum: - - all - - preview - - prod_deployment_urls_and_all_previews + - false + - true + configurationId: + nullable: true + type: string + visibility: type: string - required: - - deploymentType - type: object - nullable: true - trustedIps: - additionalProperties: false - description: Restricts access to deployments based on the incoming request IP address - properties: - deploymentType: - description: Specify if the Trusted IPs will apply to every Deployment Target or just Preview enum: - - all - - preview - - production - - prod_deployment_urls_and_all_previews + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: type: string - addresses: - type: array + customEnvironmentIds: items: + type: string + type: array + required: + - key + - type + - value + type: object + type: array + properties: + system: + type: boolean + enum: + - false + - true + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + value: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + id: + type: string + key: + type: string + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - production + - preview + - development + gitBranch: + type: string + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + configurationId: + nullable: true + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type type: object - properties: - value: + - properties: + type: type: string - description: The IP addresses that are allowlisted. Supported formats are IPv4 and CIDR. - note: + enum: + - redis-rest-api-url + storeId: type: string - description: An optional note explaining what the IP address or subnet is used for required: - - value - additionalProperties: false - minItems: 1 - protectionMode: - description: 'exclusive: ip match is enough to bypass deployment protection (regardless of other settings). additional: ip must match + any other protection should be also provided (password, vercel auth, shareable link, automation bypass header, automation bypass query param)' - enum: - - exclusive - - additional + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: type: string - required: - - deploymentType - - addresses - - protectionMode - type: object - nullable: true - enablePreviewFeedback: - description: Opt-in to Preview comments on the project level - type: boolean - nullable: true - type: object - delete: - description: Delete a specific project by passing either the project `id` or `name` in the URL. - operationId: deleteProject - security: - - bearerToken: [] - summary: Delete a Project - tags: - - projects - responses: - '204': - description: The project was successfuly removed + type: array + required: + - key + - type + - value + nullable: true '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '404': + description: '' '409': + description: The project is being transfered and removing an environment variable is not possible + '410': description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - - name: idOrName + - name: id_or_name description: The unique project identifier or the project name in: path required: true schema: - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB description: The unique project identifier or the project name type: string - - description: The Team identifier or slug to perform the request on behalf of. + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + x-vercel-cli: + kind: argument + - name: id + description: The unique environment variable identifier + in: path + required: true + schema: + description: The unique environment variable identifier + type: string + example: XMbOEya1gUUO1ir4 + x-vercel-cli: + kind: argument + - name: customEnvironmentId + description: The unique custom environment identifier within the project + in: query + required: false + schema: + type: string + description: The unique custom environment identifier within the project + example: env_123abc4567 + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v9/projects/{idOrName}/domains': - get: - description: Retrieve the domains associated with a given project by passing either the project `id` or `name` in the URL. - operationId: getProjectDomains + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Edit a specific environment variable for a given project by passing the environment variable identifier and either passing the project `id` or `name` in the URL. + operationId: editProjectEnv security: - bearerToken: [] - summary: Retrieve project domains by project by id or name + summary: Edit an environment variable tags: - projects responses: '200': - description: Successful response retrieving a list of domains + description: '' content: application/json: schema: + nullable: true properties: - domains: + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + value: + type: string + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + id: + type: string + key: + type: string + target: items: - properties: - name: - type: string - apexName: - type: string - projectId: - type: string - redirect: - nullable: true - type: string - redirectStatusCode: - nullable: true - type: number - enum: - - 307 - - 301 - - 302 - - 308 - gitBranch: - nullable: true - type: string - updatedAt: - type: number - createdAt: - type: number - verified: - type: boolean - description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' - verification: - items: - properties: - type: - type: string - domain: - type: string - value: - type: string - reason: - type: string - required: - - type - - domain - - value - - reason - type: object - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - type: array - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - required: - - name - - apexName - - projectId - - verified - type: object + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + enum: + - development + - development + - preview + - preview + - production + gitBranch: + type: string + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + configurationId: + nullable: true + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + contentHint: + nullable: true + properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + projectId: + type: string + required: + - storeId + - type + - integrationConfigurationId + - integrationId + - integrationProductId + - projectId + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: + type: string type: array - pagination: - $ref: '#/components/schemas/Pagination' required: - - domains - - pagination + - key + - type + - value type: object '400': - description: One of the provided values in the request query is invalid. + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + At least one environment variable failed validation '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: The project is being transfered and removing an environment variable is not possible + '410': + description: '' + '429': + description: '' + '500': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false parameters: - - name: idOrName + - name: id_or_name description: The unique project identifier or the project name in: path required: true schema: description: The unique project identifier or the project name - oneOf: - - type: string - - type: integer - - name: production - description: Filters only production domains when set to `true`. - in: query - required: false - schema: - default: 'false' - description: Filters only production domains when set to `true`. - enum: - - 'true' - - 'false' - - name: gitBranch - description: Filters domains based on specific branch. - in: query - required: false - schema: - description: Filters domains based on specific branch. type: string - - name: redirects - description: Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default). - in: query - required: false - schema: - default: 'true' - description: Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default). - enum: - - 'true' - - 'false' - - name: redirect - description: Filters domains based on their redirect target. - in: query - required: false + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + x-vercel-cli: + kind: argument + - name: id + description: The unique environment variable identifier + in: path + required: true schema: - description: Filters domains based on their redirect target. + description: The unique environment variable identifier type: string - example: example.com - - name: verified - description: Filters domains based on their verification status. - in: query - required: false - schema: - description: Filters domains based on their verification status. - enum: - - 'true' - - 'false' - - name: limit - description: Maximum number of domains to list from a request (max 100). - in: query - required: false - schema: - description: Maximum number of domains to list from a request (max 100). - type: number - example: 20 - - name: since - description: Get domains created after this JavaScript timestamp. - in: query - required: false - schema: - description: Get domains created after this JavaScript timestamp. - type: number - example: 1609499532000 - - name: until - description: Get domains created before this JavaScript timestamp. - in: query - required: false - schema: - description: Get domains created before this JavaScript timestamp. - type: number - example: 1612264332000 - - name: order - description: Domains sort order by createdAt - in: query - required: false - schema: - default: DESC - description: Domains sort order by createdAt - enum: - - ASC - - DESC - - description: The Team identifier or slug to perform the request on behalf of. + example: XMbOEya1gUUO1ir4 + x-vercel-cli: + kind: argument + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v9/projects/{idOrName}/domains/{domain}': - get: - description: Get project domain by project id/name and domain name. - operationId: getProjectDomain + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + key: + description: The name of the environment variable + type: string + example: GITHUB_APP_ID + target: + description: The target environment of the environment variable + type: array + items: + enum: + - production + - preview + - development + example: + - preview + gitBranch: + description: If defined, the git branch of the environment variable (must have target=preview) + type: string + maxLength: 250 + example: feature-1 + nullable: true + type: + description: The type of environment variable + type: string + enum: + - system + - encrypted + - plain + - sensitive + example: plain + value: + description: The value of the environment variable + type: string + example: bkWIjbnxcvo78 + customEnvironmentIds: + type: array + description: The custom environments that the environment variable should be synced to + items: + type: string + example: env_1234567890 + comment: + type: string + description: A comment to add context on what this env var is for + example: database connection string for production + maxLength: 500 + required: true + x-speakeasy-test: false + /v1/projects/{id_or_name}/env: + delete: + description: Delete multiple environment variables for a given project in a single batch operation. + operationId: batchRemoveProjectEnv security: - bearerToken: [] - summary: Get a project domain + summary: Batch remove environment variables tags: - projects responses: @@ -8920,2978 +28803,6210 @@ paths: application/json: schema: properties: - name: - type: string - apexName: - type: string - projectId: - type: string - redirect: - nullable: true - type: string - redirectStatusCode: - nullable: true - type: number - enum: - - 307 - - 301 - - 302 - - 308 - gitBranch: - nullable: true - type: string - updatedAt: - type: number - createdAt: + deleted: type: number - verified: - type: boolean - description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' - verification: + ids: items: - properties: - type: - type: string - domain: - type: string - value: - type: string - reason: - type: string - required: - - type - - domain - - value - - reason - type: object - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: string type: array - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' required: - - name - - apexName - - projectId - - verified + - deleted + - ids type: object '400': - description: One of the provided values in the request query is invalid. + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' parameters: - - name: idOrName + - name: id_or_name description: The unique project identifier or the project name in: path required: true schema: description: The unique project identifier or the project name type: string - - name: domain - description: The project domain name - in: path - required: true + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId schema: - description: The project domain name type: string - example: www.example.com - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string - patch: - description: 'Update a project domain''s configuration, including the name, git branch and redirect of the domain.' - operationId: updateProjectDomain + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - ids + properties: + ids: + description: Array of environment variable IDs to delete + type: array + items: + type: string + minItems: 1 + maxItems: 1000 + additionalProperties: false + /projects/{id_or_name}/transfer-request: + post: + description: 'Initiates a project transfer request from one team to another.
Returns a `code` that remains valid for 24 hours and can be used to accept the transfer request by another team using the `PUT /projects/transfer-request/:code` endpoint.
Users can also accept the project transfer request using the claim URL: `https://vercel.com/claim-deployment?code=&returnUrl=`.
The `code` parameter specifies the project transfer request code generated using this endpoint.
The `returnUrl` parameter redirects users to a specific page of the application if the claim URL is invalid or expired.' + operationId: createProjectTransferRequest security: - bearerToken: [] - summary: Update a project domain + summary: Create project transfer request tags: - projects responses: '200': - description: The domain was updated successfuly + description: The project transfer request has been initiated successfully. content: application/json: schema: properties: - name: - type: string - apexName: - type: string - projectId: - type: string - redirect: - nullable: true - type: string - redirectStatusCode: - nullable: true - type: number - enum: - - 307 - - 301 - - 302 - - 308 - gitBranch: - nullable: true + code: type: string - updatedAt: - type: number - createdAt: - type: number - verified: - type: boolean - description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' - verification: - items: - properties: - type: - type: string - domain: - type: string - value: - type: string - reason: - type: string - required: - - type - - domain - - value - - reason - type: object - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - type: array - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' required: - - name - - apexName - - projectId - - verified + - code type: object '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. - The domain redirect is not valid '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '409': - description: The project is currently being transferred + description: '' + '410': + description: '' parameters: - - name: idOrName - description: The unique project identifier or the project name + - name: id_or_name + description: The ID or name of the project to transfer. in: path required: true schema: - description: The unique project identifier or the project name type: string - - name: domain - description: The project domain name - in: path - required: true + description: The ID or name of the project to transfer. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId schema: - description: The project domain name type: string - example: www.example.com - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string + example: my-team-url-slug requestBody: content: application/json: schema: + type: object properties: - gitBranch: - description: Git branch to link the project domain - example: null + callbackUrl: type: string - maxLength: 250 - nullable: true - redirect: - description: Target destination domain for redirect - example: foobar.com + description: The URL to send a webhook to when the transfer is accepted. + callbackSecret: type: string - nullable: true - redirectStatusCode: - description: Status code for domain redirect - example: 307 - type: integer - enum: - - null - - 301 - - 302 - - 307 - - 308 - nullable: true - type: object - delete: - description: Remove a domain from a project by passing the domain name and by specifying the project by either passing the project `id` or `name` in the URL. - operationId: removeProjectDomain + description: The secret to use to sign the webhook payload with HMAC-SHA256. + /projects/transfer-request/{code}: + put: + description: Accept a project transfer request initated by another team.
The `code` is generated using the `POST /projects/:idOrName/transfer-request` endpoint. + operationId: acceptProjectTransferRequest security: - bearerToken: [] - summary: Remove a domain from a project + summary: Accept project transfer request tags: - projects responses: - '200': - description: The domain was succesfully removed from the project + '202': + description: The project has been transferred successfully. content: application/json: schema: + properties: + partnerCalls: + items: + properties: + installationId: + type: string + resourceIds: + items: + type: string + type: array + result: + properties: + status: + type: string + enum: + - errored + - fulfilled + error: + type: string + description: (opaque JSON object) + code: + type: string + required: + - status + type: object + required: + - installationId + - resourceIds + - result + type: object + type: array + resourceTransferErrors: + items: + type: string + description: (opaque JSON object) + type: array + transferredStoreIds: + items: + type: string + type: array + required: + - partnerCalls + - resourceTransferErrors + - transferredStoreIds type: object '400': - description: One of the provided values in the request query is invalid. + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': description: '' - '409': - description: The project is currently being transferred + '410': + description: '' + '422': + description: '' parameters: - - name: idOrName - description: The unique project identifier or the project name + - name: code + description: The code of the project transfer request. in: path required: true schema: - description: The unique project identifier or the project name type: string - - name: domain - description: The project domain name - in: path - required: true + description: The code of the project transfer request. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId schema: - description: The project domain name type: string - example: www.example.com - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string - '/v10/projects/{idOrName}/domains': - post: - description: 'Add a domain to the project by passing its domain name and by specifying the project by either passing the project `id` or `name` in the URL. If the domain is not yet verified to be used on this project, the request will return `verified = false`, and the domain will need to be verified according to the `verification` challenge via `POST /projects/:idOrName/domains/:domain/verify`. If the domain already exists on the project, the request will fail with a `400` status code.' - operationId: addProjectDomain + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + newProjectName: + description: The desired name for the project + example: a-project-name + type: string + maxLength: 100 + paidFeatures: + type: object + additionalProperties: false + properties: + concurrentBuilds: + type: integer + nullable: true + passwordProtection: + type: boolean + nullable: true + previewDeploymentSuffix: + type: boolean + nullable: true + acceptedPolicies: + type: object + additionalProperties: + type: object + additionalProperties: + type: string + format: date-time + required: + - eula + - privacy + properties: + eula: + type: string + format: date-time + privacy: + type: string + format: date-time + /v1/projects/{id_or_name}/protection-bypass: + patch: + description: Update the deployment protection automation bypass for a project + operationId: updateProjectProtectionBypass security: - bearerToken: [] - summary: Add a domain to a project + summary: Update Protection Bypass for Automation tags: - projects responses: '200': - description: The domain was successfully added to the project + description: '' content: application/json: schema: properties: - name: - type: string - apexName: - type: string - projectId: - type: string - redirect: - nullable: true - type: string - redirectStatusCode: - nullable: true - type: number - enum: - - 307 - - 301 - - 302 - - 308 - gitBranch: - nullable: true - type: string - updatedAt: - type: number - createdAt: - type: number - verified: - type: boolean - description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' - verification: - items: - properties: - type: - type: string - domain: - type: string - value: - type: string - reason: - type: string - required: - - type - - domain - - value - - reason - type: object - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - type: array - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - required: - - name - - apexName - - projectId - - verified + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object type: object '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. - The domain is not valid - You can't set both a git branch and a redirect for the domain - The domain can not be added because the latest production deployment for the project was not successful - The domain redirect is not valid - A domain cannot redirect to itself - You can not set the production branch as a branch for your domain '401': - description: '' - '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated + description: The request is not authorized. '403': - description: |- - You do not have permission to access this resource. - You don't have access to the domain you are adding + description: You do not have permission to access this resource. + '404': + description: '' '409': - description: |- - The domain is already assigned to another Vercel project - Cannot create project domain since owner already has `domain` on their account - Cannot create project domain if the current verified domain - The project is currently being transferred + description: '' + '410': + description: '' parameters: - - name: idOrName + - name: id_or_name description: The unique project identifier or the project name in: path required: true schema: description: The unique project identifier or the project name type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: schema: - properties: - name: - description: The project domain name - example: www.example.com - type: string - gitBranch: - description: Git branch to link the project domain - example: null - maxLength: 250 - type: string - nullable: true - redirect: - description: Target destination domain for redirect - example: foobar.com - type: string - nullable: true - redirectStatusCode: - description: Status code for domain redirect - example: 307 - type: integer - enum: - - null - - 301 - - 302 - - 307 - - 308 - nullable: true - required: - - name type: object - '/v9/projects/{idOrName}/domains/{domain}/verify': - post: - description: Attempts to verify a project domain with `verified = false` by checking the correctness of the project domain's `verification` challenge. - operationId: verifyProjectDomain - security: - - bearerToken: [] - summary: Verify project domain - tags: - - projects - responses: - '200': - description: |- - The project domain was verified successfully - Domain is already verified - content: - application/json: - schema: - properties: - name: - type: string - apexName: - type: string - projectId: - type: string - redirect: - nullable: true - type: string - redirectStatusCode: - nullable: true - type: number - enum: - - 307 - - 301 - - 302 - - 308 - gitBranch: - nullable: true - type: string - updatedAt: - type: number - createdAt: - type: number - verified: - type: boolean - description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' - verification: - items: - properties: - type: - type: string - domain: - type: string - value: - type: string - reason: - type: string - required: - - type - - domain - - value - - reason - type: object - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - type: array - description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' - required: - - name - - apexName - - projectId - - verified - type: object + properties: + revoke: + description: Optional instructions for revoking and regenerating a automation bypass + type: object + properties: + secret: + description: Automation bypass to revoked + type: string + regenerate: + description: Whether or not a new automation bypass should be created after the provided secret is revoked + type: boolean + required: + - secret + - regenerate + generate: + description: Generate a new secret. If neither generate or revoke are provided, a new random secret will be generated. + type: object + properties: + secret: + description: Optional value of the secret to generate, don't send it for oauth2 tokens + type: string + pattern: ^[a-zA-Z0-9]{32}$ + note: + type: string + description: Note to be displayed in the UI for this bypass + maxLength: 100 + update: + description: Update an existing bypass + type: object + required: + - secret + properties: + secret: + description: Automation bypass to updated + type: string + isEnvVar: + type: boolean + description: Whether or not this bypass is set as the VERCEL_AUTOMATION_BYPASS_SECRET environment variable on deployments + note: + type: string + description: Note to be displayed in the UI for this bypass + maxLength: 100 + additionalProperties: false + required: true + /v1/projects/{project_id}/rollback/{deployment_id}: + post: + description: Allows users to rollback to a deployment. + operationId: requestRollback + security: + - bearerToken: [] + summary: Point production traffic to a previous production deployment by ID + tags: + - projects + responses: + '201': + description: '' '400': - description: |- - One of the provided values in the request query is invalid. - There is an existing TXT record on the domain verifying it for another project - The domain does not have a TXT record that attempts to verify the project domain - The TXT record on the domain does not match the expected challenge for the project domain - Project domain is not assigned to project + description: One of the provided values in the request query is invalid. '401': + description: The request is not authorized. + '402': description: '' '403': description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '422': + description: '' parameters: - - name: idOrName - description: The unique project identifier or the project name + - name: project_id in: path required: true schema: - example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB - description: The unique project identifier or the project name type: string - - name: domain - description: The domain name you want to verify + - name: deployment_id + description: The ID of the deployment to rollback *to* in: path required: true schema: - description: The domain name you want to verify type: string - example: example.com - - description: The Team identifier or slug to perform the request on behalf of. + description: The ID of the deployment to rollback *to* + - name: description + description: The reason for the rollback + in: query + required: false + schema: + type: string + description: The reason for the rollback + - description: The Team identifier to perform the request on behalf of. in: query name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id}/rollback/{deployment_id}/update-description: + patch: + description: Updates the reason for a rollback, without changing the rollback status itself. + operationId: updateProjectsByProjectIdRollbackByDeploymentIdUpdateDescription + security: [] + summary: Updates the description for a rollback + tags: + - projects + responses: + '200': + description: '' + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: project_id + in: path required: true schema: type: string - '/v9/projects/{idOrName}/env': - get: - description: Retrieve the environment variables for a given project by passing either the project `id` or `name` in the URL. - operationId: filterProjectEnvs + - name: deployment_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + description: + type: string + description: The reason for the rollback + /v1/projects/{project_id}/microfrontends: + patch: + description: Update the microfrontends settings for a project. + operationId: updateMicrofrontends security: - bearerToken: [] - summary: Retrieve the environment variables of a project by id or name + summary: Update the microfrontends settings tags: - projects responses: '200': - description: The list of environment variables for the given project + description: '' content: application/json: schema: - oneOf: - - properties: - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development + properties: + accountId: + type: string + creator: + properties: type: type: string enum: - - secret - - system - - encrypted - - plain - - sensitive - id: - type: string - key: - type: string - value: - type: string - configurationId: - nullable: true - type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true - type: string - gitBranch: - type: string - edgeConfigId: - nullable: true - type: string - edgeConfigTokenId: - nullable: true - type: string - contentHint: + - user + via: nullable: true oneOf: - properties: type: type: string enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string + - app + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object required: + - app - type - - storeId type: object + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. - properties: type: type: string enum: - - postgres-database - storeId: - type: string + - integration + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object required: + - integration - type - - storeId type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - system: - type: boolean + description: Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal. + user: + properties: + id: + type: string + required: + - id + type: object + app: + properties: + id: + type: string + description: The internal ID of the Vercel App backing this principal. + clientId: + type: string + description: The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used. + required: + - id + type: object + integration: + properties: + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - integrationId + type: object + required: + - type + - user + - via + - app + - integration type: object - - properties: - envs: - items: + alias: + items: + properties: + configuredBy: + nullable: true + type: string + enum: + - A + - CNAME + - dns-01 + - http + - null + configuredChangedAt: + nullable: true + type: number + createdAt: + nullable: true + type: number + deployment: + nullable: true properties: - target: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - type: array - - type: string + - type: number + - type: boolean enum: - - production - - preview - - development - - preview - - development - type: - type: string - enum: - - secret - - system - - encrypted - - plain - - sensitive - id: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true type: string - key: + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: type: string - value: + enum: + - canceled + - failed + - skipped + - succeeded + checksState: type: string - configurationId: - nullable: true + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: type: string createdAt: type: number - updatedAt: - type: number - createdBy: - nullable: true + createdIn: type: string - updatedBy: + creator: nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: type: string - gitBranch: - type: string - edgeConfigId: - nullable: true + forced: + type: boolean + enum: + - false + - true + name: type: string - edgeConfigTokenId: + meta: + additionalProperties: + type: string + type: object + monorepoManager: nullable: true type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - system: - type: boolean - type: object - type: array - pagination: - $ref: '#/components/schemas/Pagination' - required: - - envs - - pagination - type: object - - properties: - envs: - items: - properties: - target: - oneOf: - - items: + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: type: string - enum: - - production - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - type: + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: type: string enum: - - secret - - system - - encrypted - - plain - - sensitive - id: - type: string - key: - type: string - value: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: type: string - configurationId: - nullable: true + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: type: string - createdAt: - type: number - updatedAt: + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: type: number - createdBy: + target: nullable: true type: string - updatedBy: + teamId: nullable: true type: string - gitBranch: + type: type: string - edgeConfigId: - nullable: true + enum: + - LAMBDAS + url: type: string - edgeConfigTokenId: - nullable: true + userId: type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - system: + description: Present for user creators; omitted for app/integration/system creators. + withCache: type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url type: object - type: array - required: - - envs - type: object - description: The list of environment variables for the given project - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: idOrName - description: The unique project identifier or the project name - in: path - required: true - schema: - description: The unique project identifier or the project name - type: string - example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA - - name: gitBranch - description: 'If defined, the git branch of the environment variable to filter the results' - in: query - required: false - schema: - description: 'If defined, the git branch of the environment variable to filter the results' - type: string - maxLength: 250 - example: feature-1 - - name: decrypt - description: 'If true, the environment variable value will be decrypted' - in: query - required: false - schema: - description: 'If true, the environment variable value will be decrypted' - type: string - enum: - - 'true' - - 'false' - example: 'true' - deprecated: true - - name: source - description: The source that is calling the endpoint. - in: query - required: false - schema: - description: The source that is calling the endpoint. - type: string - example: 'vercel-cli:pull' - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - '/v1/projects/{idOrName}/env/{id}': - get: - description: Retrieve the environment variable for a given project. - operationId: getProjectEnv - security: - - bearerToken: [] - summary: Retrieve the decrypted value of an environment variable of a project by id - tags: - - projects - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - target: - oneOf: - - items: + domain: + type: string + environment: type: string enum: - - production - - preview - - development - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - type: - type: string + - production + gitBranch: + nullable: true + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + target: + type: string + enum: + - PREVIEW + - PRODUCTION + - STAGING + required: + - deployment + - domain + - environment + - target + type: object + type: array + analytics: + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - disabledAt + - enabledAt + - id + type: object + appliedCve55182Migration: + type: boolean + enum: + - false + - true + speedInsights: + properties: + id: + type: string + enabledAt: + type: number + disabledAt: + type: number + canceledAt: + type: number + hasData: + type: boolean + enum: + - false + - true + dataReceivedAt: + type: number + description: When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever". + paidAt: + type: number + required: + - id + type: object + autoExposeSystemEnvs: + type: boolean enum: - - secret - - system - - encrypted - - plain - - sensitive - id: - type: string - key: - type: string - value: + - false + - true + autoAssignCustomDomains: + type: boolean + enum: + - false + - true + autoAssignCustomDomainsUpdatedBy: type: string - configurationId: + buildCommand: nullable: true type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: + commandForIgnoringBuildStep: nullable: true type: string - updatedBy: + connectConfigurations: nullable: true - type: string - gitBranch: - type: string - edgeConfigId: + items: + properties: + envId: + oneOf: + - type: string + - type: string + enum: + - preview + - production + connectConfigurationId: + type: string + dc: + type: string + passive: + type: boolean + enum: + - false + - true + buildsEnabled: + type: boolean + enum: + - false + - true + aws: + properties: + subnetIds: + items: + type: string + type: array + securityGroupId: + type: string + required: + - subnetIds + type: object + createdAt: + type: number + updatedAt: + type: number + required: + - buildsEnabled + - connectConfigurationId + - createdAt + - envId + - passive + - updatedAt + type: object + type: array + connectConfigurationId: nullable: true type: string - edgeConfigTokenId: + connectBuildsEnabled: + type: boolean + enum: + - false + - true + passiveConnectConfigurationId: nullable: true type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: + createdAt: + type: number + customerSupportCodeVisibility: + type: boolean + enum: + - false + - true + crons: + properties: + enabledAt: + type: number + description: 'The time the feature was enabled for this project. Note: It enables automatically with the first Deployment that outputs cronjobs.' + disabledAt: + nullable: true + type: number + description: The time the feature was disabled for this project. + updatedAt: + type: number + deploymentId: + nullable: true + type: string + description: The ID of the Deployment from which the definitions originated. + definitions: + items: + properties: + host: + type: string + description: The hostname that should be used. + example: vercel.com + path: + type: string + description: The path that should be called for the cronjob. + example: /api/crons/sync-something?hello=world + schedule: + type: string + description: The cron expression. + example: 0 0 * * * + source: + type: string + enum: + - api + description: The origin of this definition. 'api' means created via the API. Undefined means it originated from a deployment (vercel.json). + description: + type: string + description: A human-readable description of what this cron job does. + hostInferred: + type: boolean + enum: + - false + - true + description: Whether the host was inferred from the production deployment URL rather than explicitly provided. + required: + - host + - path + - schedule + type: object + type: array + required: + - definitions + - deploymentId + - disabledAt + - enabledAt + - updatedAt + type: object + dataCache: + properties: + userDisabled: + type: boolean + enum: + - false + - true + storageSizeBytes: + nullable: true + type: number + unlimited: + type: boolean + enum: + - false + - true + required: + - userDisabled + type: object + deploymentExpiration: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects. + expiration: + properties: + expiresAt: + type: number + description: Unix ms timestamp when the project is scheduled to expire. + lockedAt: + type: number + description: Unix ms timestamp when the project was locked. + lockedBy: + type: string + description: userId of the actor that triggered the lock (system or admin). + required: + - expiresAt + - lockedAt + - lockedBy + type: object + devCommand: + nullable: true + type: string + directoryListing: type: boolean - description: Whether `value` is decrypted. - required: - - type - - key - - value - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: idOrName - description: The unique project identifier or the project name - in: path - required: true - schema: - description: The unique project identifier or the project name - type: string - example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA - - name: id - description: The unique ID for the environment variable to get the decrypted value. - in: path - required: true - schema: - description: The unique ID for the environment variable to get the decrypted value. - type: string - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - '/v10/projects/{idOrName}/env': - post: - description: 'Create one ore more environment variables for a project by passing its `key`, `value`, `type` and `target` and by specifying the project by either passing the project `id` or `name` in the URL.' - operationId: createProjectEnv - security: - - bearerToken: [] - summary: Create one or more environment variables - tags: - - projects - responses: - '201': - description: The environment variable was created successfully - content: - application/json: - schema: - properties: - created: - oneOf: - - properties: - target: - oneOf: - - items: + enum: + - false + - true + installCommand: + nullable: true + type: string + env: + items: + properties: + target: + oneOf: + - items: + type: string + enum: + - development + - development + - preview + - preview + - production + type: array + - type: string + enum: + - development + - development + - preview + - preview + - production + type: + type: string + enum: + - encrypted + - plain + - secret + - sensitive + - system + sunsetSecretId: + type: string + description: This is used to identify variables that have been migrated from type secret to sensitive. + legacyValue: + type: string + description: Legacy now-encryption ciphertext, present after migration swaps value/vsmValue + decrypted: + type: boolean + enum: + - false + - true + value: + type: string + vsmValue: + type: string + id: + type: string + key: + type: string + configurationId: + nullable: true + type: string + createdAt: + type: number + updatedAt: + type: number + createdBy: + nullable: true + type: string + updatedBy: + nullable: true + type: string + gitBranch: + type: string + visibility: + type: string + enum: + - config + - secret + description: User-facing config/secret model. When set, authoritative for new code paths when the env-var-config-secret-ui flag is enabled. Legacy rows omit this field; legacy rows omit it and callers fall back to existing `type` behavior. + edgeConfigId: + nullable: true + type: string + edgeConfigTokenId: + nullable: true + type: string + contentHint: + nullable: true + oneOf: + - properties: + type: + type: string + enum: + - redis-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - redis-rest-api-read-only-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-read-write-token + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-store-id + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - blob-webhook-public-key + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-non-pooling + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: type: string enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: - type: string - enum: - - system - - secret - - encrypted - - plain - - sensitive - id: - type: string - key: - type: string - value: - type: string - configurationId: - nullable: true - type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true + - postgres-prisma-url + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-user + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-host + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-password + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-database + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - postgres-url-no-ssl + storeId: + type: string + required: + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - integration-store-secret + storeId: + type: string + integrationId: + type: string + integrationProductId: + type: string + integrationConfigurationId: + type: string + required: + - integrationConfigurationId + - integrationId + - integrationProductId + - storeId + - type + type: object + - properties: + type: + type: string + enum: + - flags-connection-string + projectId: + type: string + required: + - projectId + - type + type: object + internalContentHint: + nullable: true + properties: + type: + type: string + enum: + - flags-secret + encryptedValue: + type: string + description: Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda. + required: + - encryptedValue + - type + type: object + description: Similar to `contentHints`, but should not be exposed to the user. + comment: + type: string + customEnvironmentIds: + items: type: string - gitBranch: + type: array + required: + - key + - type + - value + type: object + type: array + customEnvironments: + items: + properties: + id: + type: string + description: 'Unique identifier for the custom environment (format: env_*)' + slug: + type: string + description: URL-friendly name of the environment + type: + type: string + enum: + - development + - preview + - production + description: The type of environment (production, preview, or development) + description: + type: string + description: Optional description of the environment's purpose + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + description: Configuration for matching git branches to this environment + domains: + items: + properties: + name: + type: string + apexName: + type: string + projectId: + type: string + redirect: + nullable: true + type: string + redirectStatusCode: + nullable: true + type: number + enum: + - 301 + - 302 + - 307 + - 308 + - null + gitBranch: + nullable: true + type: string + customEnvironmentId: + nullable: true + type: string + updatedAt: + type: number + createdAt: + type: number + verified: + type: boolean + enum: + - false + - true + description: '`true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.' + verification: + items: + properties: + type: + type: string + domain: + type: string + value: + type: string + reason: + type: string + required: + - domain + - reason + - type + - value + type: object + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + type: array + description: 'A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.' + required: + - apexName + - name + - projectId + - verified + type: object + description: List of domains associated with this environment + type: array + description: List of domains associated with this environment + currentDeploymentAliases: + items: type: string - edgeConfigId: - nullable: true + type: array + description: List of aliases for the current deployment + createdAt: + type: number + description: Timestamp when the environment was created + updatedAt: + type: number + description: Timestamp when the environment was last updated + required: + - createdAt + - id + - slug + - type + - updatedAt + type: object + description: Internal representation of a custom environment with all required properties + type: array + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + services: + items: + properties: + serviceName: + type: string + description: Service name from the deployment (Service.name). + serviceType: + type: string + enum: + - cron + - job + - web + - worker + description: Service kind (Service.type). Omitted for schemas that do not define one. + framework: + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + description: Framework slug, when the service has one (omitted otherwise). + runtime: + type: string + description: Generic runtime, e.g. 'node' | 'python' | 'go' | 'ruby' | 'rust' (Service.runtime). Omitted for static builds. + required: + - serviceName + type: object + type: array + gitForkProtection: + type: boolean + enum: + - false + - true + gitLFS: + type: boolean + enum: + - false + - true + id: + type: string + ipBuckets: + items: + properties: + bucket: + type: string + default: + type: boolean + enum: + - false + - true + supportUntil: + type: number + required: + - bucket + type: object + type: array + jobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + typecheck: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + mfe-config-present: + properties: + targets: + items: + type: string + type: array + required: + - targets + type: object + type: object + latestDeployments: + items: + properties: + id: + type: string + alias: + items: type: string - edgeConfigTokenId: - nullable: true + type: array + aliasAssigned: + nullable: true + oneOf: + - type: number + - type: boolean + enum: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - system: - type: boolean - type: object - - items: + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: + type: string + createdAt: + type: number + createdIn: + type: string + creator: + nullable: true properties: - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: + email: type: string - enum: - - system - - secret - - encrypted - - plain - - sensitive - id: + githubLogin: type: string - key: + gitlabLogin: type: string - value: + uid: type: string - configurationId: - nullable: true + username: type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: - nullable: true + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: + type: string + forced: + type: boolean + enum: + - false + - true + name: + type: string + meta: + additionalProperties: + type: string + type: object + monorepoManager: + nullable: true + type: string + oidcTokenClaims: + properties: + iss: type: string - updatedBy: - nullable: true + sub: type: string - gitBranch: + scope: type: string - edgeConfigId: - nullable: true + aud: type: string - edgeConfigTokenId: - nullable: true + owner: type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - system: - type: boolean - type: object - type: array - failed: - items: - properties: - error: - properties: - code: + owner_id: type: string - message: + project: type: string - key: + project_id: type: string - envVarId: + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: + type: number + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: + type: number + target: + nullable: true + type: string + teamId: + nullable: true + type: string + type: + type: string + enum: + - LAMBDAS + url: + type: string + userId: + type: string + description: Present for user creators; omitted for app/integration/system creators. + withCache: + type: boolean + enum: + - false + - true + required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState + - type + - url + type: object + type: array + link: + properties: + org: + type: string + repoOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. + repo: + type: string + repoId: + type: number + type: + type: string + enum: + - github + createdAt: + type: number + deployHooks: + items: + properties: + createdAt: + type: number + id: type: string - envVarKey: + name: type: string - action: + ref: type: string - link: + url: type: string + required: + - id + - name + - ref + - url + type: object + type: array + gitCredentialId: + type: string + updatedAt: + type: number + sourceless: + type: boolean + enum: + - false + - true + productionBranch: + type: string + host: + type: string + projectId: + type: string + projectName: + type: string + projectNameWithNamespace: + type: string + projectNamespace: + type: string + projectOwnerId: + type: number + description: A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels). + projectUrl: + type: string + name: + type: string + slug: + type: string + owner: + type: string + uuid: + type: string + workspaceUuid: + type: string + ownerId: + type: string + description: Origin namespace id (`ns_…`) of the owner. + required: + - deployHooks + - gitCredentialId + - org + - productionBranch + - type + - host + - projectId + - projectName + - projectNameWithNamespace + - projectNamespace + - projectUrl + - name + - owner + - slug + - uuid + - workspaceUuid + - repo + - repoId + - ownerId + type: object + blobs: + properties: + isDefaultApp: + type: boolean + enum: + - false + - true + description: Marks the team-level, Vercel-managed default blob project (`vercel-blob-default-project`) that orphan blob stores are scoped to when connected without an explicit project. Set only by internal storage flows and immutable after creation — guards rely on it to protect the connected stores from being lost when the project is deleted or transferred. + type: object + microfrontends: + properties: + isDefaultApp: + type: boolean + enum: + - true + updatedAt: + type: number + description: Timestamp when the microfrontends settings were last updated. + groupIds: + type: array + items: + type: string + minItems: 1 + description: The group IDs of microfrontends that this project belongs to. Each microfrontend project must belong to a microfrontends group that is the set of microfrontends that are used together. + enabled: + type: boolean + enum: + - true + description: Whether microfrontends are enabled for this project. + defaultRoute: + type: string + description: A path that is used to take screenshots and as the default path in preview links when a domain for this microfrontend is shown in the UI. Includes the leading slash, e.g. `/docs` + freeProjectForLegacyLimits: + type: boolean + enum: + - false + - true + description: Whether the project was part of the legacy limits for hobby and pro-trial before billing was added. This field is only set when the team is upgraded to a paid plan and we are backfilling the subscription status. We cap the subscription to 2 projects and set this field for the 3rd project. When this field is set, the project is not charged for and we do not call any billing APIs for this project. + routeObservabilityToThisProject: + type: boolean + enum: + - false + - true + description: Whether observability data should be routed to this microfrontend project or a root project. + doNotRouteWithMicrofrontendsRouting: + type: boolean + enum: + - false + - true + description: Whether to add microfrontends routing to aliases. This means domains in this project will route as a microfrontend. + required: + - enabled + - groupIds + - isDefaultApp + - updatedAt + type: object + name: + type: string + nodeVersion: + type: string + enum: + - 10.x + - 12.x + - 14.x + - 16.x + - 18.x + - 20.x + - 22.x + - 24.x + - 8.10.x + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: value: - oneOf: - - type: string - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - gitBranch: - type: string - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - project: type: string required: - - code - - message + - value type: object - required: - - error - type: object - type: array - required: - - created - - failed - type: object - '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. - '401': - description: '' - '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated - '403': - description: |- - You do not have permission to access this resource. - The environment variable cannot be created because it already exists - Additional permissions are required to create production environment variables - '409': - description: The project is being transfered and creating an environment variable is not possible - parameters: - - name: idOrName - description: The unique project identifier or the project name - in: path - required: true - schema: - description: The unique project identifier or the project name - type: string - example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA - - name: upsert - description: Allow override of environment variable if it already exists - in: query - required: false - schema: - description: Allow override of environment variable if it already exists - type: string - example: 'true' - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - oneOf: - - type: object - required: - - key - - value - - type - - target - properties: - key: - description: The name of the environment variable - type: string - example: API_URL - value: - description: The value of the environment variable - type: string - example: 'https://api.vercel.com' - type: - description: The type of environment variable - type: string - enum: - - system - - secret - - encrypted - - plain - - sensitive - example: plain - target: - description: The target environment of the environment variable - type: array - items: + type: array + required: + - paths + type: object + outputDirectory: + nullable: true + type: string + passwordProtection: + nullable: true + type: string + description: (opaque JSON object) + passport: + nullable: true + properties: + deploymentType: + type: string enum: - - production + - all + - all_except_custom_domains - preview - - development - example: - - production - - preview - gitBranch: - description: The git branch of the environment variable - type: string - maxLength: 250 - example: feature-1 - nullable: true - - type: array - items: + - prod_deployment_urls_and_all_previews + connectorId: + type: string + required: + - connectorId + - deploymentType + type: object + protectionConfig: + properties: + sandboxUrls: + properties: + inheritDeploymentProtection: + type: boolean + enum: + - false + - true + type: object + type: object + sandbox: + properties: + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + failoverRegions: + items: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + type: array + type: object + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + resourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string + type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true type: object required: - - key - - value - - type - - target + - functionDefaultRegions + rollbackDescription: properties: - key: - description: The name of the environment variable + userId: type: string - example: API_URL - value: - description: The value of the environment variable + description: The user who rolled back the project. + username: type: string - example: 'https://api.vercel.com' - type: - description: The type of environment variable + description: The username of the user who rolled back the project. + description: type: string - enum: - - system - - secret - - encrypted - - plain - - sensitive - example: plain + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + rollingRelease: + nullable: true + properties: target: - description: The target environment of the environment variable + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: + items: + properties: + type: + type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 + required: + - type + type: object + description: The checks to evaluate. An empty array means nothing is evaluated. + type: array + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: + type: number + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: + type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. + required: + - action + - checks + - dryRun + - enabled + type: object + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + defaultResourceConfig: + properties: + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + fluid: + type: boolean + enum: + - false + - true + functionDefaultRegions: + items: + type: string type: array + functionDefaultTimeout: + type: number + functionDefaultMemoryType: + type: string + enum: + - performance + - performance_xl + - standard + - standard_legacy + functionZeroConfigFailover: + type: boolean + enum: + - false + - true + buildMachineType: + type: string + enum: + - basic + - enhanced + - standard + - turbo + buildMachineSelection: + type: string + enum: + - elastic + - fixed + buildMachineElasticLastUpdated: + type: number + buildMachineElasticReason: + type: string + enum: + - basic-floor + - build-timeout-failure + - enospc-failure + - enterprise-floor + - high-peak-disk + - high-peak-memory + - long-build-duration + - oom-failure + - short-build-duration + - sustained-high-cpu + isNSNBDisabled: + type: boolean + enum: + - false + - true + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + enableFunctionsBeta: + type: boolean + enum: + - false + - true + type: object + required: + - functionDefaultRegions + rootDirectory: + nullable: true + type: string + serverlessFunctionZeroConfigFailover: + type: boolean + enum: + - false + - true + skewProtectionBoundaryAt: + type: number + skewProtectionMaxAge: + type: number + skewProtectionAllowedDomains: + items: + type: string + type: array + skipGitConnectDuringLink: + type: boolean + enum: + - false + - true + staticIps: + properties: + builds: + type: boolean + enum: + - false + - true + enabled: + type: boolean + enum: + - false + - true + regions: items: - enum: - - production - - preview - - development - example: - - production + type: string + type: array + required: + - builds + - enabled + - regions + type: object + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + enum: + - all + - all_except_custom_domains - preview - gitBranch: - description: The git branch of the environment variable + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: + nullable: true type: string - maxLength: 250 - example: feature-1 + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: nullable: true - '/v9/projects/{idOrName}/env/{id}': - delete: - description: Delete a specific environment variable for a given project by passing the environment variable identifier and either passing the project `id` or `name` in the URL. - operationId: removeProjectEnv - security: - - bearerToken: [] - summary: Remove an environment variable - tags: - - projects - responses: - '200': - description: The environment variable was successfully removed - content: - application/json: - schema: - oneOf: - - items: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + required: + - deploymentType + type: object + targets: + additionalProperties: + nullable: true properties: - target: + id: + type: string + alias: + items: + type: string + type: array + aliasAssigned: + nullable: true oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - - type: string + - type: number + - type: boolean enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: + - false + - true + aliasError: + nullable: true + properties: + code: + type: string + message: + type: string + required: + - code + - message + type: object + aliasFinal: + nullable: true + type: string + automaticAliases: + items: + type: string + type: array + branchMatcher: + properties: + type: + type: string + enum: + - endsWith + - equals + - startsWith + description: The type of matching to perform + pattern: + type: string + description: The pattern to match against branch names + required: + - pattern + - type + type: object + buildingAt: + type: number + builds: + items: + properties: + use: + type: string + src: + type: string + dest: + type: string + required: + - use + type: object + type: array + checksConclusion: + type: string + enum: + - canceled + - failed + - skipped + - succeeded + checksState: + type: string + enum: + - completed + - registered + - running + connectBuildsEnabled: + type: boolean + enum: + - false + - true + connectConfigurationId: type: string - enum: - - system - - encrypted - - plain - - sensitive - - secret - id: + createdAt: + type: number + createdIn: type: string - key: + creator: + nullable: true + properties: + email: + type: string + githubLogin: + type: string + gitlabLogin: + type: string + uid: + type: string + username: + type: string + required: + - email + - uid + - username + type: object + deletedAt: + type: number + deploymentHostname: type: string - value: + forced: + type: boolean + enum: + - false + - true + name: type: string - configurationId: + meta: + additionalProperties: + type: string + type: object + monorepoManager: nullable: true type: string - createdAt: + oidcTokenClaims: + properties: + iss: + type: string + sub: + type: string + scope: + type: string + aud: + type: string + owner: + type: string + owner_id: + type: string + project: + type: string + project_id: + type: string + environment: + type: string + custom_environment_id: + type: string + mfe_group_ids: + items: + type: string + type: array + plan: + type: string + required: + - aud + - environment + - iss + - owner + - owner_id + - project + - project_id + - scope + - sub + type: object + plan: + type: string + enum: + - enterprise + - hobby + - pro + previewCommentsEnabled: + type: boolean + enum: + - false + - true + description: Whether or not preview comments are enabled for the deployment + example: false + private: + type: boolean + enum: + - false + - true + readyAt: type: number - updatedAt: + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + readySubstate: + type: string + enum: + - PROMOTED + - ROLLING + - STAGED + requestedAt: type: number - createdBy: + target: nullable: true type: string - updatedBy: + teamId: nullable: true type: string - gitBranch: + type: type: string - edgeConfigId: - nullable: true + enum: + - LAMBDAS + url: type: string - edgeConfigTokenId: - nullable: true + userId: type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: + description: Present for user creators; omitted for app/integration/system creators. + withCache: type: boolean - description: Whether `value` is decrypted. + enum: + - false + - true required: + - createdAt + - createdIn + - creator + - deploymentHostname + - id + - name + - plan + - private + - readyState - type - - key - - value + - url type: object - type: array - - properties: - system: - type: boolean - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: - type: string - enum: - - system - - encrypted - - plain - - sensitive - - secret - id: + type: object + transferCompletedAt: + type: number + transferStartedAt: + type: number + transferToAccountId: + type: string + transferredFromAccountId: + type: string + updatedAt: + type: number + live: + type: boolean + enum: + - false + - true + enablePreviewFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null + enableProductionFeedback: + nullable: true + type: boolean + enum: + - false + - true + - null + permissions: + properties: + oauth2Connection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + user: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userMfaConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userPreference: + items: + $ref: '#/components/schemas/ACLAction' + type: array + userSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAuthn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + accessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + agent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyBypassAll: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeySpendAttribution: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayApiKeyZdrExemption: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayCredits: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayPrivateModels: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayGuardrails: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewaySettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscripts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayTranscriptsSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aiGatewayVirtualModelConfigs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alerts: + items: + $ref: '#/components/schemas/ACLAction' + type: array + alertRules: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyAiGateway: + items: + $ref: '#/components/schemas/ACLAction' + type: array + apiKeyOwnedBySelf: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oauth2Application: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAppInstallationRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + auditLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + automation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingAddress: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInformation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceEmailRecipient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingInvoiceLanguage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingPurchaseOrder: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingRefund: + items: + $ref: '#/components/schemas/ACLAction' + type: array + billingTaxId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blob: + items: + $ref: '#/components/schemas/ACLAction' + type: array + blobStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + budget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cacheArtifactUsageEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeChecks: + items: + $ref: '#/components/schemas/ACLAction' + type: array + codeOwners: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciInvocations: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ciLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + concurrentBuilds: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connect: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClient: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexClientProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexContact: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connexToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachineDefault: + items: + $ref: '#/components/schemas/ACLAction' + type: array + cursorOriginInstallation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheBillingSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + defaultDeploymentProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAcceptDelegation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainAuthCodes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCertificate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainRecord: + items: + $ref: '#/components/schemas/ACLAction' + type: array + domainTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + drain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigSchema: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeConfigToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + endpointVerification: + items: + $ref: '#/components/schemas/ACLAction' + type: array + event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + fileUpload: + items: + $ref: '#/components/schemas/ACLAction' + type: array + flagsExplorerSubscription: + items: + $ref: '#/components/schemas/ACLAction' + type: array + gitRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + imageOptimizationNewPrice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationProjects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationRole: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationConfigurationTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationDeploymentAction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationLog: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResource: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceReplCommand: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationResourceSecrets: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationSSOSession: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationVercelConfigurationOverride: + items: + $ref: '#/components/schemas/ACLAction' + type: array + integrationPullRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ipBlocking: + items: + $ref: '#/components/schemas/ACLAction' + type: array + jobGlobal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsIssuer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + kmsProjectGrant: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logDrain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceBillingData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationEdgeConfigData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceExperimentationItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceFlexCommit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInstallationMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceInvoice: + items: + $ref: '#/components/schemas/ACLAction' + type: array + marketplaceSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + Monitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringChart: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringQuery: + items: + $ref: '#/components/schemas/ACLAction' + type: array + monitoringSettings: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationCustomerBudget: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDeploymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainExpire: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainMoved: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainPurchase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainRenewal: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationDomainUnverified: + items: + $ref: '#/components/schemas/ACLAction' + type: array + NotificationMonitoringAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPaymentFailed: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationPreferences: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationStatementOfReasons: + items: + $ref: '#/components/schemas/ACLAction' + type: array + notificationUsageAlert: + items: + $ref: '#/components/schemas/ACLAction' + type: array + oidcFederationPolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityFunnel: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityNotebook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + openTelemetryEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + ownEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organization: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organizationDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + organizationTeam: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtectionInvoiceItem: + items: + $ref: '#/components/schemas/ACLAction' + type: array + paymentMethod: + items: + $ref: '#/components/schemas/ACLAction' + type: array + permissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgres: + items: + $ref: '#/components/schemas/ACLAction' + type: array + postgresStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + previewDeploymentSuffix: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateCloudAccount: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferIn: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + proTrialOnboarding: + items: + $ref: '#/components/schemas/ACLAction' + type: array + rateLimit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redis: + items: + $ref: '#/components/schemas/ACLAction' + type: array + redisStoreTokenSet: + items: + $ref: '#/components/schemas/ACLAction' + type: array + remoteCaching: + items: + $ref: '#/components/schemas/ACLAction' + type: array + repository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + samlConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + secret: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sensitiveEnvironmentVariablePolicy: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + space: + items: + $ref: '#/components/schemas/ACLAction' + type: array + spaceRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeIsLocked: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeTokenSetSensitive: + items: + $ref: '#/components/schemas/ACLAction' + type: array + storeTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + supportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + team: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamAccessRequest: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamFellowMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamGitExclusivity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInvite: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteCode: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamInviteLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamJoin: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamMemberMfaStatus: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamMicrofrontends: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembership: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamOwnMembershipDisconnectSAML: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamSudo: + items: + $ref: '#/components/schemas/ACLAction' + type: array + teamTokenInvalidation: + items: + $ref: '#/components/schemas/ACLAction' + type: array + token: + items: + $ref: '#/components/schemas/ACLAction' + type: array + toolbarComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + usageCycle: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vcrRepository: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vpcPeeringConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalyticsPlan: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webhook-event: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProject: + items: + $ref: '#/components/schemas/ACLAction' + type: array + aliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + bulkRedirects: + items: + $ref: '#/components/schemas/ACLAction' + type: array + buildMachine: + items: + $ref: '#/components/schemas/ACLAction' + type: array + connectConfigurationLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + dataCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deployment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentBuildLogs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentCheckReRunFromProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentProductionGit: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPreview: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPrivate: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentPromote: + items: + $ref: '#/components/schemas/ACLAction' + type: array + deploymentRollback: + items: + $ref: '#/components/schemas/ACLAction' + type: array + edgeCacheNamespace: + items: + $ref: '#/components/schemas/ACLAction' + type: array + environments: + items: + $ref: '#/components/schemas/ACLAction' + type: array + job: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logs: + items: + $ref: '#/components/schemas/ACLAction' + type: array + logsPreset: + items: + $ref: '#/components/schemas/ACLAction' + type: array + observabilityData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + onDemandBuild: + items: + $ref: '#/components/schemas/ACLAction' + type: array + onDemandConcurrency: + items: + $ref: '#/components/schemas/ACLAction' + type: array + optionsAllowlist: + items: + $ref: '#/components/schemas/ACLAction' + type: array + passwordProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + privateLinkEndpoint: + items: + $ref: '#/components/schemas/ACLAction' + type: array + productionAliasProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + productionShareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + project: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAccessGroup: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsSampling: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectAnalyticsUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectCheck: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectCheckRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentExpiration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentHook: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDeploymentProtectionStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomain: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainCheckConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainMove: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectDomainVerify: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEvent: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVars: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectEnvVarsUnownedByIntegration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlags: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsProduction: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFlagsSdkKey: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectFromV0: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectId: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectIntegrationConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMember: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectMonitoring: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectOIDCToken: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectPermissions: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProductionBranch: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectProtectionBypass: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRollingRelease: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectRoutes: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCase: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectSupportCaseComment: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTier: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransfer: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectTransferOut: + items: + $ref: '#/components/schemas/ACLAction' + type: array + projectUsage: + items: + $ref: '#/components/schemas/ACLAction' + type: array + pageIntegrity: + items: + $ref: '#/components/schemas/ACLAction' + type: array + seawallConfig: + items: + $ref: '#/components/schemas/ACLAction' + type: array + securityPlusConfiguration: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLink: + items: + $ref: '#/components/schemas/ACLAction' + type: array + shareableLinkStrict: + items: + $ref: '#/components/schemas/ACLAction' + type: array + sharedEnvVarConnection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + skewProtection: + items: + $ref: '#/components/schemas/ACLAction' + type: array + analytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedIps: + items: + $ref: '#/components/schemas/ACLAction' + type: array + trustedSources: + items: + $ref: '#/components/schemas/ACLAction' + type: array + v0Chat: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelAuth: + items: + $ref: '#/components/schemas/ACLAction' + type: array + vercelRun: + items: + $ref: '#/components/schemas/ACLAction' + type: array + webAnalytics: + items: + $ref: '#/components/schemas/ACLAction' + type: array + workflowRunData: + items: + $ref: '#/components/schemas/ACLAction' + type: array + type: object + lastRollbackTarget: + nullable: true + type: string + description: (opaque JSON object) + lastAliasRequest: + nullable: true + properties: + fromDeploymentId: + nullable: true type: string - key: + toDeploymentId: type: string - value: + fromRollingReleaseId: type: string - configurationId: - nullable: true + description: If rolling back from a rolling release, fromDeploymentId captures the "base" of that rolling release, and fromRollingReleaseId captures the "target" of that rolling release. + jobStatus: type: string - createdAt: - type: number - updatedAt: + enum: + - failed + - in-progress + - pending + - skipped + - succeeded + requestedAt: type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true - type: string - gitBranch: + type: type: string - edgeConfigId: - nullable: true + enum: + - promote + - rollback + required: + - fromDeploymentId + - jobStatus + - requestedAt + - toDeploymentId + - type + type: object + protectionBypass: + additionalProperties: + oneOf: + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - integration-automation-bypass + integrationId: + type: string + configurationId: + type: string + required: + - configurationId + - createdAt + - createdBy + - integrationId + - scope + type: object + - properties: + createdAt: + type: number + createdBy: + type: string + scope: + type: string + enum: + - automation-bypass + isEnvVar: + type: boolean + enum: + - false + - true + description: When there was only one bypass, it was automatically set as an env var on deployments. With multiple bypasses, there is always one bypass that is selected as the default, and gets set as an env var on deployments. As this is a new field, undefined means that the bypass is the env var. If there are any automation bypasses, exactly one must be the env var. + note: + type: string + description: Optional note about the bypass to be displayed in the UI + required: + - createdAt + - createdBy + - scope + type: object + type: object + hasActiveBranches: + type: boolean + enum: + - false + - true + trustedIps: + nullable: true + properties: + deploymentType: type: string - edgeConfigTokenId: - nullable: true + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + addresses: + items: + properties: + value: + type: string + note: + type: string + required: + - value + type: object + type: array + protectionMode: type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: + enum: + - additional + - exclusive + required: + - addresses + - deploymentType + - protectionMode + type: object + trustedSources: + nullable: true + properties: + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + description: Allow same-team Vercel CI access to preview deployments built from the CI run's repository, using the deployment source rather than the current project repository link. Defaults to enabled when not stored; omitted or null Trusted Sources updates preserve the stored value. + projects: + additionalProperties: + properties: + label: + type: string + customAllow: + items: + properties: + from: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The source envs on the trusted project that are allowed to access `to`. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The source envs on the trusted project that are allowed to access `to`. + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + required: + - from + - to + type: object + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: array + description: Optional overrides for the default same-env-by-slug matching. Provide explicit rules to allow cross-env access or presets. + type: object + type: object + oidcProviders: + additionalProperties: + items: + properties: + to: + oneOf: + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - slugs + type: object + description: The target envs on the current project that may be accessed. + - properties: + slugs: + items: + type: string + type: array + description: System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project. + preset: + type: string + enum: + - all-custom + required: + - preset + type: object + description: The target envs on the current project that may be accessed. + label: type: string + claims: + additionalProperties: + items: + type: string + type: array + type: object required: - - type - - storeId + - claims + - to type: object - decrypted: + type: array + type: object + type: object + gitComments: + properties: + onPullRequest: + type: boolean + enum: + - false + - true + description: Whether the Vercel bot should comment on PRs + onCommit: type: boolean - description: Whether `value` is decrypted. + enum: + - false + - true + description: Whether the Vercel bot should comment on commits required: - - type - - key - - value + - onCommit + - onPullRequest type: object - - properties: - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - - preview - - development - type: + gitProviderOptions: + properties: + createDeployments: type: string enum: - - system - - encrypted - - plain - - sensitive - - secret + - disabled + - enabled + description: 'Whether the Vercel bot should automatically create GitHub deployments https://docs.github.com/en/rest/deployments/deployments#about-deployments NOTE: repository-dispatch events should be used instead' + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: 'Whether the Vercel bot should not automatically create GitHub repository-dispatch events on deployment events. https://vercel.com/docs/git/vercel-for-github#repository-dispatch-events - `true`: disable repository-dispatch events for this project (explicit override of the team setting). - `false`: enable repository-dispatch events for this project (explicit override of the team setting). - absent: inherit from `team.disableRepositoryDispatchEvents`.' + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: 'Whether the project requires commits to be signed & verified before deployments will be created. - `true`: require verified commits for this project (explicit override of the team setting). - `false`: do not require verified commits (explicit override of the team setting). - absent: inherit from `team.requireVerifiedCommits`.' + gitCommitStatus: + type: boolean + enum: + - false + - true + description: Whether Vercel should post commit statuses for this project. When omitted, commit statuses remain enabled. + consolidatedGitCommitStatus: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether consolidated commit status is enabled. + propagateFailures: + type: boolean + enum: + - false + - true + description: Whether to propagate individual deployment failures to the consolidated status. + required: + - enabled + - propagateFailures + type: object + description: Configuration for consolidated git commit status reporting. When enabled, Vercel will post a single consolidated commit status instead of individual statuses for each deployment. + required: + - createDeployments + type: object + paused: + type: boolean + enum: + - false + - true + concurrencyBucketName: + type: string + webAnalytics: + properties: id: type: string - key: - type: string - value: - type: string - configurationId: - nullable: true - type: string - createdAt: + disabledAt: type: number - updatedAt: + canceledAt: type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true - type: string - gitBranch: - type: string - edgeConfigId: - nullable: true - type: string - edgeConfigTokenId: + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + security: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + firewallEnabled: + type: boolean + enum: + - false + - true + firewallUpdatedAt: + type: number + attackModeActiveUntil: nullable: true - type: string - contentHint: + type: number + firewallConfigVersion: + type: number + rulesets: + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + firewallSeawallEnabled: + type: boolean + enum: + - false + - true + ja3Enabled: + type: boolean + enum: + - false + - true + ja4Enabled: + type: boolean + enum: + - false + - true + firewallBypassIps: + items: + type: string + type: array + managedRules: nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string + properties: + vercel_ruleset: + properties: + active: + type: boolean enum: - - postgres-prisma-url - storeId: + - false + - true + action: type: string + enum: + - challenge + - deny + - log required: - - type - - storeId + - active type: object - - properties: - type: - type: string + traffic_sources: + properties: + active: + type: boolean enum: - - postgres-user - storeId: + - false + - true + action: type: string + enum: + - challenge + - deny + - log required: - - type - - storeId + - active type: object - - properties: - type: - type: string + bot_filter: + properties: + active: + type: boolean enum: - - postgres-host - storeId: + - false + - true + action: type: string + enum: + - challenge + - deny + - log required: - - type - - storeId + - active type: object - - properties: - type: - type: string + ai_bots: + properties: + active: + type: boolean enum: - - postgres-password - storeId: + - false + - true + action: type: string + enum: + - challenge + - deny + - log required: - - type - - storeId + - active type: object - - properties: - type: - type: string + owasp: + properties: + active: + type: boolean enum: - - postgres-database - storeId: + - false + - true + action: type: string + enum: + - challenge + - deny + - log required: - - type - - storeId + - active type: object - decrypted: + required: + - ai_bots + - bot_filter + - owasp + - traffic_sources + - vercel_ruleset + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + log_headers: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + securityPlus: + type: boolean + enum: + - false + - true + securityPlusMetadata: + properties: + updatedAt: + type: number + firstEnabledAt: + type: number + description: Timestamp when the feature was first enabled. Never changes after initial enablement. + required: + - updatedAt + type: object + pageIntegrityEnabled: + type: boolean + enum: + - false + - true + description: Whether Page Integrity is enabled for this project. Used by the metadata service to gate DynamoDB lookups against the page-integrity-inventory table. + type: object + oidcTokenConfig: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether or not to generate OpenID Connect JSON Web Tokens. + issuerMode: + type: string + enum: + - global + - team + description: '- team: `https://oidc.vercel.com/[team_slug]` - global: `https://oidc.vercel.com`' + type: object + deploymentPolicy: + nullable: true + properties: + gitSources: + nullable: true + items: + properties: + sources: + items: + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: + type: string + required: + - org + - provider + type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + deploymentSources: + nullable: true + items: + properties: + sources: + items: + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array + required: + - enabled + - environments + - sources + type: object + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + type: object + description: Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident. + tier: + type: string + enum: + - advanced + - critical + - priority + usageStatus: + properties: + kind: + type: string + enum: + - flat + description: Billing mode. Always 'flat' for flat-rate projects. + exceededAllowanceUntil: + type: number + description: Timestamp until which the project has exceeded its CDN allowance. + bypassThrottleUntil: + type: number + description: Timestamp until which throttling is bypassed (project pays list rates for overage). + throttled: + type: boolean + enum: + - false + - true + description: Per-project throttle, set explicitly for this project (e.g. via the per-project Flat Rate CDN endpoint). + teamThrottled: + type: boolean + enum: + - false + - true + description: Synced from `team.billing.usageStatus.throttled`. When `true`, the team has throttled all of its projects regardless of `throttled`. The effective throttle the CDN enforces is `throttled || teamThrottled`. + required: + - kind + type: object + features: + properties: + webAnalytics: + type: boolean + enum: + - false + - true + type: object + v0: + type: boolean + enum: + - false + - true + v0Created: + type: boolean + enum: + - false + - true + abuse: + properties: + scanner: + type: string + history: + items: + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object + type: array + updatedAt: + type: number + block: + properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + blockHistory: + items: + oneOf: + - properties: + action: + type: string + enum: + - blocked + reason: + type: string + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - statusCode + type: object + - properties: + action: + type: string + enum: + - unblocked + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + type: object + - properties: + action: + type: string + enum: + - route-blocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + reason: + type: string + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + - route + type: object + - properties: + action: + type: string + enum: + - route-unblocked + route: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + statusCode: + type: number + createdAt: + type: number + caseId: + type: string + actor: + type: string + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + isCascading: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - route + type: object + type: array + interstitial: type: boolean - description: Whether `value` is decrypted. + enum: + - false + - true + interstitialHistory: + items: + properties: + action: + type: string + enum: + - add-deployment-interstitial + - add-project-interstitial + - remove-deployment-interstitial + - remove-project-interstitial + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + comment: + type: string + required: + - action + - createdAt + type: object + type: array required: - - type - - key - - value + - history + - updatedAt + type: object + internalRoutes: + items: + oneOf: + - properties: + src: + type: string + status: + type: number + expiry: + type: number + required: + - src + - status + type: object + - properties: + has: + items: + oneOf: + - properties: + type: + type: string + enum: + - header + key: + type: string + enum: + - x-vercel-ip-country + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - key + - type + - value + type: object + - properties: + type: + type: string + enum: + - host + value: + properties: + eq: + type: string + required: + - eq + type: object + required: + - type + - value + type: object + type: array + mitigate: + properties: + action: + type: string + enum: + - block_legal_cwc + required: + - action + type: object + src: + type: string + required: + - has + - mitigate + type: object + type: array + hasDeployments: + type: boolean + enum: + - false + - true + dismissedToasts: + items: + properties: + key: + type: string + dismissedAt: + type: number + action: + type: string + enum: + - accept + - cancel + - delete + value: + nullable: true + oneOf: + - type: string + - type: number + - properties: + previousValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + currentValue: + oneOf: + - type: string + - type: number + - type: boolean + enum: + - false + - true + required: + - currentValue + - previousValue + type: object + - type: boolean + enum: + - false + - true + required: + - action + - dismissedAt + - key + - value + type: object + type: array + protectedSourcemaps: + type: boolean + enum: + - false + - true + tracing: + properties: + domains: + type: string + ignorePaths: + items: + type: string + type: array + samplingRules: + items: + properties: + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + destination: + type: string + enum: + - external + - internal + description: Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed. + required: + - rate + type: object + type: array type: object + avatar: + nullable: true + type: string + required: + - accountId + - alias + - defaultResourceConfig + - deploymentExpiration + - directoryListing + - id + - name + - nodeVersion + - resourceConfig + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: project_id + description: The unique project identifier + in: path + required: true + schema: + example: prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique project identifier + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + microfrontendsGroupId: + type: string + example: mfe_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + description: The unique group identifier to add this microfrontend to + enabled: + type: boolean + example: true + description: Enable or disable microfrontends for the project + isDefaultApp: + type: boolean + example: true + description: Whether the application is the default application for the microfrontends group + defaultRoute: + type: string + example: /home + description: The default route used for screenshots and preview links for the project + routeObservabilityToThisProject: + type: boolean + description: Whether observability data should be routed to this project or a root project. Can only be set for child applications. + doNotRouteWithMicrofrontendsRouting: + type: boolean + description: Whether domains in this project should route as a microfrontend. Can only be set for child applications. + /v10/projects/{project_id}/promote/{deployment_id}: + post: + description: 'Allows users to promote a deployment to production. Note: This does NOT rebuild the deployment. If you need that, then call create-deployments endpoint.' + operationId: requestPromote + security: + - bearerToken: [] + summary: Point production traffic to a given deployment + tags: + - projects + responses: + '201': + description: '' + '202': + description: '' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - name: deployment_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id}/promote/aliases: + get: + description: Get a list of aliases related to the last promote request with their mapping status + operationId: listPromoteAliases + security: + - bearerToken: [] + summary: Gets a list of aliases with status for the current promote + tags: + - projects + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + aliases: + items: + properties: + status: + type: string + alias: + type: string + id: + type: string + required: + - alias + - id + - status + type: object + type: array + pagination: + $ref: '#/components/schemas/Pagination' + required: + - aliases + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: project_id + in: path + required: true + schema: + type: string + - name: limit + description: Maximum number of aliases to list from a request (max 100). + in: query + required: false + schema: + description: Maximum number of aliases to list from a request (max 100). + type: number + example: 20 + maximum: 100 + - name: since + description: Get aliases created after this epoch timestamp. + in: query + required: false + schema: + description: Get aliases created after this epoch timestamp. + type: number + example: 1609499532000 + - name: until + description: Get aliases created before this epoch timestamp. + in: query + required: false + schema: + description: Get aliases created before this epoch timestamp. + type: number + example: 1612264332000 + - name: failedOnly + description: Filter results down to aliases that failed to map to the requested deployment + in: query + required: false + schema: + description: Filter results down to aliases that failed to map to the requested deployment + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{project_id}/pause: + post: + description: Pause a project by passing its project `id` in the URL. If the project does not exist given the id then the request will fail with 400 status code. If the project disables auto assigning custom production domains and blocks the active Production Deployment then the request will return with 200 status code. + operationId: pauseProject + security: + - bearerToken: [] + summary: Pause a project + tags: + - projects + responses: + '200': + description: '' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. - '404': + '410': + description: '' + '500': description: '' - '409': - description: The project is being transfered and removing an environment variable is not possible parameters: - - name: idOrName - description: The unique project identifier or the project name + - name: project_id + description: The unique project identifier in: path required: true schema: - description: The unique project identifier or the project name type: string - example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA - - name: id - description: The unique environment variable identifier - in: path - required: true + description: The unique project identifier + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId schema: - description: The unique environment variable identifier type: string - example: XMbOEya1gUUO1ir4 - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string - patch: - description: Edit a specific environment variable for a given project by passing the environment variable identifier and either passing the project `id` or `name` in the URL. - operationId: editProjectEnv + example: my-team-url-slug + /v1/projects/{project_id}/unpause: + post: + description: Unpause a project by passing its project `id` in the URL. If the project does not exist given the id then the request will fail with 400 status code. If the project enables auto assigning custom production domains and unblocks the active Production Deployment then the request will return with 200 status code. + operationId: unpauseProject security: - bearerToken: [] - summary: Edit an environment variable + summary: Unpause a project tags: - projects responses: '200': - description: The environment variable was successfully edited - content: - application/json: - schema: - properties: - target: - oneOf: - - items: - type: string - enum: - - production - - preview - - development - - preview - - development - type: array - - type: string - enum: - - production - - preview - - development - - preview - - development - type: - type: string - enum: - - system - - encrypted - - plain - - sensitive - - secret - id: - type: string - key: - type: string - value: - type: string - configurationId: - nullable: true - type: string - createdAt: - type: number - updatedAt: - type: number - createdBy: - nullable: true - type: string - updatedBy: - nullable: true - type: string - gitBranch: - type: string - edgeConfigId: - nullable: true - type: string - edgeConfigTokenId: - nullable: true - type: string - contentHint: - nullable: true - oneOf: - - properties: - type: - type: string - enum: - - redis-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - redis-rest-api-read-only-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - blob-read-write-token - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-url-non-pooling - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-prisma-url - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-user - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-host - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-password - storeId: - type: string - required: - - type - - storeId - type: object - - properties: - type: - type: string - enum: - - postgres-database - storeId: - type: string - required: - - type - - storeId - type: object - decrypted: - type: boolean - description: Whether `value` is decrypted. - required: - - type - - key - - value - type: object + description: '' '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. + description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. - '409': - description: The project is being transfered and removing an environment variable is not possible + '410': + description: '' + '500': + description: '' parameters: - - name: idOrName - description: The unique project identifier or the project name + - name: project_id + description: The unique project identifier in: path required: true schema: - description: The unique project identifier or the project name type: string - example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA - - name: id - description: The unique environment variable identifier - in: path - required: true + description: The unique project identifier + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId schema: - description: The unique environment variable identifier type: string - example: XMbOEya1gUUO1ir4 - - description: The Team identifier or slug to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. in: query - name: teamId - required: true + name: slug schema: type: string - requestBody: - content: - application/json: - schema: - type: object - additionalProperties: false - properties: - key: - description: The name of the environment variable - type: string - example: GITHUB_APP_ID - target: - description: The target environment of the environment variable - type: array - items: - enum: - - production - - preview - - development - example: - - preview - gitBranch: - description: The git branch of the environment variable - type: string - maxLength: 250 - example: feature-1 - nullable: true - type: - description: The type of environment variable - type: string - enum: - - system - - secret - - encrypted - - plain - - sensitive - example: plain - value: - description: The value of the environment variable - type: string - example: bkWIjbnxcvo78 + example: my-team-url-slug +components: + schemas: + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + ACLAction: + type: string + enum: + - create + - delete + - list + - read + - update + description: Enum containing the actions that can be performed against a resource. Group operations are included. + StackqlOctetStreamBody: + type: object + description: 'Raw request body for octet-stream uploads: the text in `value` is sent verbatim as the request body.' + properties: + value: + type: string + description: Raw body content (sent as-is). + required: + - value + x-stackQL-resources: + projects: + id: vercel.projects.projects + name: projects + title: Projects + methods: + list: + operation: + $ref: '#/paths/~1v10~1projects/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.projects + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: from + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v11~1projects/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_token: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1token/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + upload_avatar: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1avatar/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + mediaType: application/octet-stream + required: + - value + schema_override: + $ref: '#/components/schemas/StackqlOctetStreamBody' + transform: + type: golang_template_json_v0.1.0 + body: '{{ .value }}' + nativeCasing: camel + update_protection_bypass: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1protection-bypass/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + rollback: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1rollback~1{deployment_id}/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + update_rollback_description: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1rollback~1{deployment_id}~1update-description/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_microfrontends: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1microfrontends/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + promote: + operation: + $ref: '#/paths/~1v10~1projects~1{project_id}~1promote~1{deployment_id}/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + pause: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1pause/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + unpause: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1unpause/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/projects/methods/get' + - $ref: '#/components/x-stackQL-resources/projects/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/projects/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/projects/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/projects/methods/delete' + replace: [] + traces: + id: vercel.projects.traces + name: traces + title: Traces + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1traces/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.trace + request: + nativeCasing: camel + create_session: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1traces~1session/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/traces/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + domains: + id: vercel.projects.domains + name: domains + title: Domains + methods: + list: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1domains/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.domains + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1domains~1{domain}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1domains~1{domain}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1domains~1{domain}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v10~1projects~1{id_or_name}~1domains/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + move: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1domains~1{domain}~1move/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + verify: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1domains~1{domain}~1verify/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/domains/methods/get' + - $ref: '#/components/x-stackQL-resources/domains/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/domains/methods/add' + update: + - $ref: '#/components/x-stackQL-resources/domains/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/domains/methods/delete' + replace: [] + env_vars: + id: vercel.projects.env_vars + name: env_vars + title: Env Vars + methods: + list: + operation: + $ref: '#/paths/~1v10~1projects~1{id_or_name}~1env/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.envs + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v10~1projects~1{id_or_name}~1env/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1env~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1env~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v9~1projects~1{id_or_name}~1env~1{id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + batch_delete: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1env/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/env_vars/methods/get' + - $ref: '#/components/x-stackQL-resources/env_vars/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/env_vars/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/env_vars/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/env_vars/methods/delete' + - $ref: '#/components/x-stackQL-resources/env_vars/methods/batch_delete' + replace: [] + transfer_requests: + id: vercel.projects.transfer_requests + name: transfer_requests + title: Transfer Requests + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1projects~1{id_or_name}~1transfer-request/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + accept: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1projects~1transfer-request~1{code}/put' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/transfer_requests/methods/create' + update: [] + delete: [] + replace: [] + promote_aliases: + id: vercel.projects.promote_aliases + name: promote_aliases + title: Promote Aliases + methods: + list: + operation: + $ref: '#/paths/~1v1~1projects~1{project_id}~1promote~1aliases/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.aliases + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/promote_aliases/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/rolling_release.yaml b/providers/src/vercel/v00.00.00000/services/rolling_release.yaml new file mode 100644 index 00000000..e99927a7 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/rolling_release.yaml @@ -0,0 +1,2283 @@ +openapi: 3.0.3 +info: + title: rolling_release API + description: vercel rolling_release API + version: 0.0.1 +paths: + /v1/projects/{id_or_name}/rolling-release/billing: + get: + description: Get the Rolling Releases billing status for a project. The team level billing status is used to determine if the project can be configured for rolling releases. + operationId: getRollingReleaseBillingStatus + security: + - bearerToken: [] + summary: Get rolling release billing status + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + availableSlots: + type: number + enum: + - 0 + reason: + type: string + enum: + - plan_not_supported + message: + type: string + enabledProjects: + items: + type: string + type: array + required: + - availableSlots + - message + - reason + - enabledProjects + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{id_or_name}/rolling-release/config: + get: + description: Get the Rolling Releases configuration for a project. The project-level config is simply a template that will be used for any future rolling release, and not the configuration for any active rolling release. + operationId: getRollingReleaseConfig + security: + - bearerToken: [] + summary: Get rolling release configuration + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + properties: + target: + type: string + description: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments. + example: production + stages: + nullable: true + items: + properties: + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + example: false + duration: + type: number + description: Duration in minutes for automatic advancement to the next stage + example: 600 + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - targetPercentage + type: object + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + type: array + description: 'An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.' + canaryResponseHeader: + type: boolean + enum: + - false + - true + description: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted. + example: false + gate: + properties: + enabled: + type: boolean + enum: + - false + - true + description: Whether automated gating is enabled for this project's rollouts. + checks: + items: + properties: + type: + type: string + enum: + - error-rate-5xx + description: The metric this check evaluates. + minSampleSize: + type: number + description: Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted. + example: 100 + excludeStatusCodes: + items: + type: number + type: array + description: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted. + example: + - 503 + excludePaths: + items: + type: string + type: array + description: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted. + example: + - /api/health + ingestWatermarkSeconds: + type: number + description: 'Seconds of ingest lag to allow for: the query''s upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.' + example: 30 + required: + - type + type: object + description: The checks to evaluate. An empty array means nothing is evaluated. + type: array + description: The checks to evaluate. An empty array means nothing is evaluated. + failureThreshold: + type: number + description: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted. + example: 3 + windowSize: + type: number + description: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted. + example: 5 + action: + type: string + enum: + - pause + - rollback + description: 'What to do when the gate trips: pause the rollout, or roll it back.' + dryRun: + type: boolean + enum: + - false + - true + description: When true, a tripped gate is only reported — {@link action} is not taken. + required: + - action + - checks + - dryRun + - enabled + type: object + description: 'Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.' + required: + - target + type: object + description: Project-level rolling release configuration that defines how deployments should be gradually rolled out + required: + - rollingRelease + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Disable Rolling Releases for a project means that future deployments will not undergo a rolling release. Changing the config never alters a rollout that's already in-flight—it only affects the next production deployment. If you want to also stop the current rollout, call this endpoint to disable the feature, and then call either the /complete or /abort endpoint. + operationId: deleteRollingReleaseConfig + security: + - bearerToken: [] + summary: Delete rolling release configuration + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + required: + - rollingRelease + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: 'Update (or disable) Rolling Releases for a project. When disabling with the resolve-on-disable feature flag enabled, any active rolling release document is resolved using the disableRolloutAction parameter: "abort" to roll back (default), or "complete" to promote the canary to production. When enabling or updating config, changes only affect the next production deployment and do not alter a rollout that''s already in-flight. Note: Enabling Rolling Releases automatically enables skew protection on the project with the default value if it wasn''t configured already.' + operationId: updateRollingReleaseConfig + security: + - bearerToken: [] + summary: Update the rolling release settings for the project + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + required: + - rollingRelease + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{id_or_name}/rolling-release: + get: + description: Return the Rolling Release for a project, regardless of whether the rollout is active, aborted, or completed. If the feature is enabled but no deployment has occurred yet, null will be returned. + operationId: getRollingRelease + security: + - bearerToken: [] + summary: Get the active rolling release information for a project + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + properties: + state: + type: string + enum: + - ABORTED + - ACTIVE + - COMPLETE + description: The current state of the rolling release + example: ACTIVE + substate: + nullable: true + type: string + enum: + - PAUSED + - null + description: When set to `PAUSED`, the rollout is frozen at the current percentage until continued. + currentDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The current deployment receiving production traffic + example: + id: dpl_abc123 + name: my-shop@main + url: my-shop.vercel.app + target: production + source: git + createdAt: 1716206500000 + readyState: READY + readyStateAt: 1716206800000 + canaryDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The canary deployment being rolled out + example: + id: dpl_def456 + name: my-shop@9c7e2f4 + url: 9c7e2f4-my-shop.vercel.app + target: production + source: git + createdAt: 1716210100000 + readyState: READY + readyStateAt: 1716210400000 + queuedDeploymentId: + nullable: true + type: string + description: The ID of a deployment queued for the next rolling release + example: dpl_ghi789 + advancementType: + type: string + enum: + - automatic + - manual-approval + description: The advancement type of the rolling release + example: manual-approval + stages: + items: + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + type: array + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + activeStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The currently active stage, null if the rollout is aborted + example: + index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + nextStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The next stage to be activated, null if not in ACTIVE state + example: + index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + startedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release started + example: 1716210500000 + updatedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release was last updated + example: 1716210600000 + currentCanaryPercentage: + type: number + description: When set (for example while {@link substate} is `PAUSED`), the canary traffic percentage persisted on the rollout document — use for dashboard display when linear shift is active. + required: + - activeStage + - advancementType + - canaryDeployment + - currentDeployment + - nextStage + - queuedDeploymentId + - stages + - startedAt + - state + - substate + - updatedAt + type: object + description: Rolling release information including configuration and document details, or null if no rolling release exists + required: + - rollingRelease + type: object + description: The response format for rolling release endpoints that return rolling release information + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - name: state + description: Filter by rolling release state + in: query + required: false + schema: + description: Filter by rolling release state + type: string + enum: + - ACTIVE + - COMPLETE + - ABORTED + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/projects/{id_or_name}/rolling-release/approve-stage: + post: + description: Advance a rollout to the next stage. This is only needed when rolling releases is configured to require manual approval. + operationId: approveRollingReleaseStage + security: + - bearerToken: [] + summary: Update the active rolling release to the next stage for a project + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + properties: + state: + type: string + enum: + - ABORTED + - ACTIVE + - COMPLETE + description: The current state of the rolling release + example: ACTIVE + substate: + nullable: true + type: string + enum: + - PAUSED + - null + description: When set to `PAUSED`, the rollout is frozen at the current percentage until continued. + currentDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The current deployment receiving production traffic + example: + id: dpl_abc123 + name: my-shop@main + url: my-shop.vercel.app + target: production + source: git + createdAt: 1716206500000 + readyState: READY + readyStateAt: 1716206800000 + canaryDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The canary deployment being rolled out + example: + id: dpl_def456 + name: my-shop@9c7e2f4 + url: 9c7e2f4-my-shop.vercel.app + target: production + source: git + createdAt: 1716210100000 + readyState: READY + readyStateAt: 1716210400000 + queuedDeploymentId: + nullable: true + type: string + description: The ID of a deployment queued for the next rolling release + example: dpl_ghi789 + advancementType: + type: string + enum: + - automatic + - manual-approval + description: The advancement type of the rolling release + example: manual-approval + stages: + items: + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + type: array + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + activeStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The currently active stage, null if the rollout is aborted + example: + index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + nextStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The next stage to be activated, null if not in ACTIVE state + example: + index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + startedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release started + example: 1716210500000 + updatedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release was last updated + example: 1716210600000 + currentCanaryPercentage: + type: number + description: When set (for example while {@link substate} is `PAUSED`), the canary traffic percentage persisted on the rollout document — use for dashboard display when linear shift is active. + required: + - activeStage + - advancementType + - canaryDeployment + - currentDeployment + - nextStage + - queuedDeploymentId + - stages + - startedAt + - state + - substate + - updatedAt + type: object + description: Rolling release information including configuration and document details, or null if no rolling release exists + required: + - rollingRelease + type: object + description: The response format for rolling release endpoints that return rolling release information + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - nextStageIndex + - canaryDeploymentId + properties: + nextStageIndex: + description: The index of the stage to transition to + type: number + canaryDeploymentId: + description: The id of the canary deployment to approve for the next stage + type: string + /v1/projects/{id_or_name}/rolling-release/start: + post: + description: Start a rolling release for a deployment. If a rolling release is already active for the same canary deployment, returns the current state without side effects. + operationId: startRollingRelease + security: + - bearerToken: [] + summary: Start a rolling release for the project + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + properties: + state: + type: string + enum: + - ABORTED + - ACTIVE + - COMPLETE + description: The current state of the rolling release + example: ACTIVE + substate: + nullable: true + type: string + enum: + - PAUSED + - null + description: When set to `PAUSED`, the rollout is frozen at the current percentage until continued. + currentDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The current deployment receiving production traffic + example: + id: dpl_abc123 + name: my-shop@main + url: my-shop.vercel.app + target: production + source: git + createdAt: 1716206500000 + readyState: READY + readyStateAt: 1716206800000 + canaryDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The canary deployment being rolled out + example: + id: dpl_def456 + name: my-shop@9c7e2f4 + url: 9c7e2f4-my-shop.vercel.app + target: production + source: git + createdAt: 1716210100000 + readyState: READY + readyStateAt: 1716210400000 + queuedDeploymentId: + nullable: true + type: string + description: The ID of a deployment queued for the next rolling release + example: dpl_ghi789 + advancementType: + type: string + enum: + - automatic + - manual-approval + description: The advancement type of the rolling release + example: manual-approval + stages: + items: + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + type: array + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + activeStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The currently active stage, null if the rollout is aborted + example: + index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + nextStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The next stage to be activated, null if not in ACTIVE state + example: + index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + startedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release started + example: 1716210500000 + updatedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release was last updated + example: 1716210600000 + currentCanaryPercentage: + type: number + description: When set (for example while {@link substate} is `PAUSED`), the canary traffic percentage persisted on the rollout document — use for dashboard display when linear shift is active. + required: + - activeStage + - advancementType + - canaryDeployment + - currentDeployment + - nextStage + - queuedDeploymentId + - stages + - startedAt + - state + - substate + - updatedAt + type: object + description: Rolling release information including configuration and document details, or null if no rolling release exists + required: + - rollingRelease + type: object + description: The response format for rolling release endpoints that return rolling release information + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - canaryDeploymentId + properties: + canaryDeploymentId: + description: The ID of the canary deployment to start the rolling release for + type: string + /v1/projects/{id_or_name}/rolling-release/complete: + post: + description: Force-complete a Rolling Release. The canary deployment will begin serving 100% of the traffic. + operationId: completeRollingRelease + security: + - bearerToken: [] + summary: Complete the rolling release for the project + tags: + - rolling-release + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rollingRelease: + nullable: true + properties: + state: + type: string + enum: + - ABORTED + - ACTIVE + - COMPLETE + description: The current state of the rolling release + example: ACTIVE + substate: + nullable: true + type: string + enum: + - PAUSED + - null + description: When set to `PAUSED`, the rollout is frozen at the current percentage until continued. + currentDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The current deployment receiving production traffic + example: + id: dpl_abc123 + name: my-shop@main + url: my-shop.vercel.app + target: production + source: git + createdAt: 1716206500000 + readyState: READY + readyStateAt: 1716206800000 + canaryDeployment: + nullable: true + properties: + name: + type: string + description: The name of the project associated with the deployment at the time that the deployment was created + example: my-project + createdAt: + type: number + description: A number containing the date when the deployment was created in milliseconds + example: 1540257589405 + readyState: + type: string + enum: + - BLOCKED + - BUILDING + - CANCELED + - ERROR + - INITIALIZING + - QUEUED + - READY + description: The state of the deployment depending on the process of deploying, or if it is ready or in an error state + example: READY + id: + type: string + description: A string holding the unique ID of the deployment + example: dpl_89qyp1cskzkLrVicDaZoDbjyHuDJ + target: + nullable: true + type: string + enum: + - production + - staging + - null + description: If defined, either `staging` if a staging alias in the format `..now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment. + example: null + readyStateAt: + type: number + source: + type: string + enum: + - api-trigger-git-deploy + - cli + - clone/repo + - drop + - git + - git-deploy-hook + - import + - import/repo + - redeploy + - v0-web + description: Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it. + example: cli + url: + type: string + description: A string with the unique URL of the deployment + example: my-instant-deployment-3ij3cxz9qr.now.sh + required: + - createdAt + - id + - name + - readyState + - url + type: object + description: The canary deployment being rolled out + example: + id: dpl_def456 + name: my-shop@9c7e2f4 + url: 9c7e2f4-my-shop.vercel.app + target: production + source: git + createdAt: 1716210100000 + readyState: READY + readyStateAt: 1716210400000 + queuedDeploymentId: + nullable: true + type: string + description: The ID of a deployment queued for the next rolling release + example: dpl_ghi789 + advancementType: + type: string + enum: + - automatic + - manual-approval + description: The advancement type of the rolling release + example: manual-approval + stages: + items: + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + type: array + description: All stages configured for this rolling release + example: + - index: 0 + isFinalStage: false + targetPercentage: 5 + requireApproval: true + duration: null + - index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + - index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + - index: 3 + isFinalStage: true + targetPercentage: 100 + requireApproval: false + duration: null + activeStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The currently active stage, null if the rollout is aborted + example: + index: 1 + isFinalStage: false + targetPercentage: 25 + requireApproval: true + duration: null + nextStage: + nullable: true + properties: + index: + type: number + description: The zero-based index of the stage + example: 0 + isFinalStage: + type: boolean + enum: + - false + - true + description: Whether or not this stage is the final stage (targetPercentage === 100) + example: false + targetPercentage: + type: number + description: The percentage of traffic to serve to the canary deployment (0-100) + example: 25 + requireApproval: + type: boolean + enum: + - false + - true + description: Whether or not this stage requires manual approval to proceed + duration: + nullable: true + type: number + description: Duration in seconds for automatic advancement, null for manual stages or the final stage + example: null + linearShift: + type: boolean + enum: + - false + - true + description: Whether to linearly shift traffic over the duration of this stage + example: false + required: + - duration + - index + - isFinalStage + - requireApproval + - targetPercentage + type: object + description: The next stage to be activated, null if not in ACTIVE state + example: + index: 2 + isFinalStage: false + targetPercentage: 60 + requireApproval: true + duration: null + startedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release started + example: 1716210500000 + updatedAt: + type: number + description: Unix timestamp in milliseconds when the rolling release was last updated + example: 1716210600000 + currentCanaryPercentage: + type: number + description: When set (for example while {@link substate} is `PAUSED`), the canary traffic percentage persisted on the rollout document — use for dashboard display when linear shift is active. + required: + - activeStage + - advancementType + - canaryDeployment + - currentDeployment + - nextStage + - queuedDeploymentId + - stages + - startedAt + - state + - substate + - updatedAt + type: object + description: Rolling release information including configuration and document details, or null if no rolling release exists + required: + - rollingRelease + type: object + description: The response format for rolling release endpoints that return rolling release information + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id_or_name + description: Project ID or project name (URL-encoded) + in: path + required: true + schema: + description: Project ID or project name (URL-encoded) + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - canaryDeploymentId + properties: + canaryDeploymentId: + description: The ID of the canary deployment to complete + type: string +components: + x-stackQL-resources: + billing_status: + id: vercel.rolling_release.billing_status + name: billing_status + title: Billing Status + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1billing/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/billing_status/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + config: + id: vercel.rolling_release.config + name: config + title: Config + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rollingRelease + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1config/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1config/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/config/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/config/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/config/methods/delete' + replace: [] + rolling_releases: + id: vercel.rolling_release.rolling_releases + name: rolling_releases + title: Rolling Releases + methods: + get: + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.rollingRelease + request: + nativeCasing: camel + approve_stage: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1approve-stage/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + start: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1start/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + complete: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1projects~1{id_or_name}~1rolling-release~1complete/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/rolling_releases/methods/get' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/sandboxes.yaml b/providers/src/vercel/v00.00.00000/services/sandboxes.yaml new file mode 100644 index 00000000..494e3f33 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/sandboxes.yaml @@ -0,0 +1,6779 @@ +openapi: 3.0.3 +info: + title: sandboxes API + description: vercel sandboxes API + version: 0.0.1 +paths: + /v2/sandboxes: + get: + description: Retrieves a paginated list of named sandboxes belonging to a specific project. Results can be sorted by creation time or name, and optionally filtered by name prefix or status. + operationId: listNamedSandboxes + security: + - bearerToken: [] + summary: List sandboxes + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandboxes: + items: + $ref: '#/components/schemas/NamedSandbox' + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - pagination + - sandboxes + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: project + description: The unique identifier or name of the project to list named sandboxes for. + in: query + required: false + schema: + description: The unique identifier or name of the project to list named sandboxes for. + type: string + example: prj_abc123 + - name: limit + description: Maximum number of named sandboxes to return in the response. Used for pagination. + in: query + required: false + schema: + description: Maximum number of named sandboxes to return in the response. Used for pagination. + type: number + minimum: 1 + maximum: 50 + default: 20 + example: 20 + - name: sortBy + description: Field to sort by. + in: query + required: false + schema: + description: Field to sort by. + type: string + enum: + - createdAt + - name + - statusUpdatedAt + - currentSnapshotId + default: createdAt + - name: namePrefix + description: Filter named sandboxes whose name starts with this prefix. Only valid when sortBy=name. + in: query + required: false + schema: + description: Filter named sandboxes whose name starts with this prefix. Only valid when sortBy=name. + type: string + - name: cursor + description: Opaque pagination cursor from a previous response. + in: query + required: false + schema: + description: Opaque pagination cursor from a previous response. + type: string + - name: sortOrder + description: Sort direction. Defaults to desc. + in: query + required: false + schema: + description: Sort direction. Defaults to desc. + type: string + enum: + - asc + - desc + default: desc + - name: status + description: Filter named sandboxes by status. Only valid when sortBy is createdAt. + in: query + required: false + schema: + description: Filter named sandboxes by status. Only valid when sortBy is createdAt. + type: string + enum: + - running + - stopping + - stopped + - name: tags + description: 'Filter sandboxes by tag. Format: \"key:value\". Only one tag filter is supported at a time.' + in: query + required: false + schema: + description: 'Filter sandboxes by tag. Format: \"key:value\". Only one tag filter is supported at a time.' + anyOf: + - type: string + - type: array + items: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Creates a named sandbox environment. Named sandboxes have a unique name within a project and support automatic snapshotting on shutdown. + operationId: createSandboxesV2 + security: + - bearerToken: [] + summary: Create a named sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + required: + - routes + - sandbox + - session + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + networkPolicy: + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + runtime: + description: The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available. + type: string + enum: + - node22 + - node24 + - node26 + - python3.13 + default: node24 + example: node24 + resources: + description: Resources to define the VM + additionalProperties: false + type: object + properties: + vcpus: + description: The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. + type: integer + minimum: 1 + default: 2 + example: 2 + memory: + description: The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. + type: integer + minimum: 2048 + example: 4096 + source: + description: The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. + type: object + properties: + type: + description: Indicates the source is a Git repository. + url: + type: string + format: uri + description: The URL of the Git repository to clone. + example: https://github.com/vercel/next.js.git + username: + type: string + description: Username for Git authentication. Required together with password for private repositories. + password: + type: string + description: Password or personal access token for Git authentication. Required together with username for private repositories. + depth: + type: integer + minimum: 1 + description: Create a shallow clone with history truncated to the specified number of commits. Useful for faster cloning of large repositories. + example: 1 + revision: + type: string + description: The specific commit SHA, branch name, or tag to checkout after cloning. + example: main + snapshotId: + type: string + description: The unique identifier of the snapshot to restore. + example: snap_abc123 + required: + - type + - url + - snapshotId + additionalProperties: false + projectId: + description: The target project slug or ID in which the sandbox will be assigned to. + example: prj_abc123 + type: string + ports: + description: List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. + type: array + maxItems: 15 + uniqueItems: true + example: + - 3000 + - 4000 + items: + type: integer + description: A port number to expose from the sandbox. Must be between 1024 and 65535. + not: + enum: + - 23456 + maximum: 65535 + minimum: 1024 + image: + type: string + maxLength: 255 + description: Image to use for the sandbox. + timeout: + type: integer + description: Maximum duration in milliseconds that the sandbox can run before being automatically stopped. + minimum: 1000 + example: 300000 + env: + type: object + additionalProperties: + type: string + description: Default environment variables for the sandbox. These are inherited by all commands unless overridden. + default: {} + example: + NODE_ENV: production + HELLO: world + mounts: + type: object + description: List of drives to mount to the sandbox at the provided path. + maxProperties: 4 + additionalProperties: + type: object + additionalProperties: false + required: + - drive + properties: + drive: + type: string + description: Name of the drive to mount. The drive must already exist. + maxLength: 64 + pattern: ^[a-zA-Z0-9_-]+$ + mode: + type: string + description: Mount the drive as read-write, or as a read-only snapshot. One writer is permitted at a time. + default: read-write + enum: + - snapshot + - read-write + region: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + default: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The Vercel region in which to create the sandbox. + example: iad1 + failoverRegions: + type: array + maxItems: 19 + uniqueItems: true + items: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The regions the sandbox falls back to when it cannot be created in `region`. + example: + - sfo1 + - cle1 + networkId: + type: string + maxLength: 255 + description: The Connect network id for the target Secure Compute private network. + name: + example: my-sandbox + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + persistent: + description: Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true. + type: boolean + default: true + snapshotExpiration: + description: Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. + example: 604800000 + type: integer + keepLastSnapshots: + description: Protect the N most recent snapshots with different expiration/deletion behavior. + type: object + additionalProperties: false + required: + - count + properties: + count: + type: integer + minimum: 1 + maximum: 10 + description: Number of most recent snapshots to keep. + expiration: + description: Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. + oneOf: + - {} + - type: integer + deleteEvicted: + type: boolean + description: Whether to immediately delete evicted snapshots. Defaults to true. + tags: + description: Key-value tags to associate with the sandbox. Maximum 5 tags. + type: object + maxProperties: 5 + additionalProperties: + type: string + maxLength: 256 + example: + env: staging + team: platform + /v2/sandboxes/drives: + get: + description: 'Retrieves a paginated list of drives belonging to a specific project. Drives are in private beta. Register your interest to get access: https://vercel.com/changelog/drives-for-vercel-sandbox-in-private-beta' + operationId: listDrives + security: + - bearerToken: [] + summary: List drives + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + drives: + items: + $ref: '#/components/schemas/Drive' + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - drives + - pagination + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: projectId + description: The project ID or name associated with the drives. Required unless using a Vercel OIDC token scoped to a project. + in: query + required: false + schema: + type: string + description: The project ID or name associated with the drives. Required unless using a Vercel OIDC token scoped to a project. + example: prj_abc123 + - name: limit + description: Maximum number of drives to return in the response. Used for pagination. + in: query + required: false + schema: + description: Maximum number of drives to return in the response. Used for pagination. + type: number + minimum: 1 + maximum: 50 + default: 20 + example: 20 + - name: cursor + description: Opaque pagination cursor from a previous response. + in: query + required: false + schema: + description: Opaque pagination cursor from a previous response. + type: string + - name: sortBy + description: Field to sort drives by. + in: query + required: false + schema: + description: Field to sort drives by. + type: string + enum: + - createdAt + - updatedAt + - name + default: createdAt + - name: namePrefix + description: Filter drives whose name starts with this prefix. Only valid when sortBy=name. + in: query + required: false + schema: + description: Filter drives whose name starts with this prefix. Only valid when sortBy=name. + type: string + - name: sortOrder + description: Sort direction for results. + in: query + required: false + schema: + description: Sort direction for results. + type: string + enum: + - asc + - desc + default: desc + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/drives/{name}: + post: + description: 'Gets an existing drive by project and name, or creates it when it does not exist. Drives are in private beta. Register your interest to get access: https://vercel.com/changelog/drives-for-vercel-sandbox-in-private-beta' + operationId: getOrCreateDrive + security: + - bearerToken: [] + summary: Get or create a drive + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + drive: + $ref: '#/components/schemas/Drive' + required: + - drive + type: object + '201': + description: '' + content: + application/json: + schema: + properties: + drive: + $ref: '#/components/schemas/Drive' + required: + - drive + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: name + description: Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + in: path + required: true + schema: + type: string + description: Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 64 + example: workspace + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + projectId: + type: string + description: The project ID or name to associate the drive with. Required unless using a Vercel OIDC token scoped to a project. + example: prj_abc123 + maxSizeBytes: + type: integer + description: Maximum drive size in bytes. Defaults to 1 TiB when omitted (1 GiB for Hobby). The maximum quota is 16 TiB. Request a quota above 16 TiB at https://vercel.com/help. + region: + type: string + description: Region where the drive is stored. Defaults to iad1. + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + default: iad1 + example: iad1 + delete: + description: 'Deletes a drive by project and name. Attached drives cannot be deleted. Stop or replace the session currently using the drive before retrying deletion. Drives are in private beta. Register your interest to get access: https://vercel.com/changelog/drives-for-vercel-sandbox-in-private-beta' + operationId: deleteDrive + security: + - bearerToken: [] + summary: Delete a drive + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + drive: + $ref: '#/components/schemas/Drive' + required: + - drive + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: name + description: Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + in: path + required: true + schema: + type: string + description: Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 64 + example: workspace + - name: projectId + description: The project ID or name associated with the drive. Required unless using a Vercel OIDC token scoped to a project. + in: query + required: false + schema: + type: string + description: The project ID or name associated with the drive. Required unless using a Vercel OIDC token scoped to a project. + example: prj_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/snapshots: + get: + description: Retrieves a paginated list of snapshots for a specific project. + operationId: listSessionSnapshots + security: + - bearerToken: [] + summary: List snapshots + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + snapshots: + items: + $ref: '#/components/schemas/Snapshot' + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - pagination + - snapshots + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: project + description: The unique identifier or name of the project to list snapshots for. + in: query + required: false + schema: + description: The unique identifier or name of the project to list snapshots for. + type: string + example: prj_abc123 + - name: name + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + in: query + required: false + schema: + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + example: my-sandbox + - name: limit + description: Maximum number of snapshots to return in the response. Used for pagination. + in: query + required: false + schema: + description: Maximum number of snapshots to return in the response. Used for pagination. + type: number + minimum: 1 + maximum: 50 + default: 20 + example: 20 + - name: cursor + description: Opaque pagination cursor from a previous response. + in: query + required: false + schema: + description: Opaque pagination cursor from a previous response. + type: string + - name: sortOrder + description: Sort direction for results by creation time. + in: query + required: false + schema: + description: Sort direction for results by creation time. + type: string + enum: + - asc + - desc + default: desc + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/snapshots/{snapshot_id}: + get: + description: Retrieves detailed information about a specific snapshot, including its creation time, size, expiration date, and the source session it was created from. + operationId: getSessionSnapshot + security: + - bearerToken: [] + summary: Get a snapshot + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + snapshot: + $ref: '#/components/schemas/Snapshot' + required: + - snapshot + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: snapshot_id + description: The unique identifier of the snapshot to retrieve. + in: path + required: true + schema: + type: string + description: The unique identifier of the snapshot to retrieve. + pattern: ^(?:snap_[A-Za-z0-9]{28}|vhs_[a-z0-9]{28})$ + maxLength: 33 + example: snap_1234567890123456789012345678 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Permanently deletes a snapshot and frees its associated storage. This action cannot be undone. After deletion, the snapshot can no longer be used to create new sessions. + operationId: deleteSessionSnapshot + security: + - bearerToken: [] + summary: Delete a snapshot + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + snapshot: + $ref: '#/components/schemas/Snapshot' + required: + - snapshot + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: snapshot_id + description: The unique identifier of the snapshot to delete. + in: path + required: true + schema: + type: string + description: The unique identifier of the snapshot to delete. + pattern: ^(?:snap_[A-Za-z0-9]{28}|vhs_[a-z0-9]{28})$ + maxLength: 33 + example: snap_1234567890123456789012345678 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions: + get: + description: Retrieves a paginated list of sessions belonging to a specific sandbox. Results are sorted by creation time and paginated using an opaque cursor. + operationId: listSessions + security: + - bearerToken: [] + summary: List sessions + tags: + - sandboxes + responses: + '200': + description: The list of sessions matching the request filters. + content: + application/json: + schema: + properties: + sessions: + items: + $ref: '#/components/schemas/Session' + type: array + pagination: + properties: + count: + type: number + next: + nullable: true + type: string + required: + - count + - next + type: object + required: + - pagination + - sessions + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: project + description: The unique identifier or name of the project to list sessions for. + in: query + required: false + schema: + description: The unique identifier or name of the project to list sessions for. + type: string + example: prj_abc123 + - name: name + description: Filter sessions by sandbox name. Only sessions belonging to the specified sandbox are returned. + in: query + required: false + schema: + description: Filter sessions by sandbox name. Only sessions belonging to the specified sandbox are returned. + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + example: my-sandbox + - name: limit + description: Maximum number of sessions to return in the response. Used for pagination. + in: query + required: false + schema: + description: Maximum number of sessions to return in the response. Used for pagination. + type: number + minimum: 1 + maximum: 50 + default: 20 + example: 20 + - name: cursor + description: Opaque pagination cursor from a previous response. + in: query + required: false + schema: + description: Opaque pagination cursor from a previous response. + type: string + - name: sortOrder + description: Sort direction for results by creation time. + in: query + required: false + schema: + description: Sort direction for results by creation time. + type: string + enum: + - asc + - desc + default: desc + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions/{session_id}: + get: + description: Retrieves detailed information about a specific session, including its current status, resource configuration, and exposed routes. + operationId: getSession + security: + - bearerToken: [] + summary: Get a session + tags: + - sandboxes + responses: + '200': + description: The session was retrieved successfully. + content: + application/json: + schema: + properties: + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + required: + - routes + - session + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to retrieve. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to retrieve. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/{name}: + get: + description: Retrieves a named sandbox by name, including its current sandbox and routes. If the sandbox is stopped and resume is true, a new sandbox will be created from the most recent snapshot. + operationId: getNamedSandbox + security: + - bearerToken: [] + summary: Get a named sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + resumed: + type: boolean + enum: + - false + - true + required: + - resumed + - routes + - sandbox + - session + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - name: name + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + in: path + required: true + schema: + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + example: my-sandbox + - name: projectId + description: The project ID or name (required when not using OIDC token). + in: query + required: false + schema: + type: string + description: The project ID or name (required when not using OIDC token). + example: prj_abc123 + - name: resume + description: Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false. + in: query + required: false + schema: + type: boolean + default: false + description: Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + patch: + description: Updates the configuration of a sandbox. Only the provided fields will be modified; omitted fields remain unchanged. + operationId: updateSandbox + security: + - bearerToken: [] + summary: Update a sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + resumed: + type: boolean + enum: + - false + - true + required: + - routes + - sandbox + - resumed + - session + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - name: name + description: The sandbox to update. + in: path + required: true + schema: + type: string + description: The sandbox to update. + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + example: my-sandbox + - name: projectId + description: The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context. + in: query + required: false + schema: + type: string + description: The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context. + maxLength: 128 + - name: resume + description: Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false. + in: query + required: false + schema: + type: boolean + default: false + description: Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + resources: + description: Resources to define the VM + additionalProperties: false + type: object + properties: + vcpus: + description: The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. + type: integer + minimum: 1 + example: 2 + memory: + description: The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. + type: integer + minimum: 2048 + example: 4096 + runtime: + description: The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available. + type: string + enum: + - node22 + - node24 + - node26 + - python3.13 + example: node24 + timeout: + type: integer + description: Maximum duration in milliseconds that the sandbox can run before being automatically stopped. + minimum: 1000 + example: 300000 + persistent: + type: boolean + description: Whether the sandbox persists its state across restarts via automatic snapshots. + snapshotExpiration: + description: Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. + example: 604800000 + type: integer + keepLastSnapshots: + description: Protect the N most recent snapshots with different expiration/deletion behavior. Set to null to clear. + type: string + additionalProperties: false + required: + - count + properties: + count: + type: integer + minimum: 1 + maximum: 10 + description: Number of most recent snapshots to keep. + expiration: + description: Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. + oneOf: + - {} + - type: integer + deleteEvicted: + type: boolean + description: Whether to immediately delete evicted snapshots. Defaults to true. + networkPolicy: + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + region: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The Vercel region in which to create the sandbox. + example: iad1 + failoverRegions: + type: array + maxItems: 19 + uniqueItems: true + items: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The regions the sandbox falls back to when it cannot be created in `region`. + example: + - sfo1 + - cle1 + mounts: + description: Drives to mount to the sandbox at the provided path. Replaces the current mounts; an empty object removes them all. Changes take effect when the next session starts. + type: object + maxProperties: 4 + additionalProperties: + type: object + additionalProperties: false + required: + - drive + properties: + drive: + type: string + description: Name of the drive to mount. The drive must already exist. + maxLength: 64 + pattern: ^[a-zA-Z0-9_-]+$ + mode: + type: string + description: Mount the drive as read-write, or as a read-only snapshot. One writer is permitted at a time. + default: read-write + enum: + - snapshot + - read-write + networkId: + description: The Connect network id for the target Secure Compute private network. Set to null to remove the sandbox from Secure Compute. + type: string + maxLength: 255 + env: + type: object + additionalProperties: + type: string + description: Default environment variables for the sandbox. Set to empty object to clear. + example: + NODE_ENV: production + HELLO: world + ports: + description: List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. + type: array + maxItems: 15 + uniqueItems: true + example: + - 3000 + - 4000 + items: + type: integer + description: A port number to expose from the sandbox. Must be between 1024 and 65535. + not: + enum: + - 23456 + maximum: 65535 + minimum: 1024 + currentSnapshotId: + type: string + maxLength: 128 + description: The snapshot ID to set as the current snapshot. Must be active and belong to the same project. + tags: + description: Key-value tags to associate with the sandbox. Replaces existing tags. Set to empty object to clear. Maximum 5 tags. + type: object + maxProperties: 5 + additionalProperties: + type: string + maxLength: 256 + example: + env: staging + team: platform + delete: + description: Deletes a sandbox by name. If sandboxes are currently running, they will be stopped first. This operation deletes all sandbox entities with the given name and the named sandbox metadata. + operationId: deleteSandbox + security: + - bearerToken: [] + summary: Delete a sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + required: + - sandbox + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: name + description: The sandbox name to delete. + in: path + required: true + schema: + type: string + description: The sandbox name to delete. + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + example: my-sandbox + - name: projectId + description: The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context. + in: query + required: false + schema: + type: string + description: The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context. + maxLength: 128 + - name: deleteOrphanSnapshots + description: When true, snapshots of the deleted sandbox that are not referenced by any other sandbox are also deleted asynchronously. Defaults to false. + in: query + required: false + schema: + type: boolean + default: false + description: When true, snapshots of the deleted sandbox that are not referenced by any other sandbox are also deleted asynchronously. Defaults to false. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions/{session_id}/cmd: + get: + description: Retrieves a list of all commands that have been executed in a session, including their current status, exit codes, and execution times, ordered from the most recent to the oldest. + operationId: listSessionCommands + security: + - bearerToken: [] + summary: List commands + tags: + - sandboxes + responses: + '200': + description: The list of commands executed in the session. + content: + application/json: + schema: + properties: + commands: + items: + $ref: '#/components/schemas/SessionCommand' + type: array + required: + - commands + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '429': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to list commands for. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to list commands for. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Executes a shell command inside a running session. The command runs asynchronously and returns immediately with a command ID that can be used to track its progress and retrieve its output. Optionally, use the `wait` parameter to stream the command status until completion. + operationId: runSessionCommand + security: + - bearerToken: [] + summary: Execute a command + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + command: + $ref: '#/components/schemas/SessionCommand' + required: + - command + type: object + application/x-ndjson: + schema: + properties: + stream: + type: string + data: + properties: + code: + type: string + enum: + - sandbox_stream_closed + message: + type: string + enum: + - Sandbox stream was closed and is not accepting commands. + required: + - code + - message + type: object + command: + $ref: '#/components/schemas/SessionCommand' + required: + - data + - stream + - command + type: object + oneOf: + - properties: + stream: + type: string + data: + properties: + code: + type: string + enum: + - sandbox_stream_closed + message: + type: string + enum: + - Sandbox stream was closed and is not accepting commands. + required: + - code + - message + type: object + required: + - data + - stream + type: object + - properties: + data: + type: string + stream: + type: string + required: + - data + - stream + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session in which to execute the command. + in: path + required: true + schema: + type: string + description: The unique identifier of the session in which to execute the command. + example: sbx_abc123 + - name: cmdId + description: The unique identifier of the command to stream logs for. + in: query + required: true + schema: + type: string + description: The unique identifier of the command to stream logs for. + example: cmd_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - command + properties: + command: + type: string + description: The executable or shell command to run. This is the program name without arguments. + example: npm + args: + type: array + items: + type: string + description: Arguments to pass to the command. Each argument should be a separate array element. + example: + - install + - '--save' + - lodash + cwd: + type: string + description: The working directory in which to execute the command. Defaults to the sandbox home directory if not specified. + example: /home/vercel-sandbox + env: + type: object + additionalProperties: + type: string + description: Additional environment variables to set for this command. These are merged with the sandbox environment. + default: {} + example: + NODE_ENV: production + DEBUG: 'true' + sudo: + type: boolean + description: Execute the command with root (superuser) privileges. + default: false + wait: + type: boolean + description: If true, returns an ND-JSON stream that emits the command status when started and again when finished. Useful for synchronously waiting for command completion. + default: false + logs: + type: boolean + description: If true, stream the logs of the command execution in real-time via ND-JSON. This is only applicable if `wait` is also true. + default: false + timeout: + type: integer + description: Maximum duration in milliseconds the command may run before it is killed with SIGKILL, up to 5 hours. Enforced at exec time, independently of `wait`. + minimum: 100 + maximum: 18000000 + example: 30000 + /v2/sandboxes/sessions/{session_id}/cmd/{cmd_id}: + get: + description: Retrieves the current status and details of a command executed in a session. Use the `wait` parameter to block until the command finishes execution. + operationId: getSessionCommand + security: + - bearerToken: [] + summary: Get a command + tags: + - sandboxes + responses: + '200': + description: The command data along with the exit code if the command did finish. + content: + application/json: + schema: + properties: + command: + $ref: '#/components/schemas/SessionCommand' + required: + - command + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session containing the command. + in: path + required: true + schema: + type: string + description: The unique identifier of the session containing the command. + example: sbx_abc123 + - name: cmd_id + description: The unique identifier of the command to retrieve. + in: path + required: true + schema: + type: string + description: The unique identifier of the command to retrieve. + example: cmd_abc123 + - name: wait + description: If set to "true", the request will block until the command finishes execution. Useful for synchronously waiting for command completion. + in: query + required: false + schema: + type: string + description: If set to "true", the request will block until the command finishes execution. Useful for synchronously waiting for command completion. + enum: + - 'true' + - 'false' + default: 'false' + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions/{session_id}/cmd/{cmd_id}/kill: + post: + description: Sends a signal to terminate a running command in a session. The signal can be used to gracefully stop (SIGTERM) or forcefully kill (SIGKILL) the process. The command must still be running for this operation to succeed. + operationId: killSessionCommand + security: + - bearerToken: [] + summary: Kill a command + tags: + - sandboxes + responses: + '200': + description: The command was terminated successfully. + content: + application/json: + schema: + properties: + command: + $ref: '#/components/schemas/SessionCommand' + required: + - command + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: cmd_id + description: The unique identifier of the command to terminate. + in: path + required: true + schema: + type: string + description: The unique identifier of the command to terminate. + example: cmd_abc123 + - name: session_id + description: The unique identifier of the session containing the command. + in: path + required: true + schema: + type: string + description: The unique identifier of the session containing the command. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - signal + properties: + signal: + type: number + description: 'The POSIX signal number to send to the process. Common values: 15 (SIGTERM) for graceful termination, 9 (SIGKILL) for forced termination.' + example: 15 + /v2/sandboxes/sessions/{session_id}/cmd/{cmd_id}/logs: + get: + description: Streams the output of a command in real-time using newline-delimited JSON (ND-JSON). Each entry includes the output data and stream type. Stream types include `stdout`, `stderr`, and `error` (for stream failures). + operationId: getSessionCommandLogs + security: + - bearerToken: [] + summary: Stream command logs + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/x-ndjson: + schema: + properties: + stream: + type: string + data: + properties: + code: + type: string + enum: + - sandbox_stream_closed + message: + type: string + enum: + - Sandbox stream was closed and is not accepting commands. + required: + - code + - message + type: object + required: + - data + - stream + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session containing the command. + in: path + required: true + schema: + type: string + description: The unique identifier of the session containing the command. + example: sbx_abc123 + - name: cmd_id + description: The unique identifier of the command to stream logs for. + in: path + required: true + schema: + type: string + description: The unique identifier of the command to stream logs for. + example: cmd_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions/{session_id}/stop: + post: + description: Stops a running session and releases its allocated resources. All running processes within the session will be terminated. This action cannot be undone. A stopped session cannot be restarted. + operationId: stopSession + security: + - bearerToken: [] + summary: Stop a session + tags: + - sandboxes + responses: + '200': + description: The session was stopped successfully. + content: + application/json: + schema: + properties: + session: + $ref: '#/components/schemas/Session' + snapshot: + $ref: '#/components/schemas/Snapshot' + sandbox: + $ref: '#/components/schemas/NamedSandbox' + required: + - session + - sandbox + - snapshot + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to stop. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to stop. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions/{session_id}/extend-timeout: + post: + description: Extends the maximum execution time of a running session. The session must be active and able to accept commands. The total timeout cannot exceed the maximum allowed limit for your account. + operationId: extendSessionTimeout + security: + - bearerToken: [] + summary: Extend session timeout + tags: + - sandboxes + responses: + '200': + description: The session timeout was extended successfully. + content: + application/json: + schema: + properties: + session: + $ref: '#/components/schemas/Session' + required: + - session + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to extend the timeout for. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to extend the timeout for. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - duration + properties: + duration: + type: number + description: The amount of time in milliseconds to add to the current timeout. Must be at least 1000ms (1 second). + minimum: 1000 + example: 300000 + /v2/sandboxes/sessions/{session_id}/network-policy: + post: + description: Replaces the network access policy of a running session. Use this to control which external hosts the session can communicate with. This is a full replacement. Any previously configured network rules will be overwritten. + operationId: updateSessionNetworkPolicy + security: + - bearerToken: [] + summary: Update network policy + tags: + - sandboxes + responses: + '200': + description: The session network policy was updated successfully. + content: + application/json: + schema: + properties: + session: + $ref: '#/components/schemas/Session' + required: + - session + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to update the network policy for. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to update the network policy for. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + /v2/sandboxes/sessions/{session_id}/fs/read: + post: + description: Downloads the contents of a file from a session's filesystem. The file content is returned as a binary stream with appropriate Content-Disposition headers for file download. + operationId: readSessionFile + security: + - bearerToken: [] + summary: Read a file + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/octet-stream: + schema: + type: string + format: binary + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to read the file from. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to read the file from. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - path + properties: + cwd: + description: The base directory for resolving relative paths. If not specified, paths are resolved from the sandbox home directory. + type: string + example: /home/vercel-sandbox + path: + description: The path of the file to read. Can be absolute or relative to the working directory. + type: string + example: dist/agent-output.md + /v2/sandboxes/sessions/{session_id}/fs/mkdir: + post: + description: Creates a new directory in a session's filesystem. By default, parent directories are created recursively if they don't exist (similar to `mkdir -p`). + operationId: createSessionDirectory + security: + - bearerToken: [] + summary: Create a directory + tags: + - sandboxes + responses: + '200': + description: The directory was created successfully. + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to create the directory in. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to create the directory in. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - path + properties: + cwd: + description: The base directory for resolving relative paths. If not specified, paths are resolved from the sandbox home directory. + type: string + example: /home/vercel-sandbox + path: + description: The path of the directory to create. Can be absolute or relative to the working directory. + type: string + example: src/components + recursive: + description: If true, creates parent directories as needed (like `mkdir -p`). If false, fails if parent directories do not exist. + type: boolean + default: true + /v2/sandboxes/sessions/{session_id}/fs/write: + post: + description: Uploads and extracts files to a session's filesystem. Files must be uploaded as a gzipped tarball (`.tar.gz`) with the `Content-Type` header set to `application/gzip`. The tarball contents are extracted to the session's working directory, or to a custom directory specified via the `x-cwd` header. + operationId: writeSessionFiles + security: + - bearerToken: [] + summary: Write files + tags: + - sandboxes + responses: + '200': + description: The files were successfully written to the session. + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: |- + One of the provided values in the request query is invalid. + One of the provided values in the headers is invalid + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - in: header + description: The target directory where the tarball contents will be extracted. If not specified, files are extracted to the sandbox home directory. + schema: + type: string + description: The target directory where the tarball contents will be extracted. If not specified, files are extracted to the sandbox home directory. + example: /home/vercel-sandbox + name: x-cwd + - name: session_id + description: The unique identifier of the session to write files to. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to write files to. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/sandboxes/sessions/{session_id}/snapshot: + post: + description: Creates a point-in-time snapshot of a running session's filesystem. Snapshots can be used to quickly restore a session to a previous state or to create new sessions with pre-configured environments. The session must be running and able to accept commands for a snapshot to be created. The session will be terminated after the snapshot is created. + operationId: createSandboxesSessionsBySessionIdSnapshotV2 + security: + - bearerToken: [] + summary: Create a snapshot + tags: + - sandboxes + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + snapshot: + $ref: '#/components/schemas/Snapshot' + session: + $ref: '#/components/schemas/Session' + required: + - session + - snapshot + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to snapshot. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to snapshot. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + expiration: + description: The number of milliseconds after which the snapshot will expire and be deleted. Use 0 for no expiration. + type: integer + /v2/sandboxes/{name}/fork: + post: + description: Forks a named sandbox, creating a new named sandbox from the source's configuration. Resources, timeout, ports, tags, network policy, mounts, Connect network, image, persistence, snapshot settings and — unlike the SDK-side fork — environment variables are copied from the source automatically (`interactive` is not). When the source has a snapshot the fork starts from it; otherwise it starts from the source's runtime/image. Any field provided in the request body overrides the value copied from the source. + operationId: createSandboxesByNameForkV2 + security: + - bearerToken: [] + summary: Fork a named sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + required: + - routes + - sandbox + - session + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - name: name + description: Name of the source sandbox to fork. + in: path + required: true + schema: + description: Name of the source sandbox to fork. + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + - name: projectId + description: The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token. + in: query + required: false + schema: + description: The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token. + type: string + maxLength: 128 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + networkPolicy: + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + resources: + description: Resources to define the VM + additionalProperties: false + type: object + properties: + vcpus: + description: The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. + type: integer + minimum: 1 + default: 2 + example: 2 + memory: + description: The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. + type: integer + minimum: 2048 + example: 4096 + ports: + description: List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. + type: array + maxItems: 15 + uniqueItems: true + example: + - 3000 + - 4000 + items: + type: integer + description: A port number to expose from the sandbox. Must be between 1024 and 65535. + not: + enum: + - 23456 + maximum: 65535 + minimum: 1024 + image: + type: string + maxLength: 255 + description: Image to use for the sandbox. + timeout: + type: integer + description: Maximum duration in milliseconds that the sandbox can run before being automatically stopped. + minimum: 1000 + example: 300000 + env: + type: object + additionalProperties: + type: string + description: Default environment variables for the sandbox. These are inherited by all commands unless overridden. + default: {} + example: + NODE_ENV: production + HELLO: world + mounts: + type: object + description: List of drives to mount to the sandbox at the provided path. + maxProperties: 4 + additionalProperties: + type: object + additionalProperties: false + required: + - drive + properties: + drive: + type: string + description: Name of the drive to mount. The drive must already exist. + maxLength: 64 + pattern: ^[a-zA-Z0-9_-]+$ + mode: + type: string + description: Mount the drive as read-write, or as a read-only snapshot. One writer is permitted at a time. + default: read-write + enum: + - snapshot + - read-write + region: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + default: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The Vercel region in which to create the sandbox. + example: iad1 + failoverRegions: + type: array + maxItems: 19 + uniqueItems: true + items: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The regions the sandbox falls back to when it cannot be created in `region`. + example: + - sfo1 + - cle1 + networkId: + type: string + maxLength: 255 + description: The Connect network id for the target Secure Compute private network. + name: + example: my-sandbox-fork + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + description: Name for the forked sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). A random name is generated when omitted. + persistent: + description: Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to the source sandbox setting. + type: boolean + snapshotExpiration: + description: Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. + example: 604800000 + type: integer + keepLastSnapshots: + description: Protect the N most recent snapshots with different expiration/deletion behavior. + type: object + additionalProperties: false + required: + - count + properties: + count: + type: integer + minimum: 1 + maximum: 10 + description: Number of most recent snapshots to keep. + expiration: + description: Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. + oneOf: + - {} + - type: integer + deleteEvicted: + type: boolean + description: Whether to immediately delete evicted snapshots. Defaults to true. + tags: + description: Key-value tags to associate with the sandbox. Maximum 5 tags. + type: object + maxProperties: 5 + additionalProperties: + type: string + maxLength: 256 + example: + env: staging + team: platform + /v3/sandboxes: + post: + description: 'Creates a named sandbox environment. Named sandboxes have a unique name within a project and support automatic snapshotting on shutdown. Unlike v2, this version has no `runtime` parameter: when no `image` is provided (and the sandbox is not restored from a snapshot), the sandbox is created from the default universal image.' + operationId: createSandboxesV3 + security: + - bearerToken: [] + summary: Create a named sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + required: + - routes + - sandbox + - session + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + networkPolicy: + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + resources: + description: Resources to define the VM + additionalProperties: false + type: object + properties: + vcpus: + description: The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. + type: integer + minimum: 1 + default: 2 + example: 2 + memory: + description: The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. + type: integer + minimum: 2048 + example: 4096 + source: + description: The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. + type: object + properties: + type: + description: Indicates the source is a Git repository. + url: + type: string + format: uri + description: The URL of the Git repository to clone. + example: https://github.com/vercel/next.js.git + username: + type: string + description: Username for Git authentication. Required together with password for private repositories. + password: + type: string + description: Password or personal access token for Git authentication. Required together with username for private repositories. + depth: + type: integer + minimum: 1 + description: Create a shallow clone with history truncated to the specified number of commits. Useful for faster cloning of large repositories. + example: 1 + revision: + type: string + description: The specific commit SHA, branch name, or tag to checkout after cloning. + example: main + snapshotId: + type: string + description: The unique identifier of the snapshot to restore. + example: snap_abc123 + required: + - type + - url + - snapshotId + additionalProperties: false + projectId: + description: The target project slug or ID in which the sandbox will be assigned to. + example: prj_abc123 + type: string + ports: + description: List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. + type: array + maxItems: 15 + uniqueItems: true + example: + - 3000 + - 4000 + items: + type: integer + description: A port number to expose from the sandbox. Must be between 1024 and 65535. + not: + enum: + - 23456 + maximum: 65535 + minimum: 1024 + image: + type: string + maxLength: 255 + description: Image to use for the sandbox. + timeout: + type: integer + description: Maximum duration in milliseconds that the sandbox can run before being automatically stopped. + minimum: 1000 + example: 300000 + env: + type: object + additionalProperties: + type: string + description: Default environment variables for the sandbox. These are inherited by all commands unless overridden. + default: {} + example: + NODE_ENV: production + HELLO: world + mounts: + type: object + description: List of drives to mount to the sandbox at the provided path. + maxProperties: 4 + additionalProperties: + type: object + additionalProperties: false + required: + - drive + properties: + drive: + type: string + description: Name of the drive to mount. The drive must already exist. + maxLength: 64 + pattern: ^[a-zA-Z0-9_-]+$ + mode: + type: string + description: Mount the drive as read-write, or as a read-only snapshot. One writer is permitted at a time. + default: read-write + enum: + - snapshot + - read-write + region: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + default: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The Vercel region in which to create the sandbox. + example: iad1 + failoverRegions: + type: array + maxItems: 19 + uniqueItems: true + items: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The regions the sandbox falls back to when it cannot be created in `region`. + example: + - sfo1 + - cle1 + networkId: + type: string + maxLength: 255 + description: The Connect network id for the target Secure Compute private network. + name: + example: my-sandbox + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + persistent: + description: Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true. + type: boolean + default: true + snapshotExpiration: + description: Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. + example: 604800000 + type: integer + keepLastSnapshots: + description: Protect the N most recent snapshots with different expiration/deletion behavior. + type: object + additionalProperties: false + required: + - count + properties: + count: + type: integer + minimum: 1 + maximum: 10 + description: Number of most recent snapshots to keep. + expiration: + description: Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. + oneOf: + - {} + - type: integer + deleteEvicted: + type: boolean + description: Whether to immediately delete evicted snapshots. Defaults to true. + tags: + description: Key-value tags to associate with the sandbox. Maximum 5 tags. + type: object + maxProperties: 5 + additionalProperties: + type: string + maxLength: 256 + example: + env: staging + team: platform + /v3/sandboxes/sessions/{session_id}/snapshot: + post: + description: Creates a point-in-time snapshot of a running session's filesystem. Snapshots can be used to quickly restore a session to a previous state or to create new sessions with pre-configured environments. The session must be running and able to accept commands for a snapshot to be created. The session will be terminated after the snapshot is created. Unlike v2, snapshots expire after 7 days when neither the request nor the sandbox configuration specifies an expiration. + operationId: createSandboxesSessionsBySessionIdSnapshotV3 + security: + - bearerToken: [] + summary: Create a snapshot + tags: + - sandboxes + responses: + '201': + description: '' + content: + application/json: + schema: + properties: + snapshot: + $ref: '#/components/schemas/Snapshot' + session: + $ref: '#/components/schemas/Session' + required: + - session + - snapshot + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: '' + '500': + description: '' + parameters: + - name: session_id + description: The unique identifier of the session to snapshot. + in: path + required: true + schema: + type: string + description: The unique identifier of the session to snapshot. + example: sbx_abc123 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + expiration: + description: The number of milliseconds after which the snapshot will expire and be deleted. Defaults to 7 days when neither this field nor the sandbox configuration specifies an expiration. Use 0 for no expiration. + type: integer + /v3/sandboxes/{name}/fork: + post: + description: 'Forks a named sandbox, creating a new named sandbox from the source''s configuration. Resources, timeout, ports, tags, network policy, mounts, Connect network, image, persistence, snapshot settings and — unlike the SDK-side fork — environment variables are copied from the source automatically (`interactive` is not). When the source has a snapshot the fork starts from it; otherwise it starts from the source''s runtime/image. Any field provided in the request body overrides the value copied from the source. Unlike v2, when neither the body nor the source provides a value, snapshots expire after 7 days by default and persistent sandboxes keep only their most recent snapshot (`keepLastSnapshots: null` disables the limit).' + operationId: createSandboxesByNameForkV3 + security: + - bearerToken: [] + summary: Fork a named sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + required: + - routes + - sandbox + - session + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - name: name + description: Name of the source sandbox to fork. + in: path + required: true + schema: + description: Name of the source sandbox to fork. + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + - name: projectId + description: The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token. + in: query + required: false + schema: + description: The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token. + type: string + maxLength: 128 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + networkPolicy: + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + resources: + description: Resources to define the VM + additionalProperties: false + type: object + properties: + vcpus: + description: The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. + type: integer + minimum: 1 + default: 2 + example: 2 + memory: + description: The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. + type: integer + minimum: 2048 + example: 4096 + ports: + description: List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. + type: array + maxItems: 15 + uniqueItems: true + example: + - 3000 + - 4000 + items: + type: integer + description: A port number to expose from the sandbox. Must be between 1024 and 65535. + not: + enum: + - 23456 + maximum: 65535 + minimum: 1024 + image: + type: string + maxLength: 255 + description: Image to use for the sandbox. + timeout: + type: integer + description: Maximum duration in milliseconds that the sandbox can run before being automatically stopped. + minimum: 1000 + example: 300000 + env: + type: object + additionalProperties: + type: string + description: Default environment variables for the sandbox. These are inherited by all commands unless overridden. + default: {} + example: + NODE_ENV: production + HELLO: world + mounts: + type: object + description: List of drives to mount to the sandbox at the provided path. + maxProperties: 4 + additionalProperties: + type: object + additionalProperties: false + required: + - drive + properties: + drive: + type: string + description: Name of the drive to mount. The drive must already exist. + maxLength: 64 + pattern: ^[a-zA-Z0-9_-]+$ + mode: + type: string + description: Mount the drive as read-write, or as a read-only snapshot. One writer is permitted at a time. + default: read-write + enum: + - snapshot + - read-write + region: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + default: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The Vercel region in which to create the sandbox. + example: iad1 + failoverRegions: + type: array + maxItems: 19 + uniqueItems: true + items: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The regions the sandbox falls back to when it cannot be created in `region`. + example: + - sfo1 + - cle1 + networkId: + type: string + maxLength: 255 + description: The Connect network id for the target Secure Compute private network. + name: + example: my-sandbox-fork + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + description: Name for the forked sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). A random name is generated when omitted. + persistent: + description: Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to the source sandbox setting. + type: boolean + snapshotExpiration: + description: Default snapshot expiration time in milliseconds. Defaults to 7 days. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. + example: 604800000 + type: integer + keepLastSnapshots: + description: Protect the N most recent snapshots with different expiration/deletion behavior. Persistent sandboxes default to keeping only the last snapshot (evicted snapshots are deleted). Set to null to disable the limit. + type: string + additionalProperties: false + required: + - count + properties: + count: + type: integer + minimum: 1 + maximum: 10 + description: Number of most recent snapshots to keep. + expiration: + description: Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. + oneOf: + - {} + - type: integer + deleteEvicted: + type: boolean + description: Whether to immediately delete evicted snapshots. Defaults to true. + tags: + description: Key-value tags to associate with the sandbox. Maximum 5 tags. + type: object + maxProperties: 5 + additionalProperties: + type: string + maxLength: 256 + example: + env: staging + team: platform + /v4/sandboxes: + post: + description: Creates a named sandbox environment. Named sandboxes have a unique name within a project and support automatic snapshotting on shutdown. When no `image` is provided (and the sandbox is not restored from a snapshot), the sandbox is created from the default universal image. Unlike v3, snapshots expire after 7 days by default and persistent sandboxes keep only their most recent snapshot unless `keepLastSnapshots` is configured otherwise (or set to `null` to disable the limit). + operationId: createSandboxesV4 + security: + - bearerToken: [] + summary: Create a named sandbox + tags: + - sandboxes + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + sandbox: + $ref: '#/components/schemas/NamedSandbox' + session: + $ref: '#/components/schemas/Session' + routes: + items: + $ref: '#/components/schemas/SandboxPublicRoute' + type: array + required: + - routes + - sandbox + - session + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '422': + description: '' + '429': + description: The concurrency limit has been exceeded. + '500': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + networkPolicy: + description: Network access policy for the sandbox.\n Controls which external hosts the sandbox can communicate with.\n Use \"allow-all\" mode to allow all traffic, \"deny-all\" to block all traffic or \"custom\" to provide specific rules. + type: object + additionalProperties: false + required: + - mode + properties: + mode: + description: The network access policy mode. Use \"allow-all\" to permit all outbound traffic. Use \"deny-all\" to block all outbound traffic. Use \"custom\" to specify explicit allow/deny rules. + type: string + enum: + - allow-all + - deny-all + - custom + - default-allow + - default-deny + example: custom + allowedDomains: + description: List of domain names the sandbox is allowed to connect to. Only applies when mode is \"custom\". Supports wildcard patterns (e.g., \"*.example.com\" matches all subdomains). + type: array + example: + - api.github.com + - '*.npmjs.org' + items: + type: string + description: A domain name pattern. Use \"*\" for wildcard matching of subdomains (e.g., \"*.example.com\"). + allowedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. Traffic to these addresses bypasses domain-based restrictions. + type: array + example: + - 35.192.0.0/12 + - 104.16.0.0/12 + items: + type: string + description: An IPv4 address range in CIDR notation (e.g., \"35.192.0.0/12\"). + deniedCIDRs: + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + type: array + example: + - 35.192.0.0/12 + items: + type: string + description: An IP address range in CIDR notation to block. + injectionRules: + description: HTTP header injection rules for outgoing requests matching specific domains. Traffic to matching domains will be intercepted instead of proxied through encrypted connections. + type: array + items: + type: object + additionalProperties: false + required: + - domain + - headers + properties: + domain: + description: The domain (or pattern) of requests to add headers for. Supports wildcards like *.example.com. + type: string + headers: + description: HTTP headers to inject into requests for this domain. Existing headers with the same name will be overridden. + type: object + additionalProperties: + type: string + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + allow: + oneOf: + - type: array + items: + type: string + - description: A rule applied to requests matching a domain in the network policy. Only one of `transform`, `forwardURL`, or `response` can be specified per rule. + type: object + additionalProperties: + type: array + items: + type: object + additionalProperties: false + properties: + match: + description: Optional L7 match. When provided, the injection rule only applies to requests that satisfy every specified dimension. When multiple injection rules target the same domain they are evaluated in order and the first match wins; a rule without `match` matches any request and shadows later rules for the same domain. + type: object + additionalProperties: false + properties: + path: + description: Match on the request path. Comparison is case-sensitive. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + method: + type: array + description: HTTP methods to match. Any single match succeeds (OR semantics). + items: + type: string + queryString: + type: array + description: Query-string entry matchers. Multiple entries are ANDed. Query parameter names and values are both compared case-sensitively (RFC 3986). When a request has multiple values for the same key, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + headers: + type: array + description: Header matchers. Multiple entries are ANDed. Header names are compared case-insensitively (RFC 9110); header values are compared case-sensitively. When a request has multiple values for the same header, any matching value satisfies the matcher. + items: + type: object + additionalProperties: false + properties: + key: + description: Matcher for the entry key (header name or query key). + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + value: + description: Matcher for the entry value. + type: object + additionalProperties: false + properties: + exact: + type: string + description: Match the value exactly. Case-sensitive for paths, header values, and methods; case-insensitive for domains and header keys. + startsWith: + type: string + description: Match values that start with the given prefix. + transform: + type: array + items: + type: object + additionalProperties: false + properties: + headers: + type: object + additionalProperties: + type: string + forwardURL: + type: string + description: HTTP/1.1 proxy URL to forward traffic to. Must not include username, password, query string, or fragment. + response: + description: Answer matching requests from the proxy with this response instead of forwarding them to the origin. Combine with a `match` on an earlier rule to allow one sub-path and reject the rest of a domain. + type: object + additionalProperties: false + required: + - statusCode + properties: + statusCode: + type: integer + minimum: 200 + maximum: 599 + description: HTTP status code returned to the sandbox. + headers: + type: object + additionalProperties: + type: string + description: HTTP response headers. Framing and hop-by-hop headers are managed by the proxy and cannot be set. + body: + type: string + description: UTF-8 response body. Requires `contentType`. + contentType: + type: string + description: Value of the `Content-Type` response header. Required when `body` is set. + subnets: + type: object + additionalProperties: false + properties: + allow: + type: array + items: + type: string + deny: + type: array + items: + type: string + resources: + description: Resources to define the VM + additionalProperties: false + type: object + properties: + vcpus: + description: The number of virtual CPUs to allocate to the sandbox. Must be 1, or an even number. + type: integer + minimum: 1 + default: 2 + example: 2 + memory: + description: The amount of memory in megabytes to allocate to the sandbox. Must equal vcpus * 2048. + type: integer + minimum: 2048 + example: 4096 + source: + description: The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot. + type: object + properties: + type: + description: Indicates the source is a Git repository. + url: + type: string + format: uri + description: The URL of the Git repository to clone. + example: https://github.com/vercel/next.js.git + username: + type: string + description: Username for Git authentication. Required together with password for private repositories. + password: + type: string + description: Password or personal access token for Git authentication. Required together with username for private repositories. + depth: + type: integer + minimum: 1 + description: Create a shallow clone with history truncated to the specified number of commits. Useful for faster cloning of large repositories. + example: 1 + revision: + type: string + description: The specific commit SHA, branch name, or tag to checkout after cloning. + example: main + snapshotId: + type: string + description: The unique identifier of the snapshot to restore. + example: snap_abc123 + required: + - type + - url + - snapshotId + additionalProperties: false + projectId: + description: The target project slug or ID in which the sandbox will be assigned to. + example: prj_abc123 + type: string + ports: + description: List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed. + type: array + maxItems: 15 + uniqueItems: true + example: + - 3000 + - 4000 + items: + type: integer + description: A port number to expose from the sandbox. Must be between 1024 and 65535. + not: + enum: + - 23456 + maximum: 65535 + minimum: 1024 + image: + type: string + maxLength: 255 + description: Image to use for the sandbox. + timeout: + type: integer + description: Maximum duration in milliseconds that the sandbox can run before being automatically stopped. + minimum: 1000 + example: 300000 + env: + type: object + additionalProperties: + type: string + description: Default environment variables for the sandbox. These are inherited by all commands unless overridden. + default: {} + example: + NODE_ENV: production + HELLO: world + mounts: + type: object + description: List of drives to mount to the sandbox at the provided path. + maxProperties: 4 + additionalProperties: + type: object + additionalProperties: false + required: + - drive + properties: + drive: + type: string + description: Name of the drive to mount. The drive must already exist. + maxLength: 64 + pattern: ^[a-zA-Z0-9_-]+$ + mode: + type: string + description: Mount the drive as read-write, or as a read-only snapshot. One writer is permitted at a time. + default: read-write + enum: + - snapshot + - read-write + region: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + default: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The Vercel region in which to create the sandbox. + example: iad1 + failoverRegions: + type: array + maxItems: 19 + uniqueItems: true + items: + type: string + enum: + - iad1 + - sfo1 + - cle1 + - cdg1 + - fra1 + - arn1 + - sin1 + - pdx1 + - lhr1 + - icn1 + - bom1 + - cpt1 + - dub1 + - gru1 + - hkg1 + - syd1 + - yul1 + - hnd1 + - kix1 + description: The regions the sandbox falls back to when it cannot be created in `region`. + example: + - sfo1 + - cle1 + networkId: + type: string + maxLength: 255 + description: The Connect network id for the target Secure Compute private network. + name: + example: my-sandbox + type: string + pattern: ^[a-zA-Z0-9_-]+$ + maxLength: 128 + description: Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). + persistent: + description: Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true. + type: boolean + default: true + snapshotExpiration: + description: Default snapshot expiration time in milliseconds. Defaults to 7 days. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox. + example: 604800000 + type: integer + keepLastSnapshots: + description: Protect the N most recent snapshots with different expiration/deletion behavior. Persistent sandboxes default to keeping only the last snapshot (evicted snapshots are deleted). Set to null to disable the limit. + type: string + additionalProperties: false + required: + - count + properties: + count: + type: integer + minimum: 1 + maximum: 10 + description: Number of most recent snapshots to keep. + expiration: + description: Expiration time in milliseconds for kept snapshots. Falls back to snapshotExpiration. + oneOf: + - {} + - type: integer + deleteEvicted: + type: boolean + description: Whether to immediately delete evicted snapshots. Defaults to true. + tags: + description: Key-value tags to associate with the sandbox. Maximum 5 tags. + type: object + maxProperties: 5 + additionalProperties: + type: string + maxLength: 256 + example: + env: staging + team: platform +components: + schemas: + NamedSandbox: + properties: + name: + type: string + description: The unique identifier of the sandbox. + example: my-sandbox + currentSnapshotId: + type: string + description: Current snapshot ID that the named sandbox is pointing to. + currentSessionId: + type: string + description: Current session ID the sandbox is pointing to. + status: + type: string + enum: + - running + - stopped + - stopping + description: The status of the current sandbox. + example: running + statusUpdatedAt: + type: number + description: The time when the sandbox status was last updated, in milliseconds since the epoch. + example: 1750344501629 + persistent: + type: boolean + enum: + - false + - true + description: Whether the sandbox persists its state across restarts via automatic snapshots. + example: true + region: + type: string + description: 'The region the sandbox is pinned to: the region stored on the sandbox, otherwise the platform default. Where a running session actually landed is reported by `session.region`.' + example: iad1 + failoverRegions: + items: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + description: The regions the sandbox fails over to. Empty when it does not fail over. + example: + - sfo1 + - cle1 + type: array + description: The regions the sandbox fails over to. Empty when it does not fail over. + example: + - sfo1 + - cle1 + vcpus: + type: number + description: Number of virtual CPUs allocated. + example: 2 + memory: + type: number + description: Memory allocated in MB. + example: 1024 + runtime: + type: string + description: Runtime identifier. + example: node22 + image: + type: string + description: Digest-pinned reference of the container image the sandbox was created from, when it was created from an image ("{repository}@{manifestDigest}"). + example: my-repo@sha256:2c4e8f9a1b3d5e7f091a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708 + timeout: + type: number + description: Timeout in milliseconds. + example: 300000 + snapshotExpiration: + type: number + description: Default snapshot expiration time in milliseconds. 0 means no expiration. + example: 604800000 + keepLastSnapshots: + properties: + count: + type: number + description: Number of most recent snapshots to keep. + example: 5 + expiration: + type: number + description: Expiration time in milliseconds for kept snapshots. + example: 604800000 + deleteEvicted: + type: boolean + enum: + - false + - true + description: Whether to immediately delete evicted snapshots. + example: true + required: + - count + - deleteEvicted + type: object + description: Keep-last snapshot configuration. + networkPolicy: + properties: + mode: + type: string + enum: + - allow-all + - custom + - default-allow + - default-deny + - deny-all + allowedDomains: + items: + type: string + type: array + allowedCIDRs: + items: + type: string + type: array + deniedCIDRs: + items: + type: string + type: array + s3Key: + type: string + required: + - mode + type: object + description: Network policy configuration. + networkId: + type: string + description: The Connect network id for the target Secure Compute private network. + totalEgressBytes: + type: number + description: Cumulative egress bytes across all sandbox runs. + example: 4096 + totalIngressBytes: + type: number + description: Cumulative ingress bytes across all sandbox runs. + example: 2048 + totalActiveCpuDurationMs: + type: number + description: Cumulative active CPU duration in milliseconds across all sandbox runs. + example: 5000 + totalDurationMs: + type: number + description: Cumulative wall-clock duration in milliseconds across all sandbox runs. + example: 60000 + cwd: + type: string + description: The working directory of the sandbox. + example: /vercel/sandbox + tags: + additionalProperties: + type: string + type: object + description: Key-value tags attached to the named sandbox. + example: + team: hive + user: bob + mounts: + additionalProperties: + properties: + drive: + type: string + mode: + type: string + enum: + - read-only + - read-write + - snapshot + required: + - drive + type: object + description: Key-value pairs of mount path and drive. + type: object + description: Key-value pairs of mount path and drive. + createdAt: + type: number + description: The time when the named sandbox was created, in milliseconds since the epoch. + example: 1750344501629 + updatedAt: + type: number + description: The time when the named sandbox was last updated, in milliseconds since the epoch. + example: 1750344501629 + expiresAt: + type: number + description: The time at which the currently running sandbox will time out, in milliseconds since the epoch. Only present while a session is running. + example: 1750344801629 + required: + - createdAt + - currentSessionId + - name + - persistent + - status + - statusUpdatedAt + - updatedAt + type: object + description: This object contains information related to a Vercel NamedSandbox. + Session: + properties: + sourceSandboxName: + type: string + description: The name of the source sandbox. + example: my-sandbox + projectId: + type: string + description: The unique identifier of the project associated with this session. + example: prj_123a6c5209bc3778245d011443644c8d27dc2c50 + id: + type: string + description: The unique identifier of the sandbox. + example: sbx_123a6c5209bc3778245d011443644c8d27dc2c50 + memory: + type: number + description: Memory allocated to this sandbox in MB. + example: 2048 + vcpus: + type: number + description: Number of vCPUs allocated to this sandbox. + example: 2 + region: + type: string + description: The region where the sandbox is hosted. + example: iad1 + runtime: + type: string + description: The runtime of the sandbox. + example: node22 + timeout: + type: number + description: The maximum amount of time the sandbox will run for in milliseconds. + example: 3600000 + status: + type: string + enum: + - aborted + - failed + - pending + - running + - snapshotting + - stopped + - stopping + description: The status of the sandbox. + example: running + requestedAt: + type: number + description: The time when the sandbox was requested, in milliseconds since the epoch. + example: 1750344501629 + startedAt: + type: number + description: The time when the sandbox was started, in milliseconds since the epoch. + example: 1750344501629 + cwd: + type: string + description: The working directory of the sandbox. + example: /vercel/sandbox + requestedStopAt: + type: number + description: The time when the sandbox was requested to stop, in milliseconds since the epoch. + example: 1750344501629 + stoppedAt: + type: number + description: The time when the sandbox was stopped, in milliseconds since the epoch. + example: 1750344501629 + abortedAt: + type: number + description: The time when the sandbox was aborted, in milliseconds since the epoch. + example: 1750344501629 + duration: + type: number + description: The duration of the sandbox in milliseconds. + example: 3600000 + sourceSnapshotId: + type: string + description: The unique identifier of the snapshot associated with this sandbox, if any. + example: snap_123a6c5209bc3778245d011443644c8d27dc2c50 + snapshottedAt: + type: number + description: The time when a snapshot was requested, in milliseconds since the epoch. + example: 1750344501629 + createdAt: + type: number + description: The time when the sandbox was created, in milliseconds since the epoch. + example: 1750344501629 + updatedAt: + type: number + description: The last time the sandbox was updated, in milliseconds since the epoch. + example: 1750344501629 + networkPolicy: + $ref: '#/components/schemas/SandboxNetworkPolicy' + activeCpuDurationMs: + type: number + description: The amount of CPU time the sandbox consumed, if available, in milliseconds. This value is only available once the sandbox is stopped, and only if it stopped successfully. + example: 42 + networkTransfer: + properties: + ingress: + type: number + egress: + type: number + required: + - egress + - ingress + type: object + description: The quantity of data transfered to and from the sandbox, in bytes. This value is only available once the sandbox is stopped, and only if it stopped successfully. + example: + in: 12543852 + out: 15368 + required: + - createdAt + - cwd + - id + - memory + - projectId + - region + - requestedAt + - runtime + - sourceSandboxName + - status + - timeout + - updatedAt + - vcpus + type: object + description: This object contains information related to a Vercel Sandbox Session. v2 endpoints return "session" instead of "sandbox" as the response wrapper key. + SandboxPublicRoute: + properties: + url: + type: string + description: A public URL to access the corresponding port in the Sandbox. + port: + type: number + description: The user port number that the route is mapped to. + subdomain: + type: string + description: The subdomain assigned to this route. + system: + type: boolean + enum: + - true + description: Whether the route is reserved by the system (e.g. for internal use). + required: + - port + - subdomain + - url + type: object + description: This object represents a public route in a Vercel Sandbox. + Drive: + properties: + id: + type: string + description: The unique drive ID. + example: drive_abc123 + name: + type: string + description: The unique drive name within the project. + example: workspace + projectId: + type: string + description: The project that owns the drive. + example: prj_abc123 + maxSizeBytes: + type: number + description: The maximum drive size in bytes. + example: 1099511627776 + region: + type: string + description: The region where the drive is stored. + example: iad1 + currentSessionId: + type: string + description: Current session ID the drive is attached to, if any. + example: sbx_123 + currentSandboxName: + type: string + description: Current sandbox name the drive is attached to, if any. + example: my-sandbox + createdAt: + type: number + description: The time when the drive was created, in milliseconds since the epoch. + example: 1750344501629 + updatedAt: + type: number + description: The last time the drive was updated, in milliseconds since the epoch. + example: 1750344501629 + required: + - createdAt + - id + - maxSizeBytes + - name + - projectId + - region + - updatedAt + type: object + description: This object contains information related to a Vercel Sandbox Drive. + Snapshot: + properties: + id: + type: string + description: The unique identifier of the snapshot. + example: snap_123a6c5209bc3778245d011443644c8d27dc2c50 + sourceSessionId: + type: string + description: The unique identifier of the session from which the snapshot was created. + example: sbx_123a6c5209bc3778245d011443644c8d27dc2c50 + region: + type: string + description: The region where the snapshot is stored. + example: iad1 + regions: + items: + type: string + type: array + description: The regions where the snapshot is available. + example: + - iad1 + - sfo1 + status: + type: string + enum: + - created + - deleted + - failed + description: The status of the snapshot. + example: created + sizeBytes: + type: number + description: The size of the snapshot in bytes. + example: 104857600 + expiresAt: + type: number + description: The time when the snapshot will expire, in milliseconds since the epoch. If not set, the snapshot does not have any expiration. + example: 1750344501629 + createdAt: + type: number + description: The time when the snapshot was created, in milliseconds since the epoch. + example: 1750344501629 + updatedAt: + type: number + description: The last time the snapshot was updated, in milliseconds since the epoch. + example: 1750344501629 + lastUsedAt: + type: number + description: The last time the snapshot was used (e.g. to resume or create a sandbox), in milliseconds since the epoch. Falls back to `createdAt` for older snapshots that predate this field. + example: 1750344501629 + creationMethod: + type: string + enum: + - automatic + - manual + description: The method used to create the snapshot. + example: manual + parentId: + type: string + description: The unique identifier of the parent snapshot, if this snapshot was created from another snapshot. + example: snap_parent123 + required: + - createdAt + - id + - lastUsedAt + - sizeBytes + - sourceSessionId + - status + - updatedAt + type: object + description: This object contains information related to a Snapshot of a Vercel Sandbox session (v2 API). + SessionCommand: + properties: + id: + type: string + description: The ID of the command. + example: cmd_123a6c5209bc3778245d011443644c8d27dc2c50 + name: + type: string + description: The name of the command. + example: npm + args: + items: + type: string + type: array + description: The arguments of the command. + example: + - run + - build + cwd: + type: string + description: The current working directory of the command. + example: /vercel/sandbox + sessionId: + type: string + description: The ID of the session associated with the command. + example: sbx_123a6c5209bc3778245d011443644c8d27dc2c50 + exitCode: + nullable: true + type: number + description: If the command did finish, the exit code. + example: 0 + startedAt: + type: number + description: When the command was started, in milliseconds since the epoch. + example: 1673123456789 + durationMs: + type: number + description: Duration of the command execution in milliseconds. + example: 1234 + required: + - args + - cwd + - exitCode + - id + - name + - sessionId + - startedAt + type: object + description: This object represents a command run in a Vercel Sandbox session (v2 API). + SandboxNetworkPolicy: + properties: + mode: + type: string + enum: + - allow-all + - custom + - deny-all + description: 'The network policy mode. - ''allow-all'': All traffic is allowed. - ''deny-all'': All traffic is blocked. - ''custom'': Traffic is controlled by explicit allow/deny rules.' + example: custom + allowedDomains: + items: + type: string + type: array + description: List of domain names the sandbox is allowed to connect to. Supports wildcard patterns (e.g., "*.vercel.com" matches all subdomains). + example: + - api.vercel.com + - '*.example.com' + allowedCIDRs: + items: + type: string + type: array + description: List of IP address ranges (in CIDR notation) the sandbox is allowed to connect to. + example: + - 10.0.0.0/8 + deniedCIDRs: + items: + type: string + type: array + description: List of IP address ranges (in CIDR notation) the sandbox is blocked from connecting to. These rules take precedence over all allowed rules. + example: + - 10.0.0.0/8 + injectionRules: + items: + $ref: '#/components/schemas/SandboxInjectionRule' + type: array + description: HTTP header injection rules for outgoing requests matching specific domains. + required: + - mode + type: object + description: The network policy applied to this sandbox, if any. + SandboxInjectionRule: + properties: + domain: + type: string + description: The domain (or pattern) that this injection rule applies to. Supports wildcards like *.vercel.com. + example: api.vercel.com + headerNames: + items: + type: string + type: array + description: The names of HTTP headers that have value that will be injected for requests to this domain. + example: + - Authorization + - X-API-Key + required: + - domain + type: object + description: HTTP header injection rules for outgoing requests matching specific domains. + StackqlTextResponse: + type: object + description: 'Wrapper for non-JSON response bodies (jsonl, ndjson, streamed json, octet-stream): one row carrying the raw body text.' + properties: + items: + type: array + items: + type: object + properties: + contents: + type: string + description: Raw response body. + x-stackQL-resources: + sandboxes: + id: vercel.sandboxes.sandboxes + name: sandboxes + title: Sandboxes + methods: + list: + operation: + $ref: '#/paths/~1v2~1sandboxes/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.sandboxes + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create_v2: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1sandboxes~1{name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.sandbox + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1{name}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1sandboxes~1{name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + fork_v2: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1{name}~1fork/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_v3: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1sandboxes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + fork: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1sandboxes~1{name}~1fork/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v4~1sandboxes/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sandboxes/methods/get' + - $ref: '#/components/x-stackQL-resources/sandboxes/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/sandboxes/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/sandboxes/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/sandboxes/methods/delete' + replace: [] + drives: + id: vercel.sandboxes.drives + name: drives + title: Drives + methods: + list: + operation: + $ref: '#/paths/~1v2~1sandboxes~1drives/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.drives + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get_or_create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1drives~1{name}/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1sandboxes~1drives~1{name}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/drives/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/drives/methods/get_or_create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/drives/methods/delete' + replace: [] + snapshots: + id: vercel.sandboxes.snapshots + name: snapshots + title: Snapshots + methods: + list: + operation: + $ref: '#/paths/~1v2~1sandboxes~1snapshots/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.snapshots + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v2~1sandboxes~1snapshots~1{snapshot_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.snapshot + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v2~1sandboxes~1snapshots~1{snapshot_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + create_v2: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1snapshot/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v3~1sandboxes~1sessions~1{session_id}~1snapshot/post' + response: + mediaType: application/json + openAPIDocKey: '201' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/snapshots/methods/get' + - $ref: '#/components/x-stackQL-resources/snapshots/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/snapshots/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/snapshots/methods/delete' + replace: [] + sessions: + id: vercel.sandboxes.sessions + name: sessions + title: Sessions + methods: + list: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.sessions + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.session + request: + nativeCasing: camel + stop: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1stop/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + extend_timeout: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1extend-timeout/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_network_policy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1network-policy/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sessions/methods/get' + - $ref: '#/components/x-stackQL-resources/sessions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + commands: + id: vercel.sandboxes.commands + name: commands + title: Commands + methods: + list: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1cmd/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.commands + request: + nativeCasing: camel + run: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1cmd/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1cmd~1{cmd_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.command + request: + nativeCasing: camel + kill: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1cmd~1{cmd_id}~1kill/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get_logs: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1cmd~1{cmd_id}~1logs/get' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/commands/methods/get' + - $ref: '#/components/x-stackQL-resources/commands/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + session_files: + id: vercel.sandboxes.session_files + name: session_files + title: Session Files + methods: + read: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1fs~1read/post' + response: + mediaType: text/plain + openAPIDocKey: '200' + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/StackqlTextResponse' + objectKey: $.items + transform: + type: golang_template_text_v0.3.0 + body: '{"items":[{"contents": {{ toJson . }}}]}' + request: + nativeCasing: camel + mkdir: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1fs~1mkdir/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + write: + operation: + $ref: '#/paths/~1v2~1sandboxes~1sessions~1{session_id}~1fs~1write/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/secrets.yaml b/providers/src/vercel/v00.00.00000/services/secrets.yaml deleted file mode 100644 index 7bf09493..00000000 --- a/providers/src/vercel/v00.00.00000/services/secrets.yaml +++ /dev/null @@ -1,533 +0,0 @@ -openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API -info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' - version: 0.0.1 - title: Vercel API - secrets - description: secrets -components: - schemas: - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - secrets: - id: vercel.secrets.secrets - name: secrets - title: Secrets - methods: - get_secrets: - operation: - $ref: '#/paths/~1v3~1secrets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.secrets - _get_secrets: - operation: - $ref: '#/paths/~1v3~1secrets/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_secret: - operation: - $ref: '#/paths/~1v2~1secrets~1{name}/post' - response: - mediaType: application/json - openAPIDocKey: '200' - rename_secret: - operation: - $ref: '#/paths/~1v2~1secrets~1{name}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - get_secret: - operation: - $ref: '#/paths/~1v3~1secrets~1{idOrName}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_secret: - operation: - $ref: '#/paths/~1v2~1secrets~1{idOrName}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/secrets/methods/get_secret' - - $ref: '#/components/x-stackQL-resources/secrets/methods/get_secrets' - insert: - - $ref: '#/components/x-stackQL-resources/secrets/methods/create_secret' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/secrets/methods/delete_secret' -paths: - /v3/secrets: - get: - description: Retrieves the active Vercel secrets for the authenticated user or team. By default it returns 20 secrets. The rest can be retrieved using the pagination options. The body will contain an entry for each secret. - operationId: getSecrets - security: - - bearerToken: [] - summary: List secrets - tags: - - secrets - responses: - '200': - description: Successful response retrieving a list of secrets. - content: - application/json: - schema: - properties: - secrets: - items: - properties: - created: - type: string - format: date-time - description: The date when the secret was created. - example: '2021-02-10T13:11:49.180Z' - name: - type: string - description: The name of the secret. - example: my-api-key - teamId: - nullable: true - type: string - description: The unique identifier of the team the secret was created for. - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - uid: - type: string - description: The unique identifier of the secret. - example: sec_XCG7t7AIHuO2SBA8667zNUiM - userId: - type: string - description: The unique identifier of the user who created the secret. - example: 2qDDuGFTWXBLDNnqZfWPDp1A - value: - type: string - description: The value of the secret. - createdAt: - type: number - description: Timestamp for when the secret was created. - example: 1609492210000 - projectId: - type: string - description: The unique identifier of the project which the secret belongs to. - example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE - decryptable: - type: boolean - description: Indicates whether the secret value can be decrypted after it has been created. - example: true - required: - - created - - name - - uid - type: object - description: Data representing a secret. - type: array - pagination: - $ref: '#/components/schemas/Pagination' - required: - - secrets - - pagination - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: id - description: Filter out secrets based on comma separated secret ids. - in: query - schema: - description: Filter out secrets based on comma separated secret ids. - type: string - example: 'sec_RKc5iV0rV3ZSrFrHiruRno7k,sec_fGc5iV0rV3ZSrFrHiruRnouQ' - deprecated: true - - name: projectId - description: Filter out secrets that belong to a project. - in: query - schema: - description: Filter out secrets that belong to a project. - type: string - example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE - deprecated: true - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - '/v2/secrets/{name}': - post: - description: Allows to create a new secret. - operationId: createSecret - security: - - bearerToken: [] - summary: Create a new secret - tags: - - secrets - responses: - '200': - description: Successful response showing the created secret. - content: - application/json: - schema: - properties: - value: - type: object - properties: - type: - type: string - enum: - - Buffer - data: - type: array - items: - type: number - created: - type: string - format: date-time - description: The date when the secret was created. - example: '2021-02-10T13:11:49.180Z' - name: - type: string - description: The name of the secret. - example: my-api-key - teamId: - nullable: true - type: string - description: The unique identifier of the team the secret was created for. - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - uid: - type: string - description: The unique identifier of the secret. - example: sec_XCG7t7AIHuO2SBA8667zNUiM - userId: - type: string - description: The unique identifier of the user who created the secret. - example: 2qDDuGFTWXBLDNnqZfWPDp1A - createdAt: - type: number - description: Timestamp for when the secret was created. - example: 1609492210000 - projectId: - type: string - description: The unique identifier of the project which the secret belongs to. - example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE - decryptable: - type: boolean - description: Indicates whether the secret value can be decrypted after it has been created. - example: true - required: - - value - - created - - name - - uid - type: object - '400': - description: One of the provided values in the request body is invalid. - '401': - description: '' - '402': - description: |- - The account was soft-blocked for an unhandled reason. - The account is missing a payment so payment method must be updated - '403': - description: You do not have permission to access this resource. - parameters: - - name: name - description: The name of the secret. - in: path - required: true - schema: - type: string - description: The name of the secret. - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - additionalProperties: false - type: object - required: - - name - - value - properties: - name: - description: The name of the secret (max 100 characters). - type: string - example: my-api-key - maximum: 100 - value: - description: The value of the new secret. - type: string - example: some secret value - decryptable: - description: Whether the secret value can be decrypted after it has been created. - type: boolean - example: true - projectId: - description: Associate a secret to a project. - type: string - example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE - deprecated: true - patch: - description: Enables to edit the name of a secret. The name has to be unique to the user or team’s secrets. - operationId: renameSecret - security: - - bearerToken: [] - summary: Change secret name - tags: - - secrets - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - uid: - type: string - name: - type: string - created: - type: string - format: date-time - oldName: - type: string - required: - - uid - - name - - created - - oldName - type: object - '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: name - description: The name of the secret. - in: path - required: true - schema: - description: The name of the secret. - type: string - example: my-api-key - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - additionalProperties: false - type: object - required: - - name - properties: - name: - description: The name of the new secret. - type: string - example: my-api-key - maximum: 100 - '/v3/secrets/{idOrName}': - get: - description: Retrieves the information for a specific secret by passing either the secret id or name in the URL. - operationId: getSecret - security: - - bearerToken: [] - summary: Get a single secret - tags: - - secrets - responses: - '200': - description: Successful response retrieving a secret. - content: - application/json: - schema: - properties: - created: - type: string - format: date-time - description: The date when the secret was created. - example: '2021-02-10T13:11:49.180Z' - name: - type: string - description: The name of the secret. - example: my-api-key - teamId: - nullable: true - type: string - description: The unique identifier of the team the secret was created for. - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - uid: - type: string - description: The unique identifier of the secret. - example: sec_XCG7t7AIHuO2SBA8667zNUiM - userId: - type: string - description: The unique identifier of the user who created the secret. - example: 2qDDuGFTWXBLDNnqZfWPDp1A - value: - type: string - description: The value of the secret. - createdAt: - type: number - description: Timestamp for when the secret was created. - example: 1609492210000 - projectId: - type: string - description: The unique identifier of the project which the secret belongs to. - example: prj_2WjyKQmM8ZnGcJsPWMrHRHrE - decryptable: - type: boolean - description: Indicates whether the secret value can be decrypted after it has been created. - example: true - required: - - created - - name - - uid - type: object - description: Data representing a secret. - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - '404': - description: '' - parameters: - - name: idOrName - description: The name or the unique identifier to which the secret belongs to. - in: path - required: true - schema: - description: The name or the unique identifier to which the secret belongs to. - type: string - example: sec_RKc5iV0rV3ZSrFrHiruRno7k - - name: decrypt - description: Whether to try to decrypt the value of the secret. Only works if `decryptable` has been set to `true` when the secret was created. - in: query - required: false - schema: - description: Whether to try to decrypt the value of the secret. Only works if `decryptable` has been set to `true` when the secret was created. - type: string - enum: - - 'true' - - 'false' - example: 'true' - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - '/v2/secrets/{idOrName}': - delete: - description: This deletes the user or team’s secret defined in the URL. - operationId: deleteSecret - security: - - bearerToken: [] - summary: Delete a secret - tags: - - secrets - responses: - '200': - description: '' - content: - application/json: - schema: - properties: - uid: - type: string - description: The unique identifier of the deleted secret. - example: sec_XCG7t7AIHuO2SBA8667zNUiM - name: - type: string - description: The name of the deleted secret. - example: my-api-key - created: - type: number - description: The date when the secret was created. - example: '2021-02-10T13:11:49.180Z' - required: - - uid - - name - - created - type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: idOrName - description: The name or the unique identifier to which the secret belongs to. - in: path - required: true - schema: - description: The name or the unique identifier to which the secret belongs to. - type: string - example: sec_RKc5iV0rV3ZSrFrHiruRno7k - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string diff --git a/providers/src/vercel/v00.00.00000/services/security.yaml b/providers/src/vercel/v00.00.00000/services/security.yaml new file mode 100644 index 00000000..ca9f5d98 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/security.yaml @@ -0,0 +1,8753 @@ +openapi: 3.0.3 +info: + title: security API + description: vercel security API + version: 0.0.1 +paths: + /v1/security/attack-mode: + post: + description: Update the setting for determining if the project has Attack Challenge mode enabled. + operationId: updateAttackChallengeMode + security: + - bearerToken: [] + summary: Update Attack Challenge mode + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeUpdatedAt: + type: number + required: + - attackModeEnabled + - attackModeUpdatedAt + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + required: + - projectId + - attackModeEnabled + - attackModeActiveUntil + properties: + projectId: + type: string + attackModeEnabled: + type: boolean + attackModeActiveUntil: + type: number + required: true + /v1/security/firewall/config: + get: + description: Lists WAF configs for a project + operationId: getSecurityFirewallConfig + security: [] + summary: Returns activated WAF config + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + active: + nullable: true + properties: + ownerId: + type: string + projectKey: + type: string + id: + type: string + version: + type: number + updatedAt: + type: string + firewallEnabled: + type: boolean + enum: + - false + - true + crs: + properties: + sd: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + ma: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + lfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rce: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + php: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + gen: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + xss: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sqli: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sf: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + java: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + required: + - gen + - java + - lfi + - ma + - php + - rce + - rfi + - sd + - sf + - sqli + - xss + type: object + rules: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - true + validationErrors: + nullable: true + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - false + validationErrors: + items: + type: string + type: array + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + type: array + ips: + items: + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - bypass + - challenge + - deny + - log + required: + - action + - hostname + - id + - ip + type: object + type: array + rulesets: + oneOf: + - items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + required: + - active + - conditionGroup + - id + - name + type: object + type: array + - additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + conditions: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + required: + - active + - conditionGroup + - id + - name + type: object + type: array + changes: + items: + type: string + description: (opaque JSON object) + type: array + managedRules: + properties: + bot_protection: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - changes + - firewallEnabled + - id + - ips + - ownerId + - projectKey + - rules + - updatedAt + - version + type: object + draft: + nullable: true + properties: + ownerId: + type: string + projectKey: + type: string + id: + type: string + version: + type: number + updatedAt: + type: string + firewallEnabled: + type: boolean + enum: + - false + - true + crs: + properties: + sd: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + ma: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + lfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rce: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + php: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + gen: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + xss: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sqli: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sf: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + java: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + required: + - gen + - java + - lfi + - ma + - php + - rce + - rfi + - sd + - sf + - sqli + - xss + type: object + rules: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - true + validationErrors: + nullable: true + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - false + validationErrors: + items: + type: string + type: array + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + type: array + ips: + items: + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - bypass + - challenge + - deny + - log + required: + - action + - hostname + - id + - ip + type: object + type: array + rulesets: + oneOf: + - items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + required: + - active + - conditionGroup + - id + - name + type: object + type: array + - additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + conditions: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + required: + - active + - conditionGroup + - id + - name + type: object + type: array + changes: + items: + type: string + description: (opaque JSON object) + type: array + managedRules: + properties: + bot_protection: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - changes + - firewallEnabled + - id + - ips + - ownerId + - projectKey + - rules + - updatedAt + - version + type: object + versions: + items: + properties: + ownerId: + type: string + projectKey: + type: string + id: + type: string + version: + type: number + updatedAt: + type: string + firewallEnabled: + type: boolean + enum: + - false + - true + crs: + properties: + sd: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + ma: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + lfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rce: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + php: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + gen: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + xss: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sqli: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sf: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + java: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + required: + - gen + - java + - lfi + - ma + - php + - rce + - rfi + - sd + - sf + - sqli + - xss + type: object + rules: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - true + validationErrors: + nullable: true + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - false + validationErrors: + items: + type: string + type: array + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + type: array + ips: + items: + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - bypass + - challenge + - deny + - log + required: + - action + - hostname + - id + - ip + type: object + type: array + rulesets: + oneOf: + - items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + required: + - active + - conditionGroup + - id + - name + type: object + type: array + - additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + conditions: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + required: + - active + - conditionGroup + - id + - name + type: object + type: array + changes: + items: + type: string + description: (opaque JSON object) + type: array + managedRules: + properties: + bot_protection: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - changes + - firewallEnabled + - id + - ips + - ownerId + - projectKey + - rules + - updatedAt + - version + type: object + type: array + required: + - active + - draft + - versions + type: object + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: [] + put: + description: Set the firewall configuration to provided rules and settings. Creates or overwrite the existing firewall configuration. + operationId: putFirewallConfig + security: + - bearerToken: [] + summary: Put Firewall Configuration + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + active: + properties: + ownerId: + type: string + projectKey: + type: string + id: + type: string + version: + type: number + updatedAt: + type: string + firewallEnabled: + type: boolean + enum: + - false + - true + crs: + properties: + sd: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Scanner Detection - Detect and prevent reconnaissance activities from network scanning tools. + ma: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Multipart Attack - Block attempts to bypass security controls using multipart/form-data encoding. + lfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Local File Inclusion Attack - Prevent unauthorized access to local files through web applications. + rfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Remote File Inclusion Attack - Prohibit unauthorized upload or execution of remote files. + rce: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Remote Execution Attack - Prevent unauthorized execution of remote scripts or commands. + php: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: PHP Attack - Safeguard against vulnerability exploits in PHP-based applications. + gen: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Generic Attack - Provide broad protection from various undefined or novel attack vectors. + xss: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: XSS Attack - Prevent injection of malicious scripts into trusted webpages. + sqli: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: SQL Injection Attack - Prohibit unauthorized use of SQL commands to manipulate databases. + sf: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Session Fixation Attack - Prevent unauthorized takeover of user sessions by enforcing unique session IDs. + java: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Java Attack - Mitigate risks of exploitation targeting Java-based applications or components. + required: + - gen + - java + - lfi + - ma + - php + - rce + - rfi + - sd + - sf + - sqli + - xss + type: object + description: Custom Ruleset + rules: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - true + validationErrors: + nullable: true + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - false + validationErrors: + items: + type: string + type: array + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + type: array + ips: + items: + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - bypass + - challenge + - deny + - log + required: + - action + - hostname + - id + - ip + type: object + type: array + rulesets: + oneOf: + - items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + required: + - active + - conditionGroup + - id + - name + type: object + type: array + - additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + conditions: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + required: + - active + - conditionGroup + - id + - name + type: object + type: array + changes: + items: + type: string + description: (opaque JSON object) + type: array + managedRules: + properties: + bot_protection: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - changes + - firewallEnabled + - id + - ips + - ownerId + - projectKey + - rules + - updatedAt + - version + type: object + required: + - active + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + firewallEnabled: + type: boolean + managedRules: + type: string + description: (opaque JSON object) + crs: + type: object + properties: + sd: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Scanner Detection - Detect and prevent reconnaissance activities from network scanning tools. + ma: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Multipart Attack - Block attempts to bypass security controls using multipart/form-data encoding. + lfi: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Local File Inclusion Attack - Prevent unauthorized access to local files through web applications. + rfi: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Remote File Inclusion Attack - Prohibit unauthorized upload or execution of remote files. + rce: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Remote Execution Attack - Prevent unauthorized execution of remote scripts or commands. + php: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: PHP Attack - Safeguard against vulnerability exploits in PHP-based applications. + gen: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Generic Attack - Provide broad protection from various undefined or novel attack vectors. + xss: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: XSS Attack - Prevent injection of malicious scripts into trusted webpages. + sqli: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: SQL Injection Attack - Prohibit unauthorized use of SQL commands to manipulate databases. + sf: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Session Fixation Attack - Prevent unauthorized takeover of user sessions by enforcing unique session IDs. + java: + type: object + properties: + active: + type: boolean + action: + type: string + enum: + - deny + - log + required: + - active + - action + additionalProperties: false + description: Java Attack - Mitigate risks of exploitation targeting Java-based applications or components. + additionalProperties: false + description: Custom Ruleset + rules: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + maxLength: 160 + description: + type: string + maxLength: 256 + active: + type: boolean + conditionGroup: + type: array + items: + type: object + properties: + conditions: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - path + - method + - header + - query + - cookie + - target_path + - route + - raw_path + - ip_address + - region + - protocol + - scheme + - environment + - domain_environment + - user_agent + - geo_continent + - geo_country + - geo_country_region + - geo_city + - geo_as_number + - ja4_digest + - ja3_digest + - rate_limit_api_id + - server_action + - bot_name + - bot_category + - bot_status + - bot_protection + - shared_condition + - traffic_source + - ruleset + description: '[Parameter](https://vercel.com/docs/security/vercel-waf/rule-configuration#parameters) from the incoming traffic.' + op: + type: string + enum: + - re + - eq + - neq + - ex + - nex + - inc + - ninc + - pre + - suf + - sub + - gt + - gte + - lt + - lte + - list + neg: + type: boolean + key: + type: string + value: + anyOf: + - type: string + - type: array + items: + type: string + maxItems: 75 + - type: number + required: + - type + - op + additionalProperties: false + maxItems: 65 + required: + - conditions + additionalProperties: false + maxItems: 25 + action: + type: object + properties: + mitigate: + type: object + properties: + action: + type: string + enum: + - log + - challenge + - deny + - bypass + - rate_limit + - redirect + rateLimit: + anyOf: + - type: object + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + type: array + items: + type: string + action: + anyOf: + - type: string + enum: + - log + - challenge + - deny + - rate_limit + - {} + nullable: true + required: + - algo + - window + - limit + - keys + additionalProperties: false + - {} + nullable: true + redirect: + anyOf: + - type: object + properties: + location: + type: string + permanent: + type: boolean + required: + - location + - permanent + additionalProperties: false + - {} + nullable: true + actionDuration: + type: string + nullable: true + bypassSystem: + type: boolean + nullable: true + logHeaders: + oneOf: + - type: string + - type: array + items: + type: string + required: + - action + additionalProperties: false + additionalProperties: false + valid: + type: boolean + validationErrors: + anyOf: + - type: array + items: + type: string + - type: string + required: + - name + - active + - conditionGroup + - action + additionalProperties: false + rulesets: + type: array + maxItems: 25 + items: + type: object + properties: + id: + type: string + name: + type: string + maxLength: 160 + description: + type: string + maxLength: 256 + active: + type: boolean + conditionGroup: + type: array + items: + type: object + properties: + conditions: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - path + - method + - header + - query + - cookie + - target_path + - route + - raw_path + - ip_address + - region + - protocol + - scheme + - environment + - domain_environment + - user_agent + - geo_continent + - geo_country + - geo_country_region + - geo_city + - geo_as_number + - ja4_digest + - ja3_digest + - rate_limit_api_id + - server_action + - bot_name + - bot_category + - bot_status + - bot_protection + - shared_condition + - traffic_source + - ruleset + op: + type: string + enum: + - re + - eq + - neq + - ex + - nex + - inc + - ninc + - pre + - suf + - sub + - gt + - gte + - lt + - lte + - list + neg: + type: boolean + key: + type: string + value: + anyOf: + - type: string + - type: array + items: + type: string + maxItems: 75 + - type: number + required: + - type + - op + additionalProperties: false + maxItems: 65 + required: + - conditions + additionalProperties: false + maxItems: 25 + action: + type: object + properties: + mitigate: + type: object + properties: + action: + type: string + enum: + - deny + - challenge + - log + required: + - action + additionalProperties: false + additionalProperties: false + valid: + type: boolean + validationErrors: + anyOf: + - type: array + items: + type: string + - type: string + required: + - name + - active + - conditionGroup + additionalProperties: false + maxProperties: 25 + additionalProperties: + type: object + properties: + action: + type: string + enum: + - deny + - challenge + - log + - allow + required: + - action + additionalProperties: false + ips: + type: array + items: + type: object + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - deny + - challenge + - log + - bypass + required: + - hostname + - ip + - action + additionalProperties: false + botIdEnabled: + type: boolean + logHeaders: + type: string + items: + type: string + required: + - firewallEnabled + additionalProperties: false + required: true + patch: + description: Process updates to modify the existing firewall config for a project + operationId: updateFirewallConfig + security: + - bearerToken: [] + summary: Update Firewall Configuration + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + description: Add a ruleset + type: object + properties: + action: + type: string + enum: + - firewallEnabled + id: + nullable: true + value: + type: object + properties: + name: + type: string + maxLength: 160 + description: + type: string + maxLength: 256 + active: + type: boolean + conditionGroup: + type: array + items: + type: object + properties: + conditions: + type: array + items: + type: object + properties: + type: + type: string + enum: + - host + - path + - method + - header + - query + - cookie + - target_path + - route + - raw_path + - ip_address + - region + - protocol + - scheme + - environment + - domain_environment + - user_agent + - geo_continent + - geo_country + - geo_country_region + - geo_city + - geo_as_number + - ja4_digest + - ja3_digest + - rate_limit_api_id + - server_action + - bot_name + - bot_category + - bot_status + - bot_protection + - shared_condition + - traffic_source + - ruleset + op: + type: string + enum: + - re + - eq + - neq + - ex + - nex + - inc + - ninc + - pre + - suf + - sub + - gt + - gte + - lt + - lte + - list + neg: + type: boolean + key: + type: string + value: + anyOf: + - type: string + - type: array + items: + type: string + maxItems: 75 + - type: number + required: + - type + - op + additionalProperties: false + maxItems: 65 + required: + - conditions + additionalProperties: false + maxItems: 25 + action: + type: object + properties: + mitigate: + type: object + properties: + action: + type: string + enum: + - deny + - challenge + - log + required: + - action + additionalProperties: false + additionalProperties: false + valid: + type: boolean + validationErrors: + anyOf: + - type: array + items: + type: string + - type: string + required: + - name + - active + - conditionGroup + additionalProperties: false + required: + - action + - value + - id + additionalProperties: false + required: true + /v1/security/firewall/config/{config_version}: + get: + description: Retrieve the specified firewall configuration for a project. The deployed configVersion will be `active` + operationId: getFirewallConfig + security: + - bearerToken: [] + summary: Read Firewall Configuration + tags: + - security + responses: + '200': + description: 'If the firewall configuration includes a [custom managed ruleset](https://vercel.com/docs/security/vercel-waf/managed-rulesets), it will include a `crs` item that has the following values: sd: Scanner Detection ma: Multipart Attack lfi: Local File Inclusion Attack rfi: Remote File Inclusion Attack rce: Remote Execution Attack php: PHP Attack gen: Generic Attack xss: XSS Attack sqli: SQL Injection Attack sf: Session Fixation Attack java: Java Attack' + content: + application/json: + schema: + properties: + ownerId: + type: string + projectKey: + type: string + id: + type: string + version: + type: number + updatedAt: + type: string + firewallEnabled: + type: boolean + enum: + - false + - true + crs: + properties: + sd: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Scanner Detection - Detect and prevent reconnaissance activities from network scanning tools. + ma: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Multipart Attack - Block attempts to bypass security controls using multipart/form-data encoding. + lfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Local File Inclusion Attack - Prevent unauthorized access to local files through web applications. + rfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Remote File Inclusion Attack - Prohibit unauthorized upload or execution of remote files. + rce: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Remote Execution Attack - Prevent unauthorized execution of remote scripts or commands. + php: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: PHP Attack - Safeguard against vulnerability exploits in PHP-based applications. + gen: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Generic Attack - Provide broad protection from various undefined or novel attack vectors. + xss: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: XSS Attack - Prevent injection of malicious scripts into trusted webpages. + sqli: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: SQL Injection Attack - Prohibit unauthorized use of SQL commands to manipulate databases. + sf: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Session Fixation Attack - Prevent unauthorized takeover of user sessions by enforcing unique session IDs. + java: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + description: Java Attack - Mitigate risks of exploitation targeting Java-based applications or components. + required: + - gen + - java + - lfi + - ma + - php + - rce + - rfi + - sd + - sf + - sqli + - xss + type: object + description: Custom Ruleset + rules: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - true + validationErrors: + nullable: true + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - false + validationErrors: + items: + type: string + type: array + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + type: array + ips: + items: + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - bypass + - challenge + - deny + - log + required: + - action + - hostname + - id + - ip + type: object + type: array + rulesets: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + required: + - active + - conditionGroup + - id + - name + type: object + type: array + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + conditions: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + required: + - active + - conditionGroup + - id + - name + type: object + type: array + changes: + items: + type: string + description: (opaque JSON object) + type: array + managedRules: + properties: + bot_protection: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + logHeaders: + items: + type: string + type: array + enum: + - '*' + required: + - changes + - firewallEnabled + - id + - ips + - ownerId + - projectKey + - rules + - updatedAt + - version + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + - description: The deployed configVersion for the firewall configuration + in: path + name: config_version + required: true + schema: + type: string + delete: + description: Promotes a draft WAF config to an active config + operationId: deleteSecurityFirewallConfigByConfigVersion + security: [] + summary: Returns activated WAF config + tags: + - security + responses: + '204': + description: '' + content: + application/json: + schema: + type: string + enum: + - '' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - description: The deployed configVersion for the firewall configuration + in: path + name: config_version + required: true + schema: + type: string + /v1/security/firewall/config/{config_version}/activate: + post: + description: Promotes a draft WAF config to an active config + operationId: createSecurityFirewallConfigByConfigVersionActivate + security: [] + summary: Returns activated WAF config + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + ownerId: + type: string + projectKey: + type: string + id: + type: string + version: + type: number + updatedAt: + type: string + firewallEnabled: + type: boolean + enum: + - false + - true + crs: + properties: + sd: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + ma: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + lfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rfi: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + rce: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + php: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + gen: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + xss: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sqli: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + sf: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + java: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - deny + - log + required: + - action + - active + type: object + required: + - gen + - java + - lfi + - ma + - php + - rce + - rfi + - sd + - sf + - sqli + - xss + type: object + rules: + items: + oneOf: + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - true + validationErrors: + nullable: true + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + - properties: + id: + type: string + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + valid: + type: boolean + enum: + - false + validationErrors: + items: + type: string + type: array + required: + - action + - active + - conditionGroup + - id + - name + - valid + - validationErrors + type: object + type: array + ips: + items: + properties: + id: + type: string + hostname: + type: string + ip: + type: string + notes: + type: string + action: + type: string + enum: + - bypass + - challenge + - deny + - log + required: + - action + - hostname + - id + - ip + type: object + type: array + rulesets: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + type: object + required: + - active + - conditionGroup + - id + - name + type: object + type: array + additionalProperties: + properties: + action: + type: string + enum: + - allow + - bypass + - challenge + - deny + - log + - rate_limit + - redirect + rateLimit: + nullable: true + properties: + algo: + type: string + enum: + - fixed_window + - token_bucket + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + enum: + - challenge + - deny + - log + - rate_limit + - null + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + bypassSystem: + nullable: true + type: boolean + enum: + - false + - true + - null + logHeaders: + oneOf: + - items: + type: string + type: array + - type: string + enum: + - '*' + required: + - action + type: object + conditions: + items: + properties: + description: + type: string + id: + type: string + name: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + enum: + - bot_category + - bot_name + - bot_protection + - bot_status + - cookie + - domain_environment + - environment + - geo_as_number + - geo_city + - geo_continent + - geo_country + - geo_country_region + - header + - host + - ip_address + - ja3_digest + - ja4_digest + - method + - path + - protocol + - query + - rate_limit_api_id + - raw_path + - region + - route + - ruleset + - scheme + - server_action + - shared_condition + - target_path + - traffic_source + - trusted_source + - user_agent + op: + type: string + enum: + - eq + - ex + - gt + - gte + - inc + - list + - lt + - lte + - neq + - nex + - ninc + - pre + - re + - sub + - suf + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + required: + - active + - conditionGroup + - id + - name + type: object + type: array + changes: + items: + type: string + description: (opaque JSON object) + type: array + managedRules: + properties: + bot_protection: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + ai_bots: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + owasp: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + vercel_ruleset: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + traffic_sources: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + updatedAt: + type: string + userId: + type: string + username: + type: string + required: + - active + type: object + type: object + botIdEnabled: + type: boolean + enum: + - false + - true + logHeaders: + items: + type: string + type: array + enum: + - '*' + required: + - changes + - firewallEnabled + - id + - ips + - ownerId + - projectKey + - rules + - updatedAt + - version + type: object + '400': + description: '' + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - description: The deployed configVersion for the firewall configuration + in: path + name: config_version + required: true + schema: + type: string + /v1/security/firewall/attack-status: + get: + description: 'Retrieve active attack data within the last N days (default: 1 day)' + operationId: getActiveAttackStatus + security: + - bearerToken: [] + summary: Read active attack data + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + anomalies: + items: + properties: + projectId: + type: string + ownerId: + type: string + startTime: + type: number + endTime: + nullable: true + type: number + atMinute: + type: number + state: + type: string + affectedHostMap: + additionalProperties: + properties: + anomalyAlerts: + additionalProperties: + properties: + at_minute: + type: string + zscore: + type: number + total_requests_minute: + type: number + avg_requests: + type: number + stddev_requests: + type: number + required: + - at_minute + - avg_requests + - stddev_requests + - total_requests_minute + - zscore + type: object + type: object + ddosAlerts: + additionalProperties: + properties: + atMinute: + type: string + totalReqs: + type: number + required: + - atMinute + - totalReqs + type: object + type: object + type: object + type: object + required: + - affectedHostMap + - atMinute + - endTime + - ownerId + - projectId + - startTime + type: object + type: array + required: + - anomalies + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - name: since + in: query + required: false + schema: + type: number + minimum: 1 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + x-speakeasy-test: false + /v1/security/firewall/bypass: + get: + description: Retrieve the system bypass rules configured for the specified project + operationId: getBypassIp + security: + - bearerToken: [] + summary: Read System Bypass + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + result: + items: + properties: + OwnerId: + type: string + Id: + type: string + Domain: + type: string + Ip: + type: string + Action: + type: string + enum: + - block + - bypass + ProjectId: + type: string + IsProjectRule: + type: boolean + enum: + - false + - true + Note: + type: string + CreatedAt: + type: string + ActorId: + type: string + UpdatedAt: + type: string + UpdatedAtHour: + type: string + DeletedAt: + type: string + ExpiresAt: + nullable: true + type: number + required: + - CreatedAt + - Domain + - Id + - Ip + - OwnerId + - UpdatedAt + - UpdatedAtHour + type: object + type: array + pagination: + properties: + OwnerId: + type: string + Id: + type: string + required: + - Id + - OwnerId + type: object + required: + - result + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - name: limit + in: query + required: false + schema: + type: number + example: 10 + maximum: 256 + - name: sourceIp + description: Filter by source IP + in: query + required: false + schema: + description: Filter by source IP + type: string + maxLength: 49 + - name: domain + description: Filter by domain + in: query + required: false + schema: + description: Filter by domain + type: string + pattern: ([a-z]+[a-z.]+)$ + maxLength: 2544 + - name: projectScope + description: Filter by project scoped rules + in: query + required: false + schema: + description: Filter by project scoped rules + type: boolean + - name: offset + description: Used for pagination. Retrieves results after the provided id + in: query + required: false + schema: + description: Used for pagination. Retrieves results after the provided id + type: string + maxLength: 2560 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + post: + description: Create new system bypass rules + operationId: addBypassIp + security: + - bearerToken: [] + summary: Create System Bypass Rule + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + ok: + type: boolean + enum: + - false + - true + result: + items: + properties: + OwnerId: + type: string + Id: + type: string + Domain: + type: string + Ip: + type: string + ProjectId: + type: string + Note: + type: string + IsProjectRule: + type: boolean + enum: + - false + - true + required: + - Domain + - Id + - IsProjectRule + - Note + - OwnerId + - ProjectId + type: object + type: array + pagination: + nullable: true + required: + - ok + - pagination + - result + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + domain: + type: string + pattern: ([a-z]+[a-z.]+)$ + maxLength: 2544 + projectScope: + type: boolean + description: If the specified bypass will apply to all domains for a project. + sourceIp: + type: string + allSources: + type: boolean + ttl: + type: number + description: Time to live in milliseconds + note: + type: string + maxLength: 500 + required: + - domain + - projectScope + delete: + description: Remove system bypass rules + operationId: removeBypassIp + security: + - bearerToken: [] + summary: Remove System Bypass Rule + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + ok: + type: boolean + enum: + - false + - true + required: + - ok + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + domain: + type: string + pattern: ([a-z]+[a-z.]+)$ + maxLength: 2544 + projectScope: + type: boolean + sourceIp: + type: string + allSources: + type: boolean + note: + type: string + maxLength: 500 + required: + - domain + - projectScope + /v1/security/firewall/events: + get: + description: Retrieve firewall actions for a project Rule names are resolved against the project's *current* active firewall configuration and the team's active rulesets, so a rule that has since been renamed reports its new name and one that has been deleted reports `null`. System rules such as `sys_dos_mitigation` and `ip_blocking` have no configured name and always report `null`. + operationId: getSecurityFirewallEvents + security: + - bearerToken: [] + summary: Read Firewall Actions by Project + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + actions: + items: + properties: + ruleName: + nullable: true + type: string + startTime: + type: string + endTime: + type: string + isActive: + type: boolean + enum: + - false + - true + action_type: + type: string + action: + type: string + ruleId: + nullable: true + type: string + host: + type: string + public_ip: + type: string + count: + type: number + required: + - action + - action_type + - count + - endTime + - host + - isActive + - public_ip + - ruleId + - ruleName + - startTime + type: object + type: array + required: + - actions + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '408': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + - name: startTimestamp + in: query + required: false + schema: + type: number + - name: endTimestamp + in: query + required: false + schema: + type: number + - name: hosts + in: query + required: false + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/security/firewall/config/generate-rule: + post: + description: Generate a firewall rule from a natural language description. + operationId: generateFirewallRule + security: + - bearerToken: [] + summary: Generate a firewall rule from natural language + tags: + - security + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + rule: + properties: + name: + type: string + description: + type: string + active: + type: boolean + enum: + - false + - true + conditionGroup: + items: + properties: + conditions: + items: + properties: + type: + type: string + op: + type: string + neg: + type: boolean + enum: + - false + - true + key: + type: string + value: + oneOf: + - type: string + - type: number + - items: + type: string + type: array + required: + - op + - type + type: object + type: array + required: + - conditions + type: object + type: array + action: + properties: + mitigate: + properties: + action: + type: string + rateLimit: + nullable: true + properties: + algo: + type: string + window: + type: number + limit: + type: number + keys: + items: + type: string + type: array + action: + nullable: true + type: string + required: + - algo + - keys + - limit + - window + type: object + redirect: + nullable: true + properties: + location: + type: string + permanent: + type: boolean + enum: + - false + - true + required: + - location + - permanent + type: object + actionDuration: + nullable: true + type: string + required: + - action + type: object + type: object + required: + - action + - active + - conditionGroup + - name + type: object + error: + type: string + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '408': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: projectId + in: query + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + attack_challenge_mode: + id: vercel.security.attack_challenge_mode + name: attack_challenge_mode + title: Attack Challenge Mode + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1security~1attack-mode/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/attack_challenge_mode/methods/update' + delete: [] + replace: [] + firewall_config: + id: vercel.security.firewall_config + name: firewall_config + title: Firewall Config + methods: + get: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + replace: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config/put' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + generate_rule: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config~1generate-rule/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/firewall_config/methods/get' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/firewall_config/methods/update' + delete: [] + replace: + - $ref: '#/components/x-stackQL-resources/firewall_config/methods/replace' + firewall_config_versions: + id: vercel.security.firewall_config_versions + name: firewall_config_versions + title: Firewall Config Versions + methods: + get: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config~1{config_version}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config~1{config_version}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + activate: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1config~1{config_version}~1activate/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/firewall_config_versions/methods/get' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/firewall_config_versions/methods/delete' + replace: [] + attack_status: + id: vercel.security.attack_status + name: attack_status + title: Attack Status + methods: + get: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1attack-status/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.anomalies + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/attack_status/methods/get' + insert: [] + update: [] + delete: [] + replace: [] + firewall_bypass: + id: vercel.security.firewall_bypass + name: firewall_bypass + title: Firewall Bypass + methods: + list: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1bypass/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.result + request: + nativeCasing: camel + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1security~1firewall~1bypass/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1bypass/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/firewall_bypass/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/firewall_bypass/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/firewall_bypass/methods/delete' + replace: [] + firewall_events: + id: vercel.security.firewall_events + name: firewall_events + title: Firewall Events + methods: + list: + operation: + $ref: '#/paths/~1v1~1security~1firewall~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/firewall_events/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/storage.yaml b/providers/src/vercel/v00.00.00000/services/storage.yaml new file mode 100644 index 00000000..3b141094 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/storage.yaml @@ -0,0 +1,653 @@ +openapi: 3.0.3 +info: + title: storage API + description: vercel storage API + version: 0.0.1 +paths: + /storage/stores/{id}: + get: + description: '' + operationId: getStorageStoresById + security: [] + summary: Get a store + tags: + - storage + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + store: + type: object + properties: + projectsMetadata: + items: + properties: + id: + type: string + projectId: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + latestDeployment: + type: string + environments: + items: + type: string + type: array + envVarPrefix: + nullable: true + type: string + environmentVariables: + items: + type: string + type: array + deployments: + properties: + required: + type: boolean + enum: + - false + - true + actions: + items: + properties: + slug: + type: string + environments: + items: + type: string + type: array + required: + - environments + - slug + type: object + type: array + required: + - actions + - required + type: object + makeEnvVarsSensitive: + type: boolean + enum: + - false + - true + required: + - envVarPrefix + - environmentVariables + - environments + - id + - name + - projectId + type: object + type: array + projectFilter: + properties: + git: + properties: + providers: + oneOf: + - items: + type: string + enum: + - bitbucket + - github + - gitlab + type: array + - type: string + enum: + - '*' + owners: + items: + type: string + type: array + repos: + items: + type: string + type: array + required: + - providers + type: object + type: object + totalConnectedProjects: + type: number + usageQuotaExceeded: + type: boolean + enum: + - false + - true + status: + nullable: true + type: string + enum: + - available + - error + - initializing + - limits-exceeded-suspended + - limits-exceeded-suspended-store-count + - onboarding + - suspended + - uninstalled + - null + required: + - projectsMetadata + - status + - usageQuotaExceeded + required: + - store + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: id + in: path + required: true + schema: + type: string + - name: skip-metadata + in: query + required: false + schema: + type: boolean + - name: include-guides + in: query + required: false + schema: + type: boolean + /storage/stores/blob: + post: + description: '' + operationId: createStorageStoresBlob + security: [] + summary: Create a Blob store + tags: + - storage + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + store: + nullable: true + type: object + properties: + projectsMetadata: + items: + properties: + id: + type: string + projectId: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + latestDeployment: + type: string + environments: + items: + type: string + type: array + envVarPrefix: + nullable: true + type: string + environmentVariables: + items: + type: string + type: array + deployments: + properties: + required: + type: boolean + enum: + - false + - true + actions: + items: + properties: + slug: + type: string + environments: + items: + type: string + type: array + required: + - environments + - slug + type: object + type: array + required: + - actions + - required + type: object + makeEnvVarsSensitive: + type: boolean + enum: + - false + - true + required: + - envVarPrefix + - environmentVariables + - environments + - id + - name + - projectId + type: object + type: array + projectFilter: + properties: + git: + properties: + providers: + oneOf: + - items: + type: string + enum: + - bitbucket + - github + - gitlab + type: array + - type: string + enum: + - '*' + owners: + items: + type: string + type: array + repos: + items: + type: string + type: array + required: + - providers + type: object + type: object + totalConnectedProjects: + type: number + usageQuotaExceeded: + type: boolean + enum: + - false + - true + status: + nullable: true + type: string + enum: + - available + - error + - initializing + - limits-exceeded-suspended + - limits-exceeded-suspended-store-count + - onboarding + - suspended + - uninstalled + - null + access: + type: string + enum: + - private + - public + kind: + type: string + enum: + - project-default + - user-created + description: A project-default store is a private blob store that is lazily created per-project, uses OIDC auth instead of read-write tokens, and cannot be modified through standard store mutation APIs. Undefined for legacy stores. + projectId: + type: string + description: The project this store is scoped to. Set for project-default stores and user-created stores with enforced project association. + size: + type: number + count: + type: number + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - dxb1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + isTokenExpired: + type: boolean + enum: + - false + - true + required: + - count + - isTokenExpired + - projectsMetadata + - region + - size + - status + - usageQuotaExceeded + required: + - store + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + '429': + description: '' + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + required: + - name + properties: + name: + type: string + maxLength: 70 + region: + type: string + enum: + - arn1 + - bom1 + - cdg1 + - cle1 + - cpt1 + - dub1 + - dxb1 + - fra1 + - gru1 + - hkg1 + - hnd1 + - iad1 + - icn1 + - kix1 + - lhr1 + - pdx1 + - sfo1 + - sin1 + - syd1 + - yul1 + access: + type: string + enum: + - public + - private + default: public + projectId: + type: string + maxLength: 50 + /storage/stores/blob/{id}: + delete: + description: '' + operationId: deleteStorageStoresBlobById + security: [] + summary: Delete a Blob store + tags: + - storage + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + id: + type: string + required: + - id + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - name: id + in: path + required: true + schema: + type: string +components: + x-stackQL-resources: + stores: + id: vercel.storage.stores + name: stores + title: Stores + methods: + get: + operation: + $ref: '#/paths/~1storage~1stores~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.store + request: + nativeCasing: camel + create_blob: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1storage~1stores~1blob/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_blob: + operation: + $ref: '#/paths/~1storage~1stores~1blob~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/stores/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/stores/methods/create_blob' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/stores/methods/delete_blob' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/teams.yaml b/providers/src/vercel/v00.00.00000/services/teams.yaml index c6e8fb7b..26afd855 100644 --- a/providers/src/vercel/v00.00.00000/services/teams.yaml +++ b/providers/src/vercel/v00.00.00000/services/teams.yaml @@ -1,476 +1,10 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: teams API + description: vercel teams API version: 0.0.1 - title: Vercel API - teams - description: teams -components: - schemas: - Team: - type: object - description: Data representing a Team. - properties: - id: - type: string - description: The Team's unique identifier. - example: team_nllPyCtREAqxxdyFKbbMDlxd - slug: - type: string - description: 'The Team''s slug, which is unique across the Vercel platform.' - example: my-team - name: - nullable: true - type: string - description: 'Name associated with the Team account, or `null` if none has been provided.' - example: My Team - avatar: - nullable: true - type: string - description: The ID of the file used as avatar for this Team. - example: 6eb07268bcfadd309905ffb1579354084c24655c - additionalProperties: true - TeamLimited: - properties: - limited: - type: boolean - description: 'Property indicating that this Team data contains only limited information, due to the authentication token missing privileges to read the full Team data. Re-login with the Team''s configured SAML Single Sign-On provider in order to upgrade the authentication token with the necessary privileges.' - saml: - properties: - connection: - properties: - type: - type: string - description: 'The Identity Provider "type", for example Okta.' - example: OktaSAML - status: - type: string - description: Current status of the connection. - example: linked - state: - type: string - description: Current state of the connection. - example: active - connectedAt: - type: number - description: Timestamp (in milliseconds) of when the configuration was connected. - example: 1611796915677 - lastReceivedWebhookEvent: - type: number - description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. - example: 1611796915677 - required: - - type - - status - - state - - connectedAt - type: object - description: Information for the SAML Single Sign-On configuration. - directory: - properties: - type: - type: string - description: 'The Identity Provider "type", for example Okta.' - example: OktaSAML - status: - type: string - description: Current status of the connection. - example: linked - state: - type: string - description: Current state of the connection. - example: active - connectedAt: - type: number - description: Timestamp (in milliseconds) of when the configuration was connected. - example: 1611796915677 - lastReceivedWebhookEvent: - type: number - description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. - example: 1611796915677 - required: - - type - - status - - state - - connectedAt - type: object - description: Information for the SAML Single Sign-On configuration. - enforced: - type: boolean - description: 'When `true`, interactions with the Team **must** be done with an authentication token that has been authenticated with the Team''s SAML Single Sign-On provider.' - required: - - enforced - type: object - description: 'When "Single Sign-On (SAML)" is configured, this object contains information that allows the client-side to identify whether or not this Team has SAML enforced.' - id: - type: string - description: The Team's unique identifier. - example: team_nllPyCtREAqxxdyFKbbMDlxd - slug: - type: string - description: 'The Team''s slug, which is unique across the Vercel platform.' - example: my-team - name: - nullable: true - type: string - description: 'Name associated with the Team account, or `null` if none has been provided.' - example: My Team - avatar: - nullable: true - type: string - description: The ID of the file used as avatar for this Team. - example: 6eb07268bcfadd309905ffb1579354084c24655c - membership: - oneOf: - - properties: - confirmed: - type: boolean - confirmedAt: - type: number - accessRequestedAt: - type: number - role: - type: string - enum: - - OWNER - - MEMBER - - VIEWER - - DEVELOPER - - BILLING - - CONTRIBUTOR - teamId: - type: string - uid: - type: string - createdAt: - type: number - created: - type: number - joinedFrom: - properties: - origin: - type: string - enum: - - link - - saml - - mail - - import - - teams - - github - - gitlab - - bitbucket - - dsync - - feedback - - organization-teams - commitId: - type: string - repoId: - type: string - repoPath: - type: string - gitUserId: - oneOf: - - type: string - - type: number - gitUserLogin: - type: string - ssoUserId: - type: string - ssoConnectedAt: - type: number - idpUserId: - type: string - dsyncUserId: - type: string - dsyncConnectedAt: - type: number - required: - - origin - type: object - required: - - confirmed - - confirmedAt - - role - - uid - - createdAt - - created - type: object - description: The membership of the authenticated User in relation to the Team. - - properties: - confirmed: - type: boolean - confirmedAt: - type: number - accessRequestedAt: - type: number - role: - type: string - enum: - - OWNER - - MEMBER - - VIEWER - - DEVELOPER - - BILLING - - CONTRIBUTOR - teamId: - type: string - uid: - type: string - createdAt: - type: number - created: - type: number - joinedFrom: - properties: - origin: - type: string - enum: - - link - - saml - - mail - - import - - teams - - github - - gitlab - - bitbucket - - dsync - - feedback - - organization-teams - commitId: - type: string - repoId: - type: string - repoPath: - type: string - gitUserId: - oneOf: - - type: string - - type: number - gitUserLogin: - type: string - ssoUserId: - type: string - ssoConnectedAt: - type: number - idpUserId: - type: string - dsyncUserId: - type: string - dsyncConnectedAt: - type: number - required: - - origin - type: object - required: - - confirmed - - accessRequestedAt - - role - - uid - - createdAt - - created - type: object - description: The membership of the authenticated User in relation to the Team. - created: - type: string - description: Will remain undocumented. Remove in v3 API. - createdAt: - type: number - description: UNIX timestamp (in milliseconds) when the Team was created. - example: 1630748523395 - required: - - limited - - id - - slug - - name - - avatar - - membership - - created - - createdAt - type: object - description: 'A limited form of data representing a Team, due to the authentication token missing privileges to read the full Team data.' - Pagination: - properties: - count: - type: number - description: Amount of items in the current page. - example: 20 - next: - nullable: true - type: number - description: Timestamp that must be used to request the next page. - example: 1540095775951 - prev: - nullable: true - type: number - description: Timestamp that must be used to request the previous page. - example: 1540095775951 - required: - - count - - next - - prev - type: object - description: 'This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - members: - id: vercel.teams.members - name: members - title: Members - methods: - get_team_members: - operation: - $ref: '#/paths/~1v2~1teams~1{teamId}~1members/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.members - _get_team_members: - operation: - $ref: '#/paths/~1v2~1teams~1{teamId}~1members/get' - response: - mediaType: application/json - openAPIDocKey: '200' - invite_user_to_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1members/post' - response: - mediaType: application/json - openAPIDocKey: '200' - update_team_member: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1members~1{uid}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - remove_team_member: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1members~1{uid}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/members/methods/get_team_members' - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/members/methods/remove_team_member' - request: - id: vercel.teams.request - name: request - title: Request - methods: - request_access_to_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1request/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_team_access_request: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1request~1{userId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/request/methods/get_team_access_request' - insert: [] - update: [] - delete: [] - teams: - id: vercel.teams.teams - name: teams - title: Teams - methods: - join_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1members~1teams~1join/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_team: - operation: - $ref: '#/paths/~1v2~1teams~1{teamId}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - patch_team: - operation: - $ref: '#/paths/~1v2~1teams~1{teamId}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - get_teams: - operation: - $ref: '#/paths/~1v2~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.teams - _get_teams: - operation: - $ref: '#/paths/~1v2~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_team: - operation: - $ref: '#/paths/~1v1~1teams/post' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_team: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/teams/methods/get_team' - - $ref: '#/components/x-stackQL-resources/teams/methods/get_teams' - insert: - - $ref: '#/components/x-stackQL-resources/teams/methods/create_team' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/teams/methods/delete_team' - invites: - id: vercel.teams.invites - name: invites - title: Invites - methods: - delete_team_invite_code: - operation: - $ref: '#/paths/~1v1~1teams~1{teamId}~1invites~1{inviteId}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/invites/methods/delete_team_invite_code' paths: - '/v2/teams/{teamId}/members': + /v3/teams/{team_id}/members: get: description: Get a paginated list of team members for the provided team. operationId: getTeamMembers @@ -495,6 +29,9 @@ paths: example: 123a6c5209bc3778245d011443644c8d27dc2c50 confirmed: type: boolean + enum: + - false + - true description: Boolean that indicates if this member was confirmed by an owner. example: true email: @@ -522,12 +59,14 @@ paths: role: type: string enum: - - OWNER - - MEMBER - - DEVELOPER - - VIEWER - BILLING - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS description: Role of this user in the team. example: OWNER uid: @@ -555,17 +94,25 @@ paths: origin: type: string enum: - - mail - - link - - import - - teams - - github - - gitlab + - account-update - bitbucket - - saml - dsync - feedback + - github + - gitlab + - import + - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade - organization-teams + - saml + - teams commitId: type: string repoId: @@ -595,32 +142,46 @@ paths: projects: items: properties: - id: - type: string name: type: string + id: + type: string role: type: string enum: - ADMIN - PROJECT_DEVELOPER + - PROJECT_GUEST - PROJECT_VIEWER + required: + - id + - name type: object description: Array of project memberships type: array description: Array of project memberships + isEnterpriseManaged: + type: boolean + enum: + - false + - true + description: Indicates whether the user is managed by an enterprise. required: - confirmed + - createdAt - email - role - uid - username - - createdAt type: object type: array emailInviteCodes: items: properties: + accessGroups: + items: + type: string + type: array id: type: string email: @@ -628,26 +189,75 @@ paths: role: type: string enum: - - OWNER - - MEMBER - - DEVELOPER - - VIEWER - BILLING - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + teamRoles: + items: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + type: array + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + type: array isDSyncUser: type: boolean + enum: + - false + - true createdAt: type: number expired: type: boolean + enum: + - true projects: additionalProperties: type: string enum: - ADMIN - PROJECT_DEVELOPER + - PROJECT_GUEST - PROJECT_VIEWER type: object + entitlements: + items: + type: string + type: array required: - id - isDSyncUser @@ -657,6 +267,9 @@ paths: properties: hasNext: type: boolean + enum: + - false + - true count: type: number description: Amount of items in the current page. @@ -672,8 +285,8 @@ paths: description: Timestamp that must be used to request the previous page. example: 1540095775951 required: - - hasNext - count + - hasNext - next - prev type: object @@ -681,22 +294,29 @@ paths: - members - pagination type: object + x-vercel-cli: + displayColumns: + username: members[].username + email: members[].email + role: members[].role + joinedFrom: members[].joinedFrom.origin + createdAt: members[].createdAt '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. '404': - description: No team was found. + description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - members parameters: - - name: teamId - description: ID of the Team. - in: path - required: true - schema: - type: string - description: ID of the Team. - name: limit description: Limit how many teams should be returned in: query @@ -704,6 +324,7 @@ paths: schema: description: Limit how many teams should be returned example: 20 + minimum: 1 type: number - name: since description: Timestamp in milliseconds to only include members added since then. @@ -722,11 +343,11 @@ paths: example: 1540095775951 type: number - name: search - description: 'Search team members by their name, username, and email.' + description: Search team members by their name, username, and email. in: query required: false schema: - description: 'Search team members by their name, username, and email.' + description: Search team members by their name, username, and email. type: string - name: role description: Only return members with the specified team role. @@ -740,8 +361,10 @@ paths: - OWNER - MEMBER - DEVELOPER - - VIEWER + - SECURITY - BILLING + - VIEWER + - VIEWER_FOR_PLUS - CONTRIBUTOR - name: excludeProject description: Exclude members who belong to the specified project. @@ -757,9 +380,25 @@ paths: schema: description: Include team members who are eligible to be members of the specified project. type: string - '/v1/teams/{teamId}/members': + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + x-vercel-cli: + kind: argument + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + x-speakeasy-test: false + /v2/teams/{team_id}/members: post: - description: 'Invite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user can be specified with an email or an ID. If both email and ID are provided, ID will take priority.' + description: Invite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user to be invited must be specified by email. operationId: inviteUserToTeam security: - bearerToken: [] @@ -768,140 +407,101 @@ paths: - teams responses: '200': - description: The member was successfully added to the team + description: '' content: application/json: schema: - oneOf: - - properties: - uid: - type: string - description: The ID of the invited user - example: kr1PsOIzqEL5Xg6M4VZcZosf - username: - type: string - description: The username of the invited user - example: john-doe - email: - type: string - description: The email of the invited user. Not included if the user was invited via their UID. - example: john@user.co - role: - type: string - enum: - - OWNER - - MEMBER - - VIEWER - - DEVELOPER - - BILLING - - CONTRIBUTOR - description: The role used for the invitation - example: MEMBER - required: - - uid - - username - - email - - role - type: object - description: The member was successfully added to the team - - properties: - uid: - type: string - username: - type: string - role: - type: string - enum: - - OWNER - - MEMBER - - VIEWER - - DEVELOPER - - BILLING - - CONTRIBUTOR - required: - - uid - - username - - role - type: object + $ref: '#/components/schemas/InvitedTeamMember' '400': description: |- One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. - The user already requested access to the team - Hobby teams are not allowed to add seats. - The team reached the maximum allowed amount of members '401': - description: '' + description: The request is not authorized. '403': description: |- You do not have permission to access this resource. The authenticated user must be a team owner to perform the action - '404': - description: The team was not found + '410': + description: '' + '503': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - invite parameters: - - name: teamId - description: ID of the Team. + - description: The Team identifier to perform the request on behalf of. in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l required: true + x-vercel-cli: + kind: argument + - description: The Team slug to perform the request on behalf of. + in: query + name: slug schema: type: string - description: ID of the Team. + example: my-team-url-slug requestBody: content: application/json: schema: - type: object - properties: - uid: - type: string - description: The id of the user to invite - example: kr1PsOIzqEL5Xg6M4VZcZosf - email: - type: string - format: email - description: The email address of the user to invite - example: john@example.com - role: - type: string - enum: - - OWNER - - MEMBER - - VIEWER - - DEVELOPER - - BILLING - - CONTRIBUTOR - default: - - MEMBER - - VIEWER - description: The role of the user to invite - example: - - MEMBER - - VIEWER - projects: - type: array - items: - type: object - additionalProperties: false - required: - - role - - projectId - properties: - projectId: - type: string - maxLength: 256 - example: prj_ndlgr43fadlPyCtREAqxxdyFK - description: The ID of the project. - role: - type: string - enum: - - ADMIN - - PROJECT_VIEWER - - PROJECT_DEVELOPER - example: ADMIN - description: Sets the project roles for the invited user - '/v1/teams/{teamId}/request': + type: array + items: + type: object + required: + - email + properties: + email: + type: string + format: email + description: The email address of the user to invite + example: john@example.com + role: + type: string + enum: + - OWNER + - MEMBER + - DEVELOPER + - SECURITY + - BILLING + - VIEWER + - VIEWER_FOR_PLUS + - CONTRIBUTOR + default: VIEWER + description: The role of the user to invite + example: VIEWER + projects: + type: array + items: + type: object + additionalProperties: false + required: + - role + - projectId + properties: + projectId: + type: string + maxLength: 64 + example: prj_ndlgr43fadlPyCtREAqxxdyFK + description: The ID of the project. + role: + type: string + enum: + - ADMIN + - PROJECT_VIEWER + - PROJECT_DEVELOPER + - PROJECT_GUEST + example: ADMIN + description: Sets the project roles for the invited user + /v1/teams/{team_id}/request: post: - description: Request access to a team as a member. An owner has to approve the request. Only 10 users can request access to a team at the same time. + description: Request access to a team as a member. An owner has to approve the request. Only 100 users can request access to a team at the same time. operationId: requestAccessToTeam security: - bearerToken: [] @@ -921,22 +521,33 @@ paths: type: string confirmed: type: boolean + enum: + - false + - true joinedFrom: properties: origin: type: string enum: - - import - - teams - - github - - gitlab + - account-update - bitbucket + - dsync - feedback - - organization-teams - - mail + - github + - gitlab + - import - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade + - organization-teams - saml - - dsync + - teams commitId: type: string repoId: @@ -983,11 +594,11 @@ paths: type: string type: object required: - - teamSlug - - teamName + - bitbucket - github - gitlab - - bitbucket + - teamName + - teamSlug type: object '400': description: |- @@ -999,14 +610,20 @@ paths: description: You do not have permission to access this resource. '404': description: The team was not found. + '410': + description: '' + '429': + description: '' + '503': + description: '' parameters: - - name: teamId - description: ID of the Team. + - name: team_id in: path required: true schema: type: string - description: ID of the Team. + description: The unique team identifier + example: team_1a2b3c4d5e6f7g8h9i0j1k2l requestBody: content: application/json: @@ -1056,9 +673,10 @@ paths: type: string description: The login name for the Git account of the user who requests access. example: jane-doe - '/v1/teams/{teamId}/request/{userId}': + required: true + /v1/teams/{team_id}/request/{user_id}: get: - description: 'Check the status of a join request. It''ll respond with a 404 if the request has been declined. If no `userId` path segment was provided, this endpoint will instead return the status of the authenticated user.' + description: Check the status of a join request. It'll respond with a 404 if the request has been declined. If no `userId` path segment was provided, this endpoint will instead return the status of the authenticated user. operationId: getTeamAccessRequest security: - bearerToken: [] @@ -1082,24 +700,35 @@ paths: example: My Team confirmed: type: boolean - description: 'Current status of the membership. Will be `true` if confirmed, if pending it''ll be `false`.' + enum: + - false + - true + description: Current status of the membership. Will be `true` if confirmed, if pending it'll be `false`. example: false joinedFrom: properties: origin: type: string enum: - - mail - - link - - import - - teams - - github - - gitlab + - account-update - bitbucket - - saml - dsync - feedback + - github + - gitlab + - import + - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade - organization-teams + - saml + - teams commitId: type: string repoId: @@ -1152,41 +781,44 @@ paths: type: object description: Map of the connected Bitbucket account. required: - - teamSlug - - teamName - - confirmed - - joinedFrom - accessRequestedAt + - bitbucket + - confirmed - github - gitlab - - bitbucket + - joinedFrom + - teamName + - teamSlug type: object '400': description: |- One of the provided values in the request query is invalid. User is already a confirmed member of the team and did not request access. Only visible when the authenticated user does have access to the team. + '401': + description: '' '403': description: You do not have permission to access this resource. '404': description: |- The provided user doesn't have a membership. Team was not found. + '410': + description: '' parameters: - - name: teamId - description: ID of the Team. + - name: user_id in: path required: true schema: type: string - description: ID of the Team. - - name: userId - description: User ID. + description: The unique user identifier + - name: team_id in: path required: true schema: type: string - description: User ID. - '/v1/teams/{teamId}/members/teams/join': + description: The unique team identifier + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + /v1/teams/{team_id}/members/teams/join: post: description: Join a team with a provided invite code or team ID. operationId: joinTeam @@ -1219,16 +851,14 @@ paths: description: The origin of how the user joined. example: email required: - - teamId - - slug - - name - from + - name + - slug + - teamId type: object description: Successfully joined a team. '400': - description: |- - One of the provided values in the request body is invalid. - Reached the max. amount of team members. + description: One of the provided values in the request body is invalid. '401': description: '' '402': @@ -1236,15 +866,19 @@ paths: '403': description: You do not have permission to access this resource. '404': - description: Team not found. + description: '' + '410': + description: '' + '503': + description: '' parameters: - - name: teamId - description: ID of the Team. + - name: team_id in: path required: true schema: type: string - description: ID of the Team. + description: The unique team identifier + example: team_1a2b3c4d5e6f7g8h9i0j1k2l requestBody: content: application/json: @@ -1255,13 +889,10 @@ paths: type: string description: The invite code to join the team. example: fisdh38aejkeivn34nslfore9vjtn4ls - teamId: - example: team_3oNwMKqLHqEBh02CTPsrbNbe - description: The team ID. - type: string - '/v1/teams/{teamId}/members/{uid}': + required: true + /v1/teams/{team_id}/members/{uid}: patch: - description: 'Update the membership of a Team Member on the Team specified by `teamId`, such as changing the _role_ of the member, or confirming a request to join the Team for an unconfirmed member. The authenticated user must be an `OWNER` of the Team.' + description: Update the membership of a Team Member on the Team specified by `teamId`, such as changing the _role_ of the member, or confirming a request to join the Team for an unconfirmed member. The authenticated user must be an `OWNER` of the Team. operationId: updateTeamMember security: - bearerToken: [] @@ -1289,7 +920,9 @@ paths: Cannot confirm a member that is already confirmed. Cannot confirm a member that did not request access. '401': - description: 'Team members can only be updated by an owner, or by the authenticated user if they are only disconnecting their SAML connection to the Team.' + description: |- + The request is not authorized. + Team members can only be updated by an owner, or by the authenticated user if they are only disconnecting their SAML connection to the Team. '402': description: '' '403': @@ -1298,17 +931,13 @@ paths: description: |- The provided user is not part of this team. A user with the specified ID does not exist. - Team not found. + '409': + description: '' + '410': + description: '' '500': description: '' parameters: - - name: teamId - description: ID of the Team. - in: path - required: true - schema: - type: string - description: ID of the Team. - name: uid description: The ID of the member. in: path @@ -1317,6 +946,13 @@ paths: type: string description: The ID of the member. example: ndfasllgPyCtREAqxxdyFKb + - name: team_id + in: path + required: true + schema: + type: string + description: The unique team identifier + example: team_1a2b3c4d5e6f7g8h9i0j1k2l requestBody: content: application/json: @@ -1332,12 +968,36 @@ paths: role: type: string description: The role in the team of the member. - default: - - MEMBER - - VIEWER + example: VIEWER + default: MEMBER + teamPermissions: + type: array + description: The team permissions to set for the member. Permissions must be compatible with the team roles assigned to the member. example: - - MEMBER - - VIEWER + - CreateProject + - FullProductionDeployment + items: + type: string + enum: + - ConnectorManager + - IntegrationManager + - CreateProject + - FullProductionDeployment + - UsageViewer + - EnvVariableManager + - EnvironmentManager + - WorkflowDecryptor + - OrgAdmin + - OrgViewer + - AiGatewaySettings + - AiGatewayCredits + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - V0Builder + - V0Chatter + - V0Viewer projects: type: array items: @@ -1354,22 +1014,23 @@ paths: description: The ID of the project. role: type: string + example: ADMIN + description: The project role of the member that will be added. \"null\" will remove this project level role. + nullable: true enum: - ADMIN - PROJECT_VIEWER - PROJECT_DEVELOPER - null - example: ADMIN - description: The project role of the member that will be added. \"null\" will remove this project level role. - nullable: true joinedFrom: additionalProperties: false type: object properties: ssoUserId: - type: 'null' + nullable: true + required: true delete: - description: 'Remove a Team Member from the Team, or dismiss a user that requested access, or leave a team.' + description: Remove a Team Member from the Team, or dismiss a user that requested access, or leave a team. Directory Sync members can be removed when their directory email is absent or does not match the user's primary or verified secondary emails. operationId: removeTeamMember security: - bearerToken: [] @@ -1386,34 +1047,24 @@ paths: id: type: string description: ID of the team. - newDefaultTeamIdError: - type: boolean required: - id - - newDefaultTeamIdError type: object '400': - description: |- - One of the provided values in the request query is invalid. - Cannot leave the team as the only owner. + description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: |- You do not have permission to access this resource. Not authorized to update the team. '404': - description: |- - A user with the specified ID does not exist. - No team found. + description: '' + '410': + description: '' + '503': + description: '' parameters: - - name: teamId - description: ID of the Team. - in: path - required: true - schema: - type: string - description: ID of the Team. - name: uid description: The user ID of the member. in: path @@ -1430,7 +1081,14 @@ paths: type: string description: The ID of the team to set as the new default team for the Northstar user. example: team_nllPyCtREAqxxdyFKbbMDlxd - '/v2/teams/{teamId}': + - name: team_id + in: path + required: true + schema: + type: string + description: The unique team identifier + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + /v2/teams/{team_id}: get: description: Get information for the Team specified by the `teamId` parameter. operationId: getTeam @@ -1449,24 +1107,35 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: |- You do not have permission to access this resource. Not authorized to access the team. '404': description: Team was not found. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - get parameters: - name: slug in: query schema: type: string - - description: The Team identifier or slug to perform the request on behalf of. + example: my-team-url-slug + - description: The Team identifier to perform the request on behalf of. in: path - name: teamId + name: team_id schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l required: true + x-vercel-cli: + kind: argument patch: description: Update the information of a Team specified by the `teamId` parameter. The request body should contain the information that will be updated on the Team. operationId: patchTeam @@ -1485,22 +1154,32 @@ paths: '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '402': description: '' '403': description: |- You do not have permission to access this resource. Not authorized to update the team. Must be an OWNER. - '404': - description: Team was not found. + '410': + description: '' + '428': + description: Owner does not have protection add-on + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - update parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: path - name: teamId + name: team_id schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l required: true + x-vercel-cli: + kind: argument requestBody: content: application/json: @@ -1510,9 +1189,10 @@ paths: properties: avatar: type: string - format: regex - regex: '^[0-9a-f]{40}$' - description: The hash value of an uploaded image. + maxLength: 40 + pattern: ^[0-9a-f]+$ + description: The hash value of an uploaded image, or `null` to clear the avatar. + nullable: true description: type: string maxLength: 140 @@ -1521,7 +1201,6 @@ paths: emailDomain: type: string format: regex - regex: '\\b((?=[a-z0-9-]{1,63}\\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,63}\\b' example: example.com nullable: true name: @@ -1549,15 +1228,27 @@ paths: description: Require that members of the team use SAML Single Sign-On. roles: type: object + description: Directory groups to role or access group mappings. additionalProperties: - type: string - enum: - - OWNER - - MEMBER - - VIEWER - - DEVELOPER - - BILLING - - CONTRIBUTOR + anyOf: + - type: string + enum: + - OWNER + - MEMBER + - DEVELOPER + - SECURITY + - BILLING + - VIEWER + - VIEWER_FOR_PLUS + - CONTRIBUTOR + - type: object + additionalProperties: false + required: + - accessGroupId + properties: + accessGroupId: + type: string + pattern: ^ag_[A-z0-9_ -]+$ slug: type: string example: my-team @@ -1565,15 +1256,19 @@ paths: enablePreviewFeedback: type: string example: 'on' - description: 'Enable preview comments: one of on, off or default.' + description: 'Enable preview toolbar: one of on, off or default.' + enableProductionFeedback: + type: string + example: 'on' + description: 'Enable production toolbar: one of on, off or default.' sensitiveEnvironmentVariablePolicy: type: string example: 'on' description: 'Sensitive environment variable policy: one of on, off or default.' - migrateExistingEnvVariablesToSensitive: - type: boolean - example: false - description: Runs a task that migrates all existing environment variables to sensitive environment variables. + disjunctiveProductionSecretPolicy: + type: string + example: 'on' + description: 'Require production secrets to be in their own environment group: one of on, off or default.' remoteCaching: type: object description: Whether or not remote caching is enabled for the team @@ -1587,6 +1282,394 @@ paths: type: boolean example: false description: Display or hide IP addresses in Monitoring queries. + hideIpAddressesInLogDrains: + type: boolean + example: false + description: Display or hide IP addresses in Log Drains. + dpAccessRequestsMode: + type: string + enum: + - all + - none + - email-domain + example: none + description: Controls who can request access to protected deployments. + requireVerifiedCommits: + type: boolean + example: true + description: When enabled, all projects in the team require commits to be signed and verified by the git provider before deployments will be created. + disableRepositoryDispatchEvents: + type: boolean + example: false + description: Default for projects in the team. When `true`, projects in this team will not emit GitHub repository-dispatch events on deployment events unless the project explicitly overrides this setting. + defaultDeploymentProtection: + type: object + description: Default deployment protection settings for new projects. + additionalProperties: false + properties: + passwordProtection: + additionalProperties: false + description: Allows to protect project deployments with a password + properties: + deploymentType: + description: Specify if the password will apply to every Deployment Target or just Preview + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + type: string + password: + description: The password that will be used to protect Project Deployments + maxLength: 72 + type: string + nullable: true + required: + - deploymentType + type: object + nullable: true + ssoProtection: + additionalProperties: false + description: Ensures visitors to your Preview Deployments are logged into Vercel and have a minimum of Viewer access on your team + properties: + deploymentType: + default: preview + description: Specify if the Vercel Authentication (SSO Protection) will apply to every Deployment Target or just Preview + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + type: string + required: + - deploymentType + type: object + nullable: true + defaultPassport: + description: Default Passport configuration for new projects. + type: object + additionalProperties: false + properties: + connectorId: + type: string + deploymentType: + type: string + default: all + enum: + - all + - preview + - prod_deployment_urls_and_all_previews + - all_except_custom_domains + required: + - connectorId + nullable: true + defaultExpirationSettings: + properties: + expiration: + description: The time period to keep non-production deployments for + example: 1y + type: string + enum: + - 3y + - 2y + - 1y + - 6m + - 3m + - 2m + - 1m + - 2w + - 1w + - 1d + - unlimited + expirationProduction: + description: The time period to keep production deployments for + example: 1y + type: string + enum: + - 3y + - 2y + - 1y + - 6m + - 3m + - 2m + - 1m + - 2w + - 1w + - 1d + - unlimited + expirationCanceled: + description: The time period to keep canceled deployments for + example: 1y + type: string + enum: + - 1y + - 6m + - 3m + - 2m + - 1m + - 2w + - 1w + - 1d + - unlimited + expirationErrored: + description: The time period to keep errored deployments for + example: 1y + type: string + enum: + - 1y + - 6m + - 3m + - 2m + - 1m + - 2w + - 1w + - 1d + - unlimited + type: object + additionalProperties: false + deploymentPolicy: + type: object + description: Composable deployment-time policy. Each rule type holds a list of rules, one per environment scope. + additionalProperties: false + properties: + gitSources: + anyOf: + - type: array + items: + type: object + additionalProperties: false + required: + - enabled + - environments + - sources + properties: + enabled: + type: boolean + environments: + type: array + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - target + properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - production + - preview + - type: object + additionalProperties: false + required: + - type + - environmentId + properties: + type: + type: string + enum: + - custom + environmentId: + type: string + sources: + type: array + items: + anyOf: + - type: object + additionalProperties: false + required: + - provider + - org + properties: + provider: + type: string + enum: + - github + - bitbucket + org: + type: string + repo: + type: string + - type: object + additionalProperties: false + required: + - provider + - namespace + properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + - type: string + deploymentSources: + anyOf: + - type: array + items: + type: object + additionalProperties: false + required: + - enabled + - environments + - sources + properties: + enabled: + type: boolean + environments: + type: array + items: + anyOf: + - type: object + additionalProperties: false + required: + - type + - target + properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - production + - preview + - type: object + additionalProperties: false + required: + - type + - environmentId + properties: + type: + type: string + enum: + - custom + environmentId: + type: string + sources: + type: array + items: + type: string + enum: + - git + - cli + - rest-api + - deploy-hook + - integration + - v0 + - type: string + strictDeploymentProtectionSettings: + type: object + description: When enabled, deployment protection settings require stricter permissions (owner-only). + additionalProperties: false + properties: + enabled: + type: boolean + example: true + description: Enable or disable strict deployment protection settings. + required: + - enabled + strictShareableLinks: + type: object + description: When enabled, creating shareable links requires Owner role. + additionalProperties: false + properties: + enabled: + type: boolean + example: true + description: Enable or disable requiring Owner role to create shareable links. + required: + - enabled + strictPasswordProtectionSettings: + type: object + description: When enabled, adding, changing, or removing project password protection requires Owner role. + additionalProperties: false + properties: + enabled: + type: boolean + example: true + description: Enable or disable requiring Owner role to change project password protection. + required: + - enabled + strictConnectors: + type: object + description: When enabled, creating and managing connectors requires Owner role. + additionalProperties: false + properties: + enabled: + type: boolean + example: true + description: Enable or disable requiring Owner role to manage connectors. + required: + - enabled + nsnbConfig: + type: object + description: NSNB configuration for the team. + additionalProperties: false + properties: + preference: + type: string + enum: + - auto-approval + - manual-approval + - block + description: The NSNB preference for the team. + required: + - preference + defaultProjectJobs: + description: Default job configuration applied to new projects created in this team. + type: object + additionalProperties: false + properties: + lint: + type: object + additionalProperties: false + properties: + targets: + type: array + items: + type: string + required: + - targets + typecheck: + type: object + additionalProperties: false + properties: + targets: + type: array + items: + type: string + required: + - targets + resourceConfig: + type: object + description: Resource configuration for the team. + additionalProperties: false + properties: + buildMachine: + type: object + description: Build machine configuration. + additionalProperties: false + properties: + default: + type: string + enum: + - basic + - enhanced + - turbo + - standard + - elastic + example: standard + description: 'Default build machine type for new builds: standard, enhanced, turbo, or elastic.' + required: true /v2/teams: get: description: Get a paginated list of all the Teams the authenticated User is a member of. @@ -1612,16 +1695,32 @@ paths: pagination: $ref: '#/components/schemas/Pagination' required: - - teams - pagination + - teams type: object description: A paginated list of teams. + x-vercel-cli: + displayColumns: + name: teams[].name + id: teams[].id + slug: teams[].slug + role: teams[].membership.role + createdAt: teams[].createdAt '400': description: One of the provided values in the request query is invalid. '401': description: '' '403': description: You do not have permission to access this resource. + '410': + description: '' + '500': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - list parameters: - name: limit description: Maximum number of Teams which may be returned. @@ -1646,7 +1745,7 @@ paths: type: number /v1/teams: post: - description: 'Create a new Team under your account. You need to send a POST request with the desired Team slug, and optionally the Team name.' + description: Create a new Team under your account. You need to send a POST request with the desired Team slug, and optionally the Team name. operationId: createTeam security: - bearerToken: [] @@ -1666,1475 +1765,1908 @@ paths: example: team_nLlpyC6RE1qxqglFKbrMxlud slug: type: string - billing: - properties: - currency: - type: string - enum: - - usd - - eur - cancelation: - nullable: true - type: number - period: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - contract: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - plan: - type: string - enum: - - hobby - - pro - - enterprise - platform: - type: string - enum: - - stripe - - stripeTestMode - orbCustomerId: - type: string - syncedAt: - type: number - programType: - type: string - enum: - - startup - - agency - trial: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - email: - nullable: true - type: string - tax: - nullable: true - properties: - type: - type: string - id: - type: string - required: - - type - - id - type: object - language: - nullable: true - type: string - address: - nullable: true - properties: - line1: - type: string - line2: - type: string - postalCode: - type: string - city: - type: string - country: - type: string - state: - type: string + required: + - id + - slug + type: object + description: The team was created successfully + '400': + description: |- + One of the provided values in the request body is invalid. + The slug is already in use + '401': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - create + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - slug + properties: + slug: + example: a-random-team + description: The desired slug for the Team + type: string + maxLength: 48 + name: + example: A Random Team + description: The desired name for the Team. It will be generated from the provided slug if nothing is provided + type: string + maxLength: 256 + attribution: + type: object + description: Attribution information for the session or current page + properties: + sessionReferrer: + type: string + description: Session referrer + landingPage: + type: string + description: Session landing page + pageBeforeConversionPage: + type: string + description: Referrer to the signup page + utm: + type: object + properties: + utmSource: + type: string + description: UTM source + utmMedium: + type: string + description: UTM medium + utmCampaign: + type: string + description: UTM campaign + utmTerm: + type: string + description: UTM term + required: true + /v1/teams/{team_id}/dsync-roles: + post: + description: Update the Directory Sync role mappings for a Team. This endpoint allows updating the mapping between directory groups and team roles or access groups. + operationId: postTeamDsyncRoles + security: + - bearerToken: [] + summary: Update Team Directory Sync Role Mappings + tags: + - teams + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + ok: + type: boolean + enum: + - false + - true + required: + - ok + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - roles + properties: + roles: + type: object + description: Directory groups to role or access group mappings. + additionalProperties: + anyOf: + - type: string + enum: + - OWNER + - MEMBER + - DEVELOPER + - SECURITY + - BILLING + - VIEWER + - VIEWER_FOR_PLUS + - CONTRIBUTOR + - type: object + additionalProperties: false required: - - line1 - type: object + - accessGroupId + properties: + accessGroupId: + type: string + pattern: ^ag_[A-z0-9_ -]+$ + /v1/teams/{team_id}: + delete: + description: Delete a team under your account. You need to send a `DELETE` request with the desired team `id`. An optional array of reasons for deletion may also be sent. + operationId: deleteTeam + security: + - bearerToken: [] + summary: Delete a Team + tags: + - teams + responses: + '200': + description: The Team was successfully deleted + content: + application/json: + schema: + properties: + id: + type: string + description: The ID of the deleted Team + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + newDefaultTeamIdError: + type: boolean + enum: + - false + - true + description: Signifies whether the default team update has failed, when newDefaultTeamId is provided in request query. + example: true + required: + - id + type: object + description: The Team was successfully deleted + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: |- + You do not have permission to access this resource. + The authenticated user can't access the team + '409': + description: '' + '410': + description: '' + '503': + description: '' + parameters: + - name: newDefaultTeamId + description: Id of the team to be set as the new default team + in: query + required: false + schema: + type: string + description: Id of the team to be set as the new default team + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + reasons: + type: array + description: Optional array of objects that describe the reason why the team is being deleted. + items: + type: object + description: An object describing the reason why the team is being deleted. + required: + - slug + - description + additionalProperties: false + properties: + slug: + type: string + description: Idenitifier slug of the reason why the team is being deleted. + description: + type: string + description: Description of the reason why the team is being deleted. + required: true + /v1/teams/{team_id}/invites/{invite_id}: + delete: + description: Delete an active Team invite code. + operationId: deleteTeamInviteCode + security: + - bearerToken: [] + summary: Delete a Team invite code + tags: + - teams + responses: + '200': + description: Successfully deleted Team invite code. + content: + application/json: + schema: + properties: + id: + type: string + description: ID of the team. + required: + - id + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: |- + You do not have permission to access this resource. + Invite managed by directory sync + Not authorized to access this team. + '404': + description: Team invite code not found. + '410': + description: '' + parameters: + - name: invite_id + description: The Team invite code ID. + in: path + required: true + schema: + type: string + description: The Team invite code ID. + example: 2wn2hudbr4chb1ecywo9dvzo7g9sscs6mzcz8htdde0txyom4l + - name: team_id + description: The Team identifier to perform the request on behalf of. + in: path + required: true + schema: + type: string + description: The Team identifier to perform the request on behalf of. + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + /v1/teams/{team_id}/microfrontends/{group_id}: + patch: + description: Updates a microfrontends group's settings. + operationId: updateMicrofrontendsGroup + security: + - bearerToken: [] + summary: Update a microfrontends group + tags: + - teams + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + updatedMicrofrontendsGroup: + properties: name: - nullable: true type: string - invoiceItems: - nullable: true - properties: - monitoring: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - pro: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - enterprise: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - analytics: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - concurrentBuilds: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - passwordProtection: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - previewDeploymentSuffix: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - saml: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - teamSeats: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - webAnalytics: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - analyticsUsage: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - artifacts: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - bandwidth: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - cronJobInvocation: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - dataCacheRead: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - dataCacheRevalidation: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - dataCacheWrite: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeConfigRead: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeConfigWrite: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeFunctionExecutionUnits: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeMiddlewareInvocations: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - monitoringMetric: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - postgresComputeTime: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - postgresDatabase: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - postgresDataStorage: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - postgresDataTransfer: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - postgresWrittenData: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - serverlessFunctionExecution: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - sourceImages: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalBandwidthInBytes: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalCommands: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalDailyAvgStorageInBytes: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalDatabases: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - webAnalyticsEvent: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - type: object - invoiceSettings: - properties: - footer: - type: string - type: object - subscriptions: - nullable: true - items: - properties: - id: + slug: + type: string + id: + type: string + fallbackEnvironment: + type: string + enablePolyrepoBranchRouting: + type: boolean + enum: + - false + - true + required: + - id + type: object + required: + - updatedMicrofrontendsGroup + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: group_id + in: path + required: true + schema: + type: string + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + example: MFE Group 1 + description: The new name for the existing microfrontends group. + fallbackEnvironment: + type: string + description: The new fallback environment for the microfrontends group. Must be "SAME_ENV", "PRODUCTION", or a valid custom environment slug from the default app. + enablePolyrepoBranchRouting: + type: boolean + description: Whether Preview Deployments can link to branches with the same name in other Git repositories. + delete: + description: Deletes a microfrontends group from the team associated with the group ID. + operationId: deleteMicrofrontendsGroup + security: + - bearerToken: [] + summary: Delete a microfrontends group + tags: + - teams + responses: + '200': + description: '' + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '500': + description: '' + parameters: + - name: group_id + description: The microfrontend group ID to delete. + in: path + required: true + schema: + type: string + example: mfe_ + description: The microfrontend group ID to delete. + - description: The Team identifier to perform the request on behalf of. + in: path + name: team_id + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + required: true + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + InvitedTeamMember: + properties: + uid: + type: string + description: The ID of the invited user + example: kr1PsOIzqEL5Xg6M4VZcZosf + username: + type: string + description: The username of the invited user + example: john-doe + email: + type: string + description: The email of the invited user. + example: john@user.co + role: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + description: The role used for the invitation + example: MEMBER + teamRoles: + items: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + description: The team roles of the user + example: + - MEMBER + type: array + description: The team roles of the user + example: + - MEMBER + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + description: The team permissions of the user + example: + - CreateProject + type: array + description: The team permissions of the user + example: + - CreateProject + required: + - email + - role + - uid + - username + type: object + description: The member was successfully added to the team. + Team: + properties: + connect: + properties: + enabled: + type: boolean + enum: + - false + - true + type: object + creatorId: + type: string + description: The ID of the user who created the Team. + example: R6efeCJQ2HKXywuasPDc0fOWB + updatedAt: + type: number + description: Timestamp (in milliseconds) of when the Team was last updated. + example: 1611796915677 + emailDomain: + nullable: true + type: string + description: Hostname that'll be matched with emails on sign-up to automatically join the Team. + example: example.com + saml: + properties: + connection: + properties: + type: + type: string + description: The Identity Provider "type", for example Okta. + example: OktaSAML + state: + type: string + description: Current state of the connection. + example: active + connectedAt: + type: number + description: Timestamp (in milliseconds) of when the configuration was connected. + example: 1611796915677 + lastReceivedWebhookEvent: + type: number + description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. + example: 1611796915677 + lastSyncedAt: + type: number + description: Timestamp (in milliseconds) of when the last directory sync was performed. + example: 1611796915677 + syncState: + type: string + enum: + - ACTIVE + - SETUP + description: 'Controls whether directory sync events are processed. - ''SETUP'': Directory connected but role mappings not yet configured. Events are acknowledged but not processed. - ''ACTIVE'': Fully configured. Events are processed normally. - undefined: Legacy directory (pre-feature), treat as ''ACTIVE'' for backwards compatibility.' + status: + type: string + required: + - connectedAt + - state + - status + - type + type: object + description: Information for the SAML Single Sign-On configuration. + directory: + properties: + type: + type: string + description: The Identity Provider "type", for example Okta. + example: OktaSAML + state: + type: string + description: Current state of the connection. + example: active + connectedAt: + type: number + description: Timestamp (in milliseconds) of when the configuration was connected. + example: 1611796915677 + lastReceivedWebhookEvent: + type: number + description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. + example: 1611796915677 + lastSyncedAt: + type: number + description: Timestamp (in milliseconds) of when the last directory sync was performed. + example: 1611796915677 + syncState: + type: string + enum: + - ACTIVE + - SETUP + description: 'Controls whether directory sync events are processed. - ''SETUP'': Directory connected but role mappings not yet configured. Events are acknowledged but not processed. - ''ACTIVE'': Fully configured. Events are processed normally. - undefined: Legacy directory (pre-feature), treat as ''ACTIVE'' for backwards compatibility.' + required: + - connectedAt + - state + - type + type: object + description: Information for the Directory Sync configuration. + enforced: + type: boolean + enum: + - false + - true + description: When `true`, interactions with the Team **must** be done with an authentication token that has been authenticated with the Team's SAML Single Sign-On provider. + defaultRedirectUri: + type: string + enum: + - v0.app + - v0.dev + - vercel.com + description: The default redirect URI to use after successful SAML authentication. + roles: + additionalProperties: + oneOf: + - properties: + accessGroupId: + type: string + required: + - accessGroupId + type: object + description: When "Directory Sync" is configured, this object contains a mapping of which Directory Group (by ID) should be assigned to which Vercel Team "role". + - type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + type: object + description: When "Directory Sync" is configured, this object contains a mapping of which Directory Group (by ID) should be assigned to which Vercel Team "role". + required: + - enforced + type: object + description: When "Single Sign-On (SAML)" is configured, this object contains information regarding the configuration of the Identity Provider (IdP). + inviteCode: + type: string + description: Code that can be used to join this Team. Only visible to Team owners. + example: hasihf9e89 + billing: + nullable: true + properties: + plan: + type: string + enum: + - enterprise + - hobby + - pro + required: + - plan + type: object + description: The team's billing plan. + description: + nullable: true + type: string + description: A short description of the Team. + example: Our mission is to make cloud computing accessible to everyone. + defaultRoles: + properties: + teamRoles: + items: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + type: array + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + type: array + type: object + description: Default roles for the team. + stagingPrefix: + type: string + description: The prefix that is prepended to automatic aliases. + resourceConfig: + properties: + concurrentBuilds: + type: number + description: The total amount of concurrent builds that can be used. + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + description: Whether every build for this team / user has elastic concurrency enabled automatically. + edgeConfigSize: + type: number + description: The maximum size in kilobytes of an Edge Config. Only specified if a custom limit is set. + edgeConfigs: + type: number + description: The maximum number of edge configs an account can create. + kvDatabases: + type: number + description: The maximum number of kv databases an account can create. + blobStores: + type: number + description: The maximum number of blob stores an account can create. + postgresDatabases: + type: number + description: The maximum number of postgres databases an account can create. + customEnvironmentsPerProject: + type: number + description: The maximum number of custom environments allowed per project. + serverlessFunctionMaxMemorySize: + type: number + description: The maximum memory size (in MB) for a serverless function. Only specified if a custom limit is set. + buildEntitlements: + properties: + enhancedBuilds: + type: boolean + enum: + - false + - true + type: object + buildMachine: + properties: + default: + type: string + enum: + - basic + - elastic + - enhanced + - standard + - turbo + description: Default build machine type for new builds + type: object + description: Build machine configuration + type: object + previewDeploymentSuffix: + nullable: true + type: string + description: The hostname that is current set as preview deployment suffix. + example: example.dev + platform: + type: boolean + enum: + - false + - true + description: Whether the team is a platform team. + example: true + disableHardAutoBlocks: + type: number + enum: + - false + - true + remoteCaching: + properties: + enabled: + type: boolean + enum: + - false + - true + type: object + description: Is remote caching enabled for this team + defaultDeploymentProtection: + properties: + passwordProtection: + nullable: true + properties: + deploymentType: + type: string + required: + - deploymentType + type: object + ssoProtection: + nullable: true + properties: + deploymentType: + type: string + required: + - deploymentType + type: object + type: object + description: Default deployment protection for this team null indicates protection is disabled + defaultPassport: + nullable: true + properties: + connectorId: + type: string + description: Default Passport configuration for new projects in this team. + deploymentType: + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + description: Default Passport configuration for new projects in this team. + required: + - connectorId + - deploymentType + type: object + description: Default Passport configuration for new projects in this team. + defaultExpirationSettings: + properties: + expirationDays: + type: number + description: Number of days to keep non-production deployments (mostly preview deployments) before soft deletion. + expirationDaysProduction: + type: number + description: Number of days to keep production deployments before soft deletion. + expirationDaysCanceled: + type: number + description: Number of days to keep canceled deployments before soft deletion. + expirationDaysErrored: + type: number + description: Number of days to keep errored deployments before soft deletion. + deploymentsToKeep: + type: number + description: Minimum number of production deployments to keep for this project, even if they are over the production expiration limit. + type: object + description: Default deployment expiration settings for this team + defaultProjectJobs: + properties: + lint: + properties: + targets: + items: + type: string + type: array + description: Default job configuration applied to new projects created in this team. + required: + - targets + type: object + description: Default job configuration applied to new projects created in this team. + typecheck: + properties: + targets: + items: + type: string + type: array + description: Default job configuration applied to new projects created in this team. + required: + - targets + type: object + description: Default job configuration applied to new projects created in this team. + mfe-config-present: + properties: + targets: + items: + type: string + type: array + description: Default job configuration applied to new projects created in this team. + required: + - targets + type: object + description: Default job configuration applied to new projects created in this team. + type: object + description: Default job configuration applied to new projects created in this team. + enablePreviewFeedback: + nullable: true + type: string + enum: + - default + - default-force + - 'off' + - off-force + - 'on' + - on-force + - null + description: Whether toolbar is enabled on preview deployments + enableProductionFeedback: + nullable: true + type: string + enum: + - default + - default-force + - 'off' + - off-force + - 'on' + - on-force + - null + description: Whether toolbar is enabled on production deployments + sensitiveEnvironmentVariablePolicy: + nullable: true + type: string + enum: + - default + - 'off' + - 'on' + - null + description: Sensitive environment variable policy for this team + disjunctiveProductionSecretPolicy: + nullable: true + type: string + enum: + - default + - 'off' + - 'on' + - null + description: Require production secrets to use a different value than preview or development. + hideIpAddresses: + nullable: true + type: boolean + enum: + - false + - true + - null + description: Indicates if IP addresses should be accessible in observability (o11y) tooling + hideIpAddressesInLogDrains: + nullable: true + type: boolean + enum: + - false + - true + - null + description: Indicates if IP addresses should be accessible in log drains + dpAccessRequestsMode: + type: string + enum: + - all + - email-domain + - none + description: Controls who can request access to protected deployments. + ipBuckets: + items: + properties: + bucket: + type: string + supportUntil: + type: number + default: + type: boolean + enum: + - false + - true + required: + - bucket + type: object + type: array + requireVerifiedCommits: + type: boolean + enum: + - false + - true + description: When enabled, all projects in the team require commits to be signed and verified by the git provider before deployments will be created. Projects may override this via `project.gitProviderOptions.requireVerifiedCommits` (gated by `Project:Update`). + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + description: Default for projects in the team. When `true`, projects in this team will not emit GitHub repository-dispatch events on deployment events unless the project explicitly overrides this setting via `project.gitProviderOptions.disableRepositoryDispatchEvents`. + strictDeploymentProtectionSettings: + properties: + enabled: + type: boolean + enum: + - false + - true + updatedAt: + type: number + required: + - enabled + - updatedAt + type: object + description: When enabled, deployment protection settings require stricter permissions (owner-only). + strictShareableLinks: + properties: + enabled: + type: boolean + enum: + - false + - true + updatedAt: + type: number + required: + - enabled + - updatedAt + type: object + description: When enabled, creating shareable links requires Owner role. + strictPasswordProtectionSettings: + properties: + enabled: + type: boolean + enum: + - false + - true + updatedAt: + type: number + required: + - enabled + - updatedAt + type: object + description: When enabled, adding, changing, or removing project password protection requires Owner role. + strictConnectors: + properties: + enabled: + type: boolean + enum: + - false + - true + updatedAt: + type: number + required: + - enabled + - updatedAt + type: object + description: When enabled, creating and managing connectors requires Owner role or the ConnectorManager permission. + nsnbConfig: + properties: + preference: + type: string + enum: + - auto-approval + - block + - manual-approval + required: + - preference + type: object + description: NSNB configuration for the team. + deploymentPolicy: + properties: + gitSources: + items: + properties: + sources: + items: + oneOf: + - properties: + provider: + type: string + enum: + - bitbucket + - github + org: + type: string + repo: type: string - trial: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - period: - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - frequency: - properties: - interval: - type: string - enum: - - month - - day - - week - - year - intervalCount: - type: number - required: - - interval - - intervalCount - type: object - discount: - nullable: true - properties: - id: - type: string - coupon: - properties: - id: - type: string - name: - nullable: true - type: string - amountOff: - nullable: true - type: number - percentageOff: - nullable: true - type: number - durationInMonths: - nullable: true - type: number - duration: - type: string - enum: - - forever - - repeating - - once - required: - - id - - name - - amountOff - - percentageOff - - durationInMonths - - duration - type: object - required: - - id - - coupon - type: object - items: - items: - properties: - id: - type: string - priceId: - type: string - productId: - type: string - amount: - type: number - quantity: - type: number - required: - - id - - priceId - - productId - - amount - - quantity - type: object - type: array required: - - id - - trial - - period - - frequency - - discount - - items + - org + - provider type: object - type: array - controls: - nullable: true - properties: - analyticsSampleRateInPercent: - nullable: true - type: number - analyticsSpendLimitInDollars: - nullable: true - type: number - type: object - purchaseOrder: - nullable: true - type: string - status: - type: string - enum: - - active - - trialing - - overdue - - expired - - canceled - pricingExperiment: - type: string - enum: - - august-2022 - orbMigrationScheduledAt: - nullable: true - type: number - required: - - period - - plan - type: object + description: Allowlist entry for GitHub and Bitbucket, whose repos are identified by a flat `org`/`repo` (Bitbucket's workspace/owner maps to `org`, its repo slug to `repo`). Omit `repo` to match any repo in the org. Org is matched case-insensitively. + - properties: + provider: + type: string + enum: + - gitlab + namespace: + type: string + project: + type: string + required: + - namespace + - provider + type: object + description: Allowlist entry for GitLab, which uses nested groups rather than a flat org/repo. `namespace` is the full group path (e.g. `group` or `group/subgroup`); `project` is the leaf project name. Omit `project` to match any project under the namespace. Namespace is matched case-insensitively. + type: array + enabled: + type: boolean + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array required: - - id - - slug - - billing + - enabled + - environments + - sources type: object - description: The team was created successfully - '400': - description: |- - One of the provided values in the request body is invalid. - The slug is already in use - '403': - description: You do not have permission to access this resource. - parameters: [] - requestBody: - content: - application/json: - schema: - type: object - additionalProperties: false - required: - - slug - properties: - slug: - example: a-random-team - description: The desired slug for the Team - type: string - maxLength: 48 - name: - example: A Random Team - description: The desired name for the Team. It will be generated from the provided slug if nothing is provided - type: string - maxLength: 256 - '/v1/teams/{teamId}': - delete: - description: Delete a team under your account. You need to send a `DELETE` request with the desired team `id`. An optional array of reasons for deletion may also be sent. - operationId: deleteTeam - security: - - bearerToken: [] - summary: Delete a Team - tags: - - teams - responses: - '200': - description: The Team was successfully deleted - content: - application/json: - schema: + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + deploymentSources: + items: properties: - id: - type: string - description: The ID of the deleted Team - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - newDefaultTeamIdError: + sources: + items: + type: string + enum: + - cli + - deploy-hook + - git + - integration + - rest-api + - v0 + description: 'Customer-configurable deployment sources. Every deploy classifies to exactly one. JSON schema in `packages/deployment-policy/schemas/body.ts` enumerates exactly these values. - `''git''` — git provider webhook. - `''cli''` — Vercel CLI (legacy classic-token CLI and SIWV CLI both). - `''rest-api''` — direct user/team-token REST upload. Does NOT cover deploy hooks, Marketplace integrations, or first-party app tokens. - `''deploy-hook''` — project deploy-hook URL. The URL is the credential. - `''integration''` — third-party Marketplace actor: Marketplace integration token, user-delegated OAuth from a Marketplace app, or an unrecognized third-party Vercel App. First-party Vercel Apps are never `''integration''`. - `''v0''` — the v0 product surface (entitlement-gated). v0 deploys through the CLI under the hood, but classifies as its own source so a team can allow or deny v0 independently of `''cli''`. First-party Vercel apps (Toolbar, etc.) classify as `''first-party''` — see `ClassifiedSource` in `./checks`. They''re not in this union because they aren''t customer-configurable; they bypass `checkDeploymentSources` entirely. v0 is intentionally NOT among them: like the CLI, it''s a real product surface and is policy-controllable.' + type: array + enabled: type: boolean - description: 'Signifies whether the default team update has failed, when newDefaultTeamId is provided in request query.' - example: true + enum: + - false + - true + environments: + items: + oneOf: + - properties: + type: + type: string + enum: + - system + target: + type: string + enum: + - preview + - production + required: + - target + - type + type: object + - properties: + type: + type: string + enum: + - custom + environmentId: + type: string + required: + - environmentId + - type + type: object + type: array required: - - id + - enabled + - environments + - sources type: object - description: The Team was successfully deleted - '400': - description: |- - One of the provided values in the request body is invalid. - One of the provided values in the request query is invalid. - '401': - description: '' - '402': - description: '' - '403': - description: |- - You do not have permission to access this resource. - The authenticated user can't access the team - '404': - description: The team was not found - '409': - description: '' - parameters: - - name: newDefaultTeamId - description: Id of the team to be set as the new default team - in: query - required: false - schema: - type: string - description: Id of the team to be set as the new default team - example: team_LLHUOMOoDlqOp8wPE4kFo9pE - - description: The Team identifier or slug to perform the request on behalf of. - in: path - name: teamId - schema: + description: '`enabled: true` with empty `sources` is deny-all.' + type: array + type: object + description: Composable deployment-time policy for the team. Used as the default for every project on the team, with optional per-project overrides on `project.deploymentPolicy`. + personalAccessTokensInvalidatedAt: + type: number + description: Timestamp (ms) after which personal access tokens created at or before this time are considered invalid for this team. + appTokensInvalidatedAt: + type: number + description: Timestamp (ms) after which Vercel App tokens created at or before this time are considered invalid for this team. + apiKeysInvalidatedAt: + type: number + description: Timestamp (ms) after which API keys created at or before this time are considered invalid for this team. + integrationTokensInvalidatedAt: + type: number + description: Timestamp (ms) after which integration tokens created at or before this time are considered invalid for this team. + id: + type: string + description: The Team's unique identifier. + example: team_nllPyCtREAqxxdyFKbbMDlxd + slug: + type: string + description: The Team's slug, which is unique across the Vercel platform. + example: my-team + name: + nullable: true + type: string + description: Name associated with the Team account, or `null` if none has been provided. + example: My Team + avatar: + nullable: true + type: string + description: The ID of the file used as avatar for this Team. + example: 6eb07268bcfadd309905ffb1579354084c24655c + membership: + properties: + uid: + type: string + entitlements: + items: + properties: + entitlement: + type: string + required: + - entitlement + type: object + type: array + teamId: + type: string + confirmed: + type: boolean + enum: + - true + accessRequestedAt: + type: number + role: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + teamRoles: + items: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + type: array + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + type: array + createdAt: + type: number + created: + type: number + joinedFrom: + properties: + origin: + type: string + enum: + - account-update + - bitbucket + - dsync + - feedback + - github + - gitlab + - import + - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade + - organization-teams + - saml + - teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + required: + - confirmed + - created + - createdAt + - role + type: object + description: The membership of the authenticated User in relation to the Team. + createdAt: + type: number + description: UNIX timestamp (in milliseconds) when the Team was created. + example: 1630748523395 + parentId: + type: string + description: The organizationId for teams that belong to an organization (set on both the organization's root team and its child teams). + example: org_nllPyCtREAqxxdyFKbbMDlxd + orgRootTeamId: + type: string + description: Best-effort ID of the organization’s root billing team. When present, compare `orgRootTeamId === id` to identify the root team. It may be omitted even when `parentId` is set if organization resolution fails or the referenced organization is missing. Always omitted for non-organization teams. + example: team_nllPyCtREAqxxdyFKbbMDlxd + required: + - avatar + - billing + - createdAt + - creatorId + - description + - id + - name + - slug + - stagingPrefix + - updatedAt + type: object + description: Data representing a Team. + additionalProperties: true + TeamLimited: + properties: + limited: + type: boolean + enum: + - true + description: Property indicating that this Team data contains only limited information, due to the authentication token missing privileges to read the full Team data or due to team having MFA enforced and the user not having MFA enabled. Re-login with the Team's configured SAML Single Sign-On provider in order to upgrade the authentication token with the necessary privileges. + limitedBy: + items: type: string - required: true - requestBody: - content: - application/json: - schema: + enum: + - invalidated + - mfa + - scope + type: array + saml: + properties: + connection: + properties: + type: + type: string + description: The Identity Provider "type", for example Okta. + example: OktaSAML + state: + type: string + description: Current state of the connection. + example: active + connectedAt: + type: number + description: Timestamp (in milliseconds) of when the configuration was connected. + example: 1611796915677 + lastReceivedWebhookEvent: + type: number + description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. + example: 1611796915677 + lastSyncedAt: + type: number + description: Timestamp (in milliseconds) of when the last directory sync was performed. + example: 1611796915677 + syncState: + type: string + enum: + - ACTIVE + - SETUP + description: 'Controls whether directory sync events are processed. - ''SETUP'': Directory connected but role mappings not yet configured. Events are acknowledged but not processed. - ''ACTIVE'': Fully configured. Events are processed normally. - undefined: Legacy directory (pre-feature), treat as ''ACTIVE'' for backwards compatibility.' + status: + type: string + required: + - connectedAt + - state + - status + - type + type: object + description: Information for the SAML Single Sign-On configuration. + directory: + properties: + type: + type: string + description: The Identity Provider "type", for example Okta. + example: OktaSAML + state: + type: string + description: Current state of the connection. + example: active + connectedAt: + type: number + description: Timestamp (in milliseconds) of when the configuration was connected. + example: 1611796915677 + lastReceivedWebhookEvent: + type: number + description: Timestamp (in milliseconds) of when the last webhook event was received from WorkOS. + example: 1611796915677 + lastSyncedAt: + type: number + description: Timestamp (in milliseconds) of when the last directory sync was performed. + example: 1611796915677 + syncState: + type: string + enum: + - ACTIVE + - SETUP + description: 'Controls whether directory sync events are processed. - ''SETUP'': Directory connected but role mappings not yet configured. Events are acknowledged but not processed. - ''ACTIVE'': Fully configured. Events are processed normally. - undefined: Legacy directory (pre-feature), treat as ''ACTIVE'' for backwards compatibility.' + required: + - connectedAt + - state + - type type: object - additionalProperties: false - properties: - reasons: - type: array - description: Optional array of objects that describe the reason why the team is being deleted. - items: - type: object - description: An object describing the reason why the team is being deleted. - required: - - slug - - description - additionalProperties: false - properties: - slug: - type: string - description: Idenitifier slug of the reason why the team is being deleted. - description: - type: string - description: Description of the reason why the team is being deleted. - '/v1/teams/{teamId}/invites/{inviteId}': - delete: - description: Delete an active Team invite code. - operationId: deleteTeamInviteCode - security: - - bearerToken: [] - summary: Delete a Team invite code - tags: - - teams - responses: - '200': - description: Successfully deleted Team invite code. - content: - application/json: - schema: + description: Information for the Directory Sync configuration. + enforced: + type: boolean + enum: + - false + - true + description: When `true`, interactions with the Team **must** be done with an authentication token that has been authenticated with the Team's SAML Single Sign-On provider. + required: + - enforced + type: object + description: When "Single Sign-On (SAML)" is configured, this object contains information that allows the client-side to identify whether or not this Team has SAML enforced. + id: + type: string + description: The Team's unique identifier. + example: team_nllPyCtREAqxxdyFKbbMDlxd + slug: + type: string + description: The Team's slug, which is unique across the Vercel platform. + example: my-team + name: + nullable: true + type: string + description: Name associated with the Team account, or `null` if none has been provided. + example: My Team + avatar: + nullable: true + type: string + description: The ID of the file used as avatar for this Team. + example: 6eb07268bcfadd309905ffb1579354084c24655c + membership: + properties: + uid: + type: string + entitlements: + items: properties: - id: + entitlement: type: string - description: ID of the team. required: - - id + - entitlement type: object - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: |- - You do not have permission to access this resource. - Invite managed by directory sync - Not authorized to access this team. - '404': - description: |- - Team invite code not found. - No team found. - parameters: - - description: The Team identifier or slug to perform the request on behalf of. - in: path - name: teamId - schema: - type: string - required: true - - name: inviteId - description: The Team invite code ID. - in: path - required: true - schema: - type: string - description: The Team invite code ID. - example: 2wn2hudbr4chb1ecywo9dvzo7g9sscs6mzcz8htdde0txyom4l + type: array + teamId: + type: string + confirmed: + type: boolean + enum: + - true + accessRequestedAt: + type: number + role: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + teamRoles: + items: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + type: array + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + type: array + createdAt: + type: number + created: + type: number + joinedFrom: + properties: + origin: + type: string + enum: + - account-update + - bitbucket + - dsync + - feedback + - github + - gitlab + - import + - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade + - organization-teams + - saml + - teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + required: + - confirmed + - created + - createdAt + - role + type: object + description: The membership of the authenticated User in relation to the Team. + createdAt: + type: number + description: UNIX timestamp (in milliseconds) when the Team was created. + example: 1630748523395 + parentId: + type: string + description: The organizationId for teams that belong to an organization (set on both the organization's root team and its child teams). + example: org_nllPyCtREAqxxdyFKbbMDlxd + orgRootTeamId: + type: string + description: Best-effort ID of the organization’s root billing team. When present, compare `orgRootTeamId === id` to identify the root team. It may be omitted even when `parentId` is set if organization resolution fails or the referenced organization is missing. Always omitted for non-organization teams. + example: team_nllPyCtREAqxxdyFKbbMDlxd + required: + - avatar + - createdAt + - id + - limited + - limitedBy + - name + - slug + type: object + description: A limited form of data representing a Team, due to the authentication token missing privileges to read the full Team data. + Pagination: + properties: + count: + type: number + description: Amount of items in the current page. + example: 20 + next: + nullable: true + type: number + description: Timestamp that must be used to request the next page. + example: 1540095775951 + prev: + nullable: true + type: number + description: Timestamp that must be used to request the previous page. + example: 1540095775951 + required: + - count + - next + - prev + type: object + description: This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data. + x-stackQL-resources: + members: + id: vercel.teams.members + name: members + title: Members + methods: + list: + operation: + $ref: '#/paths/~1v3~1teams~1{team_id}~1members/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.members + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + invite: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1teams~1{team_id}~1members/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + join: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1members~1teams~1join/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1members~1{uid}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + remove: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1members~1{uid}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete_invite: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1invites~1{invite_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/members/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/members/methods/invite' + update: + - $ref: '#/components/x-stackQL-resources/members/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/members/methods/remove' + - $ref: '#/components/x-stackQL-resources/members/methods/delete_invite' + replace: [] + access_requests: + id: vercel.teams.access_requests + name: access_requests + title: Access Requests + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1request/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1request~1{user_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/access_requests/methods/get' + insert: + - $ref: '#/components/x-stackQL-resources/access_requests/methods/create' + update: [] + delete: [] + replace: [] + teams: + id: vercel.teams.teams + name: teams + title: Teams + methods: + get: + operation: + $ref: '#/paths/~1v2~1teams~1{team_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v2~1teams~1{team_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v2~1teams/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.teams + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: until + location: query + responseToken: + key: $.pagination.next + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + update_dsync_roles: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1dsync-roles/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/teams/methods/get' + - $ref: '#/components/x-stackQL-resources/teams/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/teams/methods/create' + update: + - $ref: '#/components/x-stackQL-resources/teams/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/teams/methods/delete' + replace: [] + microfrontend_groups: + id: vercel.teams.microfrontend_groups + name: microfrontend_groups + title: Microfrontend Groups + methods: + update: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1microfrontends~1{group_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1teams~1{team_id}~1microfrontends~1{group_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/microfrontend_groups/methods/update' + delete: + - $ref: '#/components/x-stackQL-resources/microfrontend_groups/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/user.yaml b/providers/src/vercel/v00.00.00000/services/user.yaml index 5d0fb5ec..9514da97 100644 --- a/providers/src/vercel/v00.00.00000/services/user.yaml +++ b/providers/src/vercel/v00.00.00000/services/user.yaml @@ -1,1477 +1,8363 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: user API + description: vercel user API version: 0.0.1 - title: Vercel API - user - description: user -components: - schemas: - UserEvent: - properties: - id: - type: string - description: The unique identifier of the Event. - example: uev_bfmMjiMnXfnPbT97dGdpJbCN - text: - type: string - description: The human-readable text of the Event. - example: You logged in via GitHub - entities: - items: - properties: - type: - type: string - enum: - - author - - bitbucket_login - - bold - - deployment_host - - dns_record - - git_link - - github_login - - gitlab_login - - hook_name - - integration - - edge-config - - link - - project_name - - scaling_rules - - env_var_name - - target - - store - - system - description: The type of entity. - example: author - start: - type: number - description: The index of where the entity begins within the `text` (inclusive). - example: 0 - end: - type: number - description: The index of where the entity ends within the `text` (non-inclusive). - example: 3 - required: - - type - - start - - end - type: object - description: A list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links. - type: array - description: A list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links. - createdAt: - type: number - description: Timestamp (in milliseconds) of when the event was generated. - example: 1632859321020 - user: - properties: - avatar: - type: string - email: - type: string - slug: - type: string - uid: - type: string - username: - type: string - required: - - avatar - - email - - uid - - username - type: object - description: Metadata for the User who generated the event. - userId: - type: string - description: The unique identifier of the User who generated the event. - example: zTuNVUXEAvvnNN3IaqinkyMw - required: - - id - - text - - entities - - createdAt - - userId - type: object - description: Array of events generated by the User. - AuthUser: - properties: - createdAt: - type: number - description: UNIX timestamp (in milliseconds) when the User account was created. - example: 1630748523395 - softBlock: - nullable: true - properties: - blockedAt: - type: number - reason: - type: string - enum: - - SUBSCRIPTION_CANCELED - - SUBSCRIPTION_EXPIRED - - UNPAID_INVOICE - - ENTERPRISE_TRIAL_ENDED - - FAIR_USE_LIMITS_EXCEEDED - - BLOCKED_FOR_PLATFORM_ABUSE - blockedDueToOverageType: - type: string - enum: - - blobStores - - analyticsUsage - - artifacts - - bandwidth - - cronJobInvocation - - dataCacheRead - - dataCacheRevalidation - - dataCacheWrite - - edgeConfigRead - - edgeConfigWrite - - edgeFunctionExecutionUnits - - edgeMiddlewareInvocations - - monitoringMetric - - postgresComputeTime - - postgresDatabase - - postgresDataStorage - - postgresDataTransfer - - postgresWrittenData - - serverlessFunctionExecution - - sourceImages - - storageRedisTotalBandwidthInBytes - - storageRedisTotalCommands - - storageRedisTotalDailyAvgStorageInBytes - - storageRedisTotalDatabases - - webAnalyticsEvent - - blobTotalSimpleRequests - - blobTotalAdvancedRequests - - blobTotalAvgSizeInBytes - - blobTotalGetResponseObjectSizeInBytes - required: - - blockedAt - - reason - type: object - description: 'When the User account has been "soft blocked", this property will contain the date when the restriction was enacted, and the identifier for why.' - billing: - nullable: true - properties: - currency: - type: string - enum: - - usd - - eur - cancelation: - nullable: true - type: number - period: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - contract: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - plan: - type: string - enum: - - pro - - enterprise - - hobby - platform: - type: string - enum: - - stripe - - stripeTestMode - orbCustomerId: - type: string - syncedAt: - type: number - programType: - type: string - enum: - - startup - - agency - trial: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - email: - nullable: true - type: string - tax: - nullable: true - properties: - type: - type: string - id: - type: string - required: - - type - - id - type: object - language: - nullable: true - type: string - address: - nullable: true - properties: - line1: - type: string - line2: - type: string - postalCode: - type: string - city: - type: string - country: - type: string - state: - type: string - required: - - line1 - type: object - name: - nullable: true - type: string - invoiceItems: - nullable: true - properties: - concurrentBuilds: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - webAnalytics: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: - properties: - interval: - type: string - enum: - - month - intervalCount: - type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 - required: - - interval - - intervalCount - type: object - maxQuantity: - type: number +paths: + /v3/events: + get: + description: Retrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified. + operationId: listUserEvents + security: + - bearerToken: [] + summary: List User Events + tags: + - user + responses: + '200': + description: Successful response. + content: + application/json: + schema: + properties: + events: + items: + $ref: '#/components/schemas/UserEvent' + type: array + description: Array of events generated by the User. + required: + - events + type: object + description: Successful response. + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + aliases: + - events + parameters: + - name: limit + description: Maximum number of items which may be returned. + in: query + schema: + description: Maximum number of items which may be returned. + example: 20 + type: number + - name: since + description: Timestamp to only include items created since then. + in: query + schema: + description: Timestamp to only include items created since then. + example: '2019-12-08T10:00:38.976Z' + type: string + - name: until + description: Timestamp to only include items created until then. + in: query + schema: + description: Timestamp to only include items created until then. + example: '2019-12-09T23:00:38.976Z' + type: string + - name: types + description: Comma-delimited list of event "types" to filter the results by. + in: query + schema: + description: Comma-delimited list of event "types" to filter the results by. + example: login,team-member-join,domain-buy + type: string + - name: userId + description: Deprecated. Use `principalId` instead. If `principalId` and `userId` both exist, `principalId` will be used. + in: query + schema: + description: Deprecated. Use `principalId` instead. If `principalId` and `userId` both exist, `principalId` will be used. + example: aeIInYVk59zbFF2SxfyxxmuO + type: string + - name: principalId + description: When retrieving events for a Team, the `principalId` parameter may be specified to filter events generated by a specific principal. + in: query + schema: + description: When retrieving events for a Team, the `principalId` parameter may be specified to filter events generated by a specific principal. + example: aeIInYVk59zbFF2SxfyxxmuO + type: string + - name: projectIds + description: Comma-delimited list of project IDs to filter the results by. + in: query + schema: + description: Comma-delimited list of project IDs to filter the results by. + example: aeIInYVk59zbFF2SxfyxxmuO + type: string + - name: entityId + description: Filters events to those associated with a specific entity (matched against `payload.id`). For example, a connector ID. + in: query + schema: + description: Filters events to those associated with a specific entity (matched against `payload.id`). For example, a connector ID. + example: scl_123 + type: string + - name: withPayload + description: When set to `true`, the response will include the `payload` field for each event. + in: query + schema: + description: When set to `true`, the response will include the `payload` field for each event. + example: 'true' + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/events/types: + get: + description: Returns the list of user-facing event types with descriptions. + operationId: listEventTypes + security: + - bearerToken: [] + summary: List Event Types + tags: + - user + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/ListEventTypesResponse' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/user: + get: + description: Retrieves information related to the currently authenticated User. + operationId: getAuthUser + security: + - bearerToken: [] + summary: Get the User + tags: + - user + responses: + '200': + description: Successful response. + content: + application/json: + schema: + properties: + user: + properties: + createdAt: + type: number + description: UNIX timestamp (in milliseconds) when the User account was created. + example: 1630748523395 + softBlock: + nullable: true + properties: + blockedAt: + type: number + reason: + type: string + enum: + - BLOCKED_FOR_PLATFORM_ABUSE + - DOMAIN_OWNER_DELETION_REQUEST + - ENTERPRISE_TRIAL_ENDED + - ENTERPRISE_UNPAID_INVOICE + - EXPOSURE_CAP_EXCEEDED + - FAIR_USE_LIMITS_EXCEEDED + - SUBSCRIPTION_CANCELED + - SUBSCRIPTION_EXPIRED + - UNPAID_INVOICE + blockedDueToOverageType: + type: string + enum: + - analyticsUsage + - artifacts + - bandwidth + - blobDataTransfer + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + - blobTotalSimpleRequests + - connectDataTransfer + - dataCacheRead + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - edgeRequest + - edgeRequestAdditionalCpuDuration + - elasticConcurrencyBuildSlots + - fastDataTransfer + - fastOriginTransfer + - fluidCpuDuration + - fluidDuration + - functionDuration + - functionInvocation + - imageOptimizationCacheRead + - imageOptimizationCacheWrite + - imageOptimizationTransformation + - logDrainsVolume + - monitoringMetric + - observabilityEvent + - onDemandConcurrencyMinutes + - runtimeCacheRead + - runtimeCacheWrite + - serverlessFunctionExecution + - sourceImages + - wafOwaspExcessBytes + - wafOwaspRequests + - wafRateLimitRequest + - webAnalyticsEvent + unpauseAt: + type: number + description: Since September 2026. Set only by `billing-usage-alerts` for usage plans with a `blockDurationMs`; its presence marks a pause that expires on its own. + required: + - blockedAt + - reason + type: object + description: When the User account has been "soft blocked", this property will contain the date when the restriction was enacted, and the identifier for why. + billing: + nullable: true + type: string + description: An object containing billing infomation associated with the User account. (opaque JSON object) + resourceConfig: + properties: + concurrentBuilds: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + nodeType: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + buildEntitlements: + properties: + enhancedBuilds: + type: boolean + enum: + - false + - true + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + awsAccountType: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + awsAccountIds: + items: + type: string + type: array + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + cfZoneName: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + imageOptimizationType: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeConfigs: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeConfigSize: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeFunctionMaxSizeBytes: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + edgeFunctionExecutionTimeoutMs: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + serverlessFunctionMaxDuration: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + serverlessFunctionMaxMemorySize: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + kvDatabases: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + postgresDatabases: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + blobStores: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + integrationStores: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + cronJobsPerProject: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + microfrontendGroupsPerTeam: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + microfrontendProjectsPerGroup: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + flagsExplorerOverridesThreshold: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + flagsExplorerUnlimitedOverrides: + type: boolean + enum: + - false + - true + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + customEnvironmentsPerProject: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + security: + properties: + rateLimit: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + customRules: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + ipBlocks: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + ipBypass: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + bulkRedirectsFreeLimitOverride: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + stagingPrefix: + type: string + description: Prefix that will be used in the URL of "Preview" deployments created by the User account. + activeDashboardViews: + items: + properties: + scopeId: + type: string + viewPreference: + nullable: true + type: string + enum: + - cards + - list + - null + favoritesViewPreference: + nullable: true + type: string + enum: + - closed + - open + - null + recentsViewPreference: + nullable: true + type: string + enum: + - closed + - open + - null + required: + - scopeId + type: object + description: set of dashboard view preferences (cards or list) per scopeId + type: array + description: set of dashboard view preferences (cards or list) per scopeId + importFlowGitNamespace: + nullable: true + type: string + importFlowGitNamespaceId: + nullable: true + type: string + importFlowGitProvider: + nullable: true + type: string + enum: + - bitbucket + - cursor-origin + - github + - github-custom-host + - github-limited + - gitlab + - vercel + - null + preferredScopesAndGitNamespaces: + items: + properties: + scopeId: + type: string + gitNamespaceId: + nullable: true + oneOf: + - type: string + - type: number + required: + - gitNamespaceId + - scopeId + type: object + type: array + dismissedToasts: + items: + properties: + name: + type: string + dismissals: + items: + properties: + scopeId: + type: string + createdAt: + type: number + required: + - createdAt + - scopeId + type: object + type: array + required: + - dismissals + - name + type: object + description: A record of when, under a certain scopeId, a toast was dismissed + type: array + description: A record of when, under a certain scopeId, a toast was dismissed + favoriteProjectsAndSpaces: + items: + properties: + teamId: + type: string + projectId: + type: string + required: + - projectId + - teamId + type: object + description: A list of projects and spaces across teams that a user has marked as a favorite. + type: array + description: A list of projects and spaces across teams that a user has marked as a favorite. + hasTrialAvailable: + type: boolean + enum: + - false + - true + description: Whether the user has a trial available for a paid plan subscription. + remoteCaching: + properties: + enabled: + type: boolean + enum: + - false + - true + type: object + description: remote caching settings + dataCache: + properties: + excessBillingEnabled: + type: boolean + enum: + - false + - true + type: object + description: data cache settings + featureBlocks: + properties: + webAnalytics: + properties: + blockedFrom: + type: number + blockedUntil: + type: number + isCurrentlyBlocked: + type: boolean + enum: + - false + - true + required: + - isCurrentlyBlocked + type: object + speedInsightsFree: + properties: + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + - limits_exceeded + isCurrentlyBlocked: + type: boolean + enum: + - false + - true + required: + - blockReason + - isCurrentlyBlocked + type: object + description: Client-facing view of the `speedInsightsFree` ingestion block. The dashboard needs `blockReason` to tell usage pauses apart from admin blocks. + type: object + description: Feature blocks for the user + isAccountUpdateRequired: + type: boolean + enum: + - false + - true + description: When `true`, the user must complete the EMU Update Account flow before they can use the dashboard. + accountUpdateContext: + properties: + canOptOut: + type: boolean + enum: + - false + - true + description: Whether this user can cancel their optional Account Update flow. + organization: + properties: + id: + type: string + name: + type: string + slug: + type: string + required: + - id + - name + - slug + type: object + managedTeams: + items: + properties: + teamId: + type: string + slug: + type: string + name: + type: string + avatar: + nullable: true + type: string + workEmail: + type: string + required: + - avatar + - name + - slug + - teamId + - workEmail + type: object + type: array + verifiedEmuDomains: + items: + type: string + type: array + required: + - canOptOut + - managedTeams + - verifiedEmuDomains + type: object + description: Context for the Update Account screen. Present only when `isAccountUpdateRequired` is true. `managedTeams` is empty for orphan mode (user matches an EMU domain but is not on the team). + id: + type: string + description: The User's unique identifier. + example: AEIIDYVk59zbFF2Sxfyxxmua + email: + type: string + description: Email address associated with the User account. + example: me@example.com + name: + nullable: true + type: string + description: Name associated with the User account, or `null` if none has been provided. + example: John Doe + username: + type: string + description: Unique username associated with the User account. + example: jdoe + avatar: + nullable: true + type: string + description: SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image. + example: 22cb30c85ff45ac4c72de8981500006b28114aa1 + defaultTeamId: + nullable: true + type: string + description: The user's default team. + isEnterpriseManaged: + type: boolean + enum: + - false + - true + description: Indicates whether the user is managed by an enterprise. + shouldShowEnterpriseManagedWelcome: + type: boolean + enum: + - false + - true + description: Whether the Enterprise Managed User joined the current team through the Update Account flow and should see its welcome experience. + limited: + type: boolean + enum: + - true + description: Property indicating that this User data contains only limited information, due to the authentication token missing privileges to read the full User data. Re-login with email, GitHub, GitLab or Bitbucket in order to upgrade the authentication token with the necessary privileges. + required: + - avatar + - billing + - createdAt + - defaultTeamId + - email + - hasTrialAvailable + - id + - name + - resourceConfig + - softBlock + - stagingPrefix + - username + - limited + type: object + description: Data for the currently authenticated User. + required: + - user + type: object + description: Successful response. + x-vercel-cli: + displayProperty: user + displayColumns: + name: user.name + id: user.id + email: user.email + username: user.username + defaultTeamId: user.defaultTeamId + createdAt: user.createdAt + blockedAt: user.softBlock.blockedAt + blockedReason: user.softBlock.reason + '302': + description: '' + '400': + description: '' + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '409': + description: '' + '410': + description: '' + x-vercel-cli: + supportedSubcommands: true + supportedProduction: false + parameters: [] + x-speakeasy-test: false + /v1/user: + delete: + description: Initiates the deletion process for the currently authenticated User, by sending a deletion confirmation email. The email contains a link that the user needs to visit in order to proceed with the deletion process. + operationId: requestDelete + security: + - bearerToken: [] + summary: Delete User Account + tags: + - user + responses: + '202': + description: Response indicating that the User deletion process has been initiated, and a confirmation email has been sent. + content: + application/json: + schema: + properties: + id: + type: string + description: Unique identifier of the User who has initiated deletion. + email: + type: string + description: Email address of the User who has initiated deletion. + message: + type: string + description: User deletion progress status. + example: Verification email sent + required: + - email + - id + - message + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: '' + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: [] + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + reasons: + type: array + description: Optional array of objects that describe the reason why the User account is being deleted. + items: + type: object + description: An object describing the reason why the User account is being deleted. + required: + - slug + - description + additionalProperties: false + properties: + slug: + type: string + description: Idenitifier slug of the reason why the User account is being deleted. + description: + type: string + description: Description of the reason why the User account is being deleted. + required: true +components: + schemas: + UserEvent: + properties: + id: + type: string + description: The unique identifier of the Event. + example: uev_bfmMjiMnXfnPbT97dGdpJbCN + text: + type: string + description: The human-readable text of the Event. + example: You logged in via GitHub + entities: + items: + properties: + type: + type: string + enum: + - app + - author + - bitbucket_login + - bold + - deployment_host + - deployment_inspector + - dns_record + - edge-config + - env_var_name + - flag + - flags-segment + - flags-settings + - git_link + - github_login + - gitlab_login + - hook_name + - integration + - link + - project_name + - scaling_rules + - store + - system + - target + example: author + description: The type of entity. + start: + type: number + description: The index of where the entity begins within the `text` (inclusive). + example: 0 + end: + type: number + description: The index of where the entity ends within the `text` (non-inclusive). + example: 3 + required: + - end + - start + - type + type: object + description: A list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links. + type: array + description: A list of "entities" within the event `text`. Useful for enhancing the displayed text with additional styling and links. + type: + type: string + enum: + - access-group-created + - access-group-deleted + - access-group-project-updated + - access-group-updated + - access-group-user-added + - access-group-user-removed + - admin-agentic-provisioning-account-unlinked + - admin-plan-updated + - admin-secondary-email-added + - admin-secondary-email-removed + - admin-team-name-update + - admin-team-slug-update + - admin-user-delete + - admin-user-primary-email-updated + - admin-username-updated + - agentic-provisioning-account-blocked + - agentic-provisioning-account-linked + - agentic-provisioning-account-relinked + - agentic-provisioning-account-unlinked + - agentic-provisioning-credentials-rotated + - agentic-provisioning-plan-changed + - agentic-provisioning-team-created + - ai-alert-investigation + - ai-code-review + - ai-gateway-api-key-created + - ai-gateway-api-key-deleted + - ai-gateway-api-key-quota-updated + - ai-gateway-auto-reload-updated + - ai-gateway-budget-default-updated + - ai-gateway-byok-credential-created + - ai-gateway-byok-credential-deleted + - ai-gateway-byok-credential-updated + - ai-gateway-byok-model-mappings-updated + - ai-gateway-credits-purchased + - ai-gateway-guardrails-updated + - ai-gateway-hipaa-compliance-toggled + - ai-gateway-inference-regions-updated + - ai-gateway-model-allowlist-models-updated + - ai-gateway-model-allowlist-toggled + - ai-gateway-private-model-created + - ai-gateway-private-model-deleted + - ai-gateway-private-model-updated + - ai-gateway-private-provider-created + - ai-gateway-private-provider-deleted + - ai-gateway-private-provider-updated + - ai-gateway-prompt-training-opt-out-toggled + - ai-gateway-provider-allowlist-providers-updated + - ai-gateway-provider-allowlist-toggled + - ai-gateway-rule-created + - ai-gateway-rule-deleted + - ai-gateway-rule-updated + - ai-gateway-scope-budget-updated + - ai-gateway-transcripts-default-disabled + - ai-gateway-transcripts-default-enabled + - ai-gateway-transcripts-disabled + - ai-gateway-transcripts-enabled + - ai-gateway-transcripts-retention-updated + - ai-gateway-virtual-model-config-archived + - ai-gateway-virtual-model-config-created + - ai-gateway-virtual-model-config-deleted + - ai-gateway-virtual-model-config-restored + - ai-gateway-virtual-model-config-updated + - ai-gateway-zero-data-retention-toggled + - ai-omniagent + - alert-investigation-project-allowlist-updated + - alert-rule-created + - alert-rule-deleted + - alert-rule-updated + - alias + - alias-chown + - alias-delete + - alias-invite-created + - alias-invite-joined + - alias-invite-revoked + - alias-protection-bypass-created + - alias-protection-bypass-exception + - alias-protection-bypass-regenerated + - alias-protection-bypass-revoked + - alias-system + - alias-user-scoped-access-denied + - alias-user-scoped-access-granted + - alias-user-scoped-access-requested + - alias-user-scoped-access-revoked + - aliases-assigned + - attack-mode-disabled + - attack-mode-enabled + - audit-log-export-downloaded + - audit-log-export-requested + - authorize-git-deployment + - auto-expose-system-envs + - avatar + - billing-settings-updated + - bulk-redirects-settings-updated + - bulk-redirects-version-promoted + - bulk-redirects-version-restored + - cert + - cert-autorenew + - cert-chown + - cert-clone + - cert-delete + - cert-renew + - cert-replace + - cert-system-create + - code-owners-config-updated + - compliance-document-downloaded + - compliance-document-previewed + - compliance-documents-bulk-downloaded + - concurrent-builds-update + - connect-attach-project + - connect-bitbucket + - connect-bitbucket-app + - connect-configuration-created + - connect-configuration-deleted + - connect-configuration-link-updated + - connect-configuration-linked + - connect-configuration-unlinked + - connect-configuration-updated + - connect-create-connector + - connect-delete-connector + - connect-delete-installation + - connect-detach-project + - connect-github + - connect-github-custom-host + - connect-github-limited + - connect-gitlab + - connect-gitlab-app + - connect-import-tokens + - connect-revoke-all-tokens + - connect-update-connector + - connect-update-trigger-destinations + - connect-upsert-installation + - custom-alert-created + - custom-alert-deleted + - custom-alert-updated + - custom-environments-settings-updated + - custom-metric-metadata-deleted + - custom-metric-metadata-updated + - custom-suffix-clear + - custom-suffix-disable + - custom-suffix-enable + - custom-suffix-pending + - custom-suffix-ready + - deploy-hook-created + - deploy-hook-deduped + - deploy-hook-deleted + - deploy-hook-processed + - deployment + - deployment-check-created + - deployment-check-deleted + - deployment-check-updated + - deployment-chown + - deployment-creation-blocked + - deployment-delete + - deployment-policy-blocked + - deployment-undeleted + - disabled-integration-installation-removed + - disconnect-bitbucket-app + - disconnect-github + - disconnect-github-custom-host + - disconnect-github-limited + - disconnect-gitlab-app + - dns-add + - dns-delete + - dns-record-internal + - dns-update + - dns-zonefile-import + - domain + - domain-buy + - domain-cdn + - domain-chown + - domain-custom-ns-change + - domain-delegated + - domain-delete + - domain-ech-change + - domain-move-in + - domain-move-out + - domain-move-out-request-sent + - domain-renew-change + - domain-service-type-updated + - domain-transfer-in + - domain-transfer-in-canceled + - domain-transfer-in-completed + - domain-zone-change + - domain-zone-change-internal + - drain-created + - drain-deleted + - drain-disabled + - drain-enabled + - drain-updated + - edge-cache-dangerously-delete-by-src-images + - edge-cache-dangerously-delete-by-tags + - edge-cache-dangerously-delete-immutable-static + - edge-cache-invalidate-by-src-images + - edge-cache-invalidate-by-tags + - edge-cache-purge-all + - edge-cache-rollback-purge + - edge-config-backup-restored + - edge-config-created + - edge-config-deleted + - edge-config-items-updated + - edge-config-schema-deleted + - edge-config-schema-updated + - edge-config-token-created + - edge-config-token-deleted + - edge-config-transfer-in + - edge-config-transfer-out + - edge-config-updated + - email + - email-notification-rule-removed + - email-notification-rule-updated + - emu-member-removed-unverified-domain + - enforce-disjunctive-production-secrets + - enforce-sensitive-environment-variables + - env-variable-add + - env-variable-delete + - env-variable-edit + - env-variable-masked + - env-variable-read + - env-variable-read:cli:dev + - env-variable-read:cli:env:add + - env-variable-read:cli:env:ls + - env-variable-read:cli:env:pull + - env-variable-read:cli:env:rm + - env-variable-read:cli:pull + - env-variable-read:unknown-source + - env-variable-read:v0:env:pull + - env-variable-rotated + - experiment-created + - experiment-deleted + - experiment-transitioned + - experiment-updated + - firewall-bypass-created + - firewall-bypass-deleted + - firewall-config-modified + - firewall-config-promoted + - firewall-config-removed + - firewall-managed-rulegroup-updated + - firewall-managed-ruleset-updated + - flag + - flag-archived + - flag-created + - flag-deleted + - flag-unarchived + - flag-updated + - flags-explorer-subscription + - flags-sdk-key + - flags-sdk-key-added + - flags-sdk-key-deleted + - flags-sdk-key-read + - flags-segment + - flags-settings + - flags-transferred + - flat-rate-cdn-auto-upgrade-consent + - git-integration-repo-push + - git_account_integration_link_added + - global-config-backup-restored + - global-config-created + - global-config-deleted + - global-config-items-updated + - global-config-schema-deleted + - global-config-schema-updated + - global-config-token-created + - global-config-token-deleted + - global-config-transfer-in + - global-config-transfer-out + - global-config-updated + - instant-rollback-created + - integration-configuration-credential-revoked + - integration-configuration-credential-rotated + - integration-configuration-owner-changed + - integration-configuration-scope-change-confirmed + - integration-configuration-transfer-in-success + - integration-configuration-transfer-out-success + - integration-configurations-disabled + - integration-installation-billing-plan-updated + - integration-installation-completed + - integration-installation-permission-updated + - integration-installation-removed + - integration-resource-redis-command-executed + - integration-resource-sql-query-executed + - integration-scope-changed + - invoice-modified + - invoice-refunded + - kms-issuer-created + - kms-issuer-deleted + - kms-issuer-key-activated + - kms-issuer-key-created + - kms-issuer-key-revoked + - kms-issuer-key-rotated + - kms-issuer-policy-created + - kms-issuer-policy-deleted + - kms-issuer-policy-updated + - kms-issuer-updated + - log-drain-created + - log-drain-deleted + - log-drain-disabled + - log-drain-enabled + - login + - login-connection-linked + - login-connection-unlinked + - manual-deployment-promotion-created + - marketplace-flex-commit-opt-in + - marketplace-integration-allowlist-updated + - microfrontend-group-added + - microfrontend-group-deleted + - microfrontend-group-updated + - microfrontend-project-added-to-group + - microfrontend-project-removed-from-group + - microfrontend-project-updated + - monitoring-alert-updated + - monitoring-disabled + - monitoring-enabled + - oauth-app-connection-created + - oauth-app-connection-removed + - oauth-app-connection-updated + - oauth-app-created + - oauth-app-deleted + - oauth-app-secret-deleted + - oauth-app-secret-generated + - oauth-app-token-created + - oauth-app-updated + - observability-disabled + - observability-enabled + - observability-plus-project-disabled + - observability-plus-project-enabled + - oidc-policy-created + - oidc-policy-deleted + - oidc-policy-updated + - oidc-policy-used-to-obtain-app-token + - organization-create + - organization-delete + - organization-dsync-group-delete + - organization-dsync-group-upsert + - organization-slug-update + - organization-team-add + - organization-team-create + - organization-team-delete + - organization-team-sso-update + - owner-blocked + - owner-soft-blocked + - owner-soft-unblocked + - owner-unblocked + - page-integrity-config-updated + - page-integrity-header-approved + - page-integrity-header-rejected + - page-integrity-inventory-cleared + - page-integrity-resource-approved + - page-integrity-resource-deleted + - page-integrity-resource-rejected + - page-integrity-script-approval-rule-created + - page-integrity-script-approval-rule-deleted + - passkey-created + - passkey-deleted + - passkey-updated + - passport-access-granted + - password-protection-disabled + - password-protection-enabled + - payment-method-added + - payment-method-default-updated + - payment-method-removed + - plan + - preview-deployment-suffix-disabled + - preview-deployment-suffix-enabled + - preview-deployment-suffix-update + - privatelink-endpoint-created + - privatelink-endpoint-deleted + - privatelink-endpoint-updated + - production-branch-updated + - project-add-alias + - project-add-redirect + - project-affected-projects-deployments-updated + - project-alias-configured-change + - project-analytics-disabled + - project-analytics-enabled + - project-auto-assign-custom-production-domains-updated + - project-automation-bypass + - project-avatar-update + - project-build-command-updated + - project-build-logs-and-source-protection-updated + - project-build-machine-updated + - project-card-widget-preference-updated + - project-client-cert-delete + - project-client-cert-upload + - project-connect-configurations + - project-consolidated-git-commit-status-updated + - project-created + - project-cron-jobs-toggled + - project-custom-environment-created + - project-custom-environment-deleted + - project-custom-environment-updated + - project-customer-success-code-visibility-updated + - project-delete + - project-deployment-policy-updated + - project-deployment-retention-updated + - project-directory-listing + - project-domain-deleted + - project-domain-moved + - project-domain-unverified + - project-domain-updated + - project-domain-verified + - project-elastic-concurrency-updated + - project-expiration-locked + - project-expiration-reached + - project-expiration-scheduled + - project-expiration-unlocked + - project-external-rewrite-caching-updated + - project-framework-updated + - project-function-cpu-memory + - project-function-failover + - project-function-max-duration + - project-function-regions + - project-functions-beta-updated + - project-functions-fluid-disabled + - project-functions-fluid-enabled + - project-git-commit-comments-toggled + - project-git-commit-status-toggled + - project-git-create-deployments-toggled + - project-git-credential-bound-created + - project-git-credential-bound-deleted + - project-git-credential-bound-updated + - project-git-credential-grant-created + - project-git-credential-grant-deleted + - project-git-credential-grant-updated + - project-git-fork-protection-updated + - project-git-lfs-toggled + - project-git-pr-comments-toggled + - project-git-repository-connected + - project-git-repository-disconnected + - project-git-repository-dispatch-events-toggled + - project-git-require-verified-commits-toggled + - project-ignored-build-step-updated + - project-install-command-updated + - project-member-added + - project-member-invited + - project-member-removed + - project-member-removed-batch + - project-member-updated + - project-move-in-success + - project-move-out-failed + - project-move-out-started + - project-move-out-success + - project-name + - project-node-version-updated + - project-oidc-issuer-mode-updated + - project-oidc-token-created + - project-options-allowlist + - project-output-directory-updated + - project-passport-updated + - project-password-protection + - project-paused + - project-preview-deployment-suffix + - project-preview-environment-branch-tracking-updated + - project-prioritize-production-builds-updated + - project-program-enrollment-changed + - project-protected-sourcemaps-updated + - project-rollback-description-updated + - project-rolling-release-aborted + - project-rolling-release-approved + - project-rolling-release-completed + - project-rolling-release-configured + - project-rolling-release-continued + - project-rolling-release-disabled + - project-rolling-release-enabled + - project-rolling-release-paused + - project-rolling-release-started + - project-rolling-release-suggested-actions-generated + - project-rolling-release-timer + - project-root-directory-updated + - project-routes-version-promoted + - project-routes-version-restored + - project-sandbox-config-updated + - project-sandbox-url-protection-updated + - project-skew-protection-allowed-domains-updated + - project-skew-protection-max-age-updated + - project-skew-protection-threshold-updated + - project-source-files-outside-root-directory-updated + - project-speed-insights-disabled + - project-speed-insights-enabled + - project-speed-insights-free-data-started + - project-sso-protection + - project-static-ips-updated + - project-trusted-ips + - project-trusted-sources + - project-unpaused + - project-web-analytics-disabled + - project-web-analytics-enabled + - protected-git-scope-added + - protected-git-scope-removed + - runtime-cache-purge-all + - saml-connection-created + - saml-connection-deleted + - sandbox-alias-assigned + - sandbox-alias-delete + - sandbox-drive-created + - sandbox-drive-deleted + - sandbox-snapshot-regions-updated + - scale + - scale-auto + - secondary-email-added + - secondary-email-removed + - secondary-email-verified + - secret-add + - secret-delete + - secret-rename + - security-list-created + - security-list-deleted + - security-list-updated + - security-plus-updated + - set-bio + - set-name + - set-profiles + - set-scale + - shared-env-variable-create + - shared-env-variable-delete + - shared-env-variable-read + - shared-env-variable-repo-link + - shared-env-variable-repo-unlink + - shared-env-variable-update + - show-ip-addresses + - signup + - signup-via-bitbucket + - signup-via-github + - signup-via-gitlab + - speed-insights-settings-updated + - spend-created + - spend-deleted + - spend-updated + - sso-login + - storage-accept-tos + - storage-access-token-set + - storage-accessed-data-browser + - storage-connect-project + - storage-create + - storage-delete + - storage-disconnect-project + - storage-disconnect-projects + - storage-inactive-store-deleted + - storage-reset-credentials + - storage-resource-repl-command + - storage-set-locked + - storage-transfer-in-success + - storage-transfer-out-success + - storage-transfer-request-created + - storage-update + - storage-update-project-connection + - storage-upgrade-project-connection-to-oidc + - storage-view-secret + - strict-connectors + - strict-deployment-protection-settings + - strict-password-protection-settings + - strict-shareable-links + - subscription-created + - subscription-product-added + - subscription-product-removed + - subscription-updated + - support-session-created + - team + - team-agent-billing-migration-decision-changed + - team-avatar-update + - team-collaboration-settings-updated + - team-default-build-machine-updated + - team-default-passport-updated + - team-delete + - team-deployment-policy-updated + - team-domain-verification-created + - team-domain-verification-deleted + - team-domain-verification-verified + - team-email-domain-update + - team-emu-updated + - team-ended-trial + - team-firewall-config-modified + - team-firewall-config-promoted + - team-git-repository-dispatch-events-toggled + - team-git-require-verified-commits-toggled + - team-invite-bulk-delete + - team-invite-code-reset + - team-invite-link-created + - team-invite-link-deleted + - team-ip-blocking-rules-created + - team-ip-blocking-rules-removed + - team-member-add + - team-member-confirm-request + - team-member-decline-request + - team-member-delete + - team-member-entitlement-added + - team-member-entitlement-canceled + - team-member-entitlement-reactivated + - team-member-entitlement-removed + - team-member-join + - team-member-leave + - team-member-request-access + - team-member-role-update + - team-member-sso-authorization-attempt + - team-mfa-enforcement-updated + - team-name-update + - team-paid-invoice + - team-program-enrollment-changed + - team-remote-caching-purge + - team-remote-caching-update + - team-saml-enforced + - team-saml-roles + - team-slug-update + - team-tokens-invalidated + - tracing-configured + - tracing-disabled + - tracing-paused + - tracing-resumed + - unlink-login-connection + - update-account-flow-dismissed + - update-account-flow-triggered + - user-auto-block-configured + - user-blocked + - user-delete + - user-delete-requested + - user-emu-account-archived + - user-emu-account-deleted + - user-emu-account-recovered + - user-emu-account-update-opted-in + - user-emu-account-update-opted-out + - user-emu-recovery-email-sent + - user-emu-recovery-initiated + - user-emu-toggled + - user-mfa-challenge-failed + - user-mfa-challenge-initiated + - user-mfa-challenge-verified + - user-mfa-change-failed + - user-mfa-configuration-updated + - user-mfa-recovery-code-used + - user-mfa-recovery-codes-regenerated + - user-mfa-removed + - user-mfa-setup-skipped + - user-mfa-totp-verification-started + - user-mfa-totp-verified + - user-phone-removed + - user-phone-updated + - user-primary-email-updated + - user-provider-email-claim-evaluated + - user-sudo-mode-removed + - user-token-created + - user-token-deleted + - user-tokens-deleted + - user-unblocked + - username + - v0-chat-ai-usage + - v0-chat-created + - v0-chat-message-sent + - vcr-image-deleted + - vcr-image-pushed + - vcr-repository-created + - vcr-repository-deleted + - vcr-repository-permission-added + - vcr-repository-permission-removed + - vcr-repository-permissions-cleared + - vcr-repository-visibility-changed + - vercel-agent-elevated-permissions-approved + - vercel-agent-elevated-permissions-requested + - vercel-agent-session-created + - vercel-agent-team-trial-credits-applied + - vercel-app-installation-request-dismissed + - vercel-app-installation-requested + - vercel-app-installation-updated + - vercel-app-installed + - vercel-app-tokens-revoked + - vercel-app-uninstalled + - vercel-toolbar + - vpc-peering-connection-accepted + - vpc-peering-connection-deleted + - vpc-peering-connection-rejected + - vpc-peering-connection-updated + - vulnerability-banner-dismissed + - web-analytics-tier-updated + - webhook-created + - webhook-deleted + - webhook-updated + - workflow-deployment-key-accessed + description: The type of the event. + example: login + categories: + items: + type: string + enum: + - account + - ai + - ai-gateway + - billing + - connect + - deployment + - domain + - edge + - env-variable + - feature-flags + - firewall + - integration + - microfrontends + - network + - observability + - other + - project + - security + - storage + - team + - v0 + - vercel-app + - workflow + example: + - deployment + description: The categories that group this event with related event types. An event can belong to multiple categories (e.g. a firewall event is both Firewall and Security). The first entry is the "primary" category. Use the `/events/types` endpoint to discover the full list of categories. + type: array + description: The categories that group this event with related event types. An event can belong to multiple categories (e.g. a firewall event is both Firewall and Security). The first entry is the "primary" category. Use the `/events/types` endpoint to discover the full list of categories. + example: + - deployment + createdAt: + type: number + description: Timestamp (in milliseconds) of when the event was generated. + example: 1632859321020 + user: + properties: + slug: + type: string + avatar: + type: string + email: + type: string + username: + type: string + uid: + type: string + required: + - avatar + - email + - uid + - username + type: object + description: Metadata for {@link userId}. + principal: + properties: + type: + type: string + enum: + - user + avatar: + type: string + email: + type: string + slug: + type: string + uid: + type: string + username: + type: string + id: + type: string + description: The backing Vercel App ID. When absent, defaults to `clientId`. + clientId: + type: string + description: The OAuth 2.0 client ID, which may be a CIMD URL. + name: + type: string + required: + - avatar + - email + - uid + - username + - clientId + - name + - type + - id + type: object + description: Metadata for {@link principalId}. + via: + items: + oneOf: + - properties: + type: + type: string + enum: + - user + avatar: + type: string + email: + type: string + slug: + type: string + uid: + type: string + username: + type: string + required: + - avatar + - email + - uid + - username + type: object + description: Metadata for {@link viaIds}. + - properties: + type: + type: string + enum: + - app + id: + type: string + description: The backing Vercel App ID. When absent, defaults to `clientId`. + clientId: + type: string + description: The OAuth 2.0 client ID, which may be a CIMD URL. + name: + type: string + required: + - clientId + - name + - type + type: object + description: Metadata for {@link viaIds}. + - properties: + type: + type: string + enum: + - external + id: + type: string + name: + type: string + email: + type: string + required: + - id + - name + - type + type: object + description: Metadata for {@link viaIds}. + - properties: + type: + type: string + enum: + - system + required: + - type + type: object + description: Metadata for {@link viaIds}. + type: array + description: Metadata for {@link viaIds}. + userId: + type: string + description: When the principal who generated the event is a user, this is their ID; otherwise, it is empty. + example: zTuNVUXEAvvnNN3IaqinkyMw + principalId: + type: string + description: The ID of the principal who generated the event. The principal is typically a user, but it could also be an app, an integration, etc. The principal may have delegated its authority to an acting party, and so {@link viaIds} should be checked as well. + viaIds: + items: + type: string + type: array + description: If the principal delegated its authority (for example, a user delegating to an app), then this array contains the ID of the current actor. For example, if `principalId` is "user123" and `viaIds` is `["app456"]`, we can say the event was triggered by - "app456 on behalf of user123", or - "user123 via app4556". Both are equivalent. Arbitrarily long chains of delegation can be represented. For example, if `principalId` is "user123" and `viaIds` is `["service1", "service2"]`, we can say the event was triggered by "user123 via service1 via service2". + tokenId: + type: string + description: The public ID of the token that the principal authenticated with, when the request behind this event carried one. + sessionId: + type: string + description: The ID of the session that the principal's token belongs to, when it belongs to one. + requestId: + type: string + payload: + type: string + description: The payload of the event, if requested. (opaque JSON object) + properties: + action: + type: string + enum: + - archived + - created + - deleted + - unarchived + - updated + id: + type: string + slug: + type: string + projectId: + type: string + projectName: + type: string + name: + type: string + state: + type: string + label: + type: string + environment: + type: string + policyId: + type: string + provider: + type: string + enum: + - chatgpt + - stripe + description: Present on new events only. Equivalent to "stripe" when absent. + providerAccount: + type: string + description: Present on new events only. Equivalent to `stripeAccount` when absent. + stripeAccount: + type: string + description: Present when `provider` is "stripe". Equivalent to `providerAccount`. + stripeOrganisation: + type: string + description: Present when `provider` is "stripe". + teamId: + type: string + accountRequestId: + type: string + teamSlug: + type: string + reason: + type: string + blockCode: + type: string + resourceId: + type: string + actorId: + type: string + description: Okta user id. + actorType: + type: string + enum: + - admin + actorName: + type: string + fromPlan: + type: string + enum: + - hobby + - pro + toPlan: + type: string + enum: + - hobby + - pro + apiKey: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + budget: + nullable: true + properties: + limitAmount: + type: number + description: Spend cap, in dollars. + refreshPeriod: + type: string + enum: + - daily + - monthly + - none + - weekly + alertThresholds: + items: + type: number + type: array + required: + - limitAmount + - refreshPeriod + type: object + description: Spend budget on an AI Gateway API key, as surfaced in activity messages. Defined locally (rather than imported from `@api/pubsub-types`) because `@api/pubsub-types` already depends on `@api/events`; importing it here would create a circular dependency. Must stay structurally aligned with `APIKeyBudget` in `@api/pubsub-types/event-payloads/api-keys`. + zdrExemption: + type: boolean + enum: + - false + - true + description: True when the key was created with a ZDR exemption. + bypassAll: + type: boolean + enum: + - false + - true + description: True when the key was created to bypass all of the team's restrictions (the ZDR-only model restriction and the provider/model allowlist). + change: + type: string + enum: + - disable + - enable + - remove + - set + settings: + properties: + minimumBalance: + type: string + targetBalance: + type: string + maximumMonthlySpend: + nullable: true + type: string + required: + - maximumMonthlySpend + - minimumBalance + - targetBalance + type: object + previous: + properties: + minimumBalance: + type: string + targetBalance: + type: string + maximumMonthlySpend: + nullable: true + type: string + required: + - maximumMonthlySpend + - minimumBalance + - targetBalance + type: object + commitment: + properties: + maximumMonthlySpend: + nullable: true + type: string + deferredInvoiceTargetBalance: + type: string + required: + - deferredInvoiceTargetBalance + - maximumMonthlySpend + type: object + scopeType: + type: string + enum: + - api-key + - project + - team + - user + userId: + type: string + description: Associates the event with a member for filtering; not rendered. + userName: + type: string + credential: + properties: + id: + type: string + name: + type: string + providerSlug: + type: string + required: + - id + - name + - providerSlug + type: object + added: + items: + type: string + type: array + removed: + items: + type: string + type: array + changed: + items: + type: string + type: array + enabled: + type: boolean + enum: + - false + - true + amount: + type: string + purchaseIntentId: + type: string + privateModel: + properties: + slug: + type: string + providerSlug: + type: string + required: + - providerSlug + - slug + type: object + privateProvider: + properties: + slug: + type: string + required: + - slug + type: object + piiRedaction: + properties: + from: + type: boolean + enum: + - false + - true + to: + type: boolean + enum: + - false + - true + required: + - from + - to + type: object + moderationPolicyCount: + type: number + policiesAdded: + items: + type: string + type: array + policiesRemoved: + items: + type: string + type: array + policiesModified: + items: + type: string + type: array + regions: + items: + type: string + type: array + retention: + properties: + defaultMode: + type: string + enum: + - days + - until-requested + defaultDays: + type: number + ceilingMode: + type: string + enum: + - days + - until-requested + ceilingDays: + type: number + required: + - ceilingMode + - defaultMode + type: object + rule: + properties: + id: + type: string + type: + type: string + model: + type: string + rewriteModel: + type: string + required: + - id + - type + type: object + virtualModelConfig: + properties: + id: + type: string + displayName: + type: string + modelSlug: + type: string + required: + - id + type: object + accessGroup: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + teamRoles: + items: + type: string + type: array + teamPermissions: + items: + type: string + type: array + entitlements: + items: + type: string + type: array + author: + type: string + project: + properties: + id: + type: string + name: + type: string + required: + - id + type: object + next_role: + nullable: true + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + - null + previous_role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + previousName: + type: string + previousTeamRoles: + items: + type: string + type: array + previousTeamPermissions: + items: + type: string + type: array + entitlementsAdded: + items: + type: string + type: array + entitlementsRemoved: + items: + type: string + type: array + user: + properties: + id: + type: string + username: + type: string + required: + - id + type: object + directoryType: + type: string + price: + type: number + currency: + type: string + alias: + type: string + deployment: + nullable: true + properties: + id: + type: string + name: + type: string + url: + type: string + meta: + additionalProperties: + type: string + type: object + readyState: + type: string + allowListedReadyStateReasonInternal: + type: string + enum: + - EARLY_IGNORE_STEP + - IGNORE_STEP + - NAMESPACE_PRUNED + - UNAFFECTED_PROJECT + - UNVERIFIED_COMMIT + description: A narrowed subset of the deployment's `readyStateReasonInternal` — only values in the public allowlist are permitted here. Callers should run their raw reason through `toAllowListedReadyStateReasonInternal` from `@api/events` before assigning. This keeps abuse / moderation / admin reasons out of the public activity log. + required: + - id + - meta + - name + - url + type: object + ruleCount: + type: number + deploymentUrl: + type: string + aliasId: + type: string + deploymentId: + nullable: true + type: string + oldDeploymentId: + nullable: true + type: string + redirect: + type: string + redirectStatusCode: + nullable: true + type: number + target: + nullable: true + type: string + system: + type: boolean + enum: + - false + - true + aliasUpdatedAt: + type: number + aliasCount: + type: number + oldTeam: + properties: + name: + type: string + required: + - name + type: object + newTeam: + properties: + name: + type: string + required: + - name + type: object + email: + type: string + username: + type: string + appName: + type: string + appId: + type: string + scopes: + items: + type: string + enum: + - email + - offline_access + - openid + - profile + type: array + permissions: + items: + type: string + enum: + - '*' + - manage:speed-insights + - manage:web-analytics + - read-write:ai-gateway-api-key + - read-write:ai-gateway-guardrails + - read-write:ai-gateway-private-models + - read-write:ai-gateway-rules + - read-write:ai-gateway-virtual-model-configs + - read-write:alerts + - read-write:automations + - read-write:billing + - read-write:blob + - read-write:connect + - read-write:deployment + - read-write:domain + - read-write:domain-registrar + - read-write:drains + - read-write:edge-cache + - read-write:edge-config + - read-write:firewall + - read-write:integration-configuration + - read-write:integration-resource + - read-write:kms + - read-write:project + - read-write:project-env-vars + - read-write:project-env-vars-non-production + - read-write:project-env-vars-production + - read-write:project-flags-non-production + - read-write:project-flags-production + - read-write:project-protection-bypass + - read-write:remote-cache + - read-write:sandbox + - read-write:team-members + - read-write:vcr + - read:access-group + - read:ai-gateway-guardrails + - read:ai-gateway-private-models + - read:ai-gateway-rules + - read:ai-gateway-virtual-model-configs + - read:alerts + - read:automations + - read:billing + - read:connect + - read:deployment + - read:domain + - read:event + - read:firewall + - read:integration-configuration + - read:integration-resource + - read:kms + - read:monitoring + - read:project + - read:project-env-vars-non-production + - read:project-env-vars-production + - read:project-flags + - read:remote-cache + - read:sandbox + - read:speed-insights + - read:team + - read:user + - read:vcr + - read:web-analytics + - read:webhooks + - use:ai-gateway + type: array + nextScopes: + items: + type: string + enum: + - email + - offline_access + - openid + - profile + type: array + nextPermissions: + items: + type: string + enum: + - '*' + - manage:speed-insights + - manage:web-analytics + - read-write:ai-gateway-api-key + - read-write:ai-gateway-guardrails + - read-write:ai-gateway-private-models + - read-write:ai-gateway-rules + - read-write:ai-gateway-virtual-model-configs + - read-write:alerts + - read-write:automations + - read-write:billing + - read-write:blob + - read-write:connect + - read-write:deployment + - read-write:domain + - read-write:domain-registrar + - read-write:drains + - read-write:edge-cache + - read-write:edge-config + - read-write:firewall + - read-write:integration-configuration + - read-write:integration-resource + - read-write:kms + - read-write:project + - read-write:project-env-vars + - read-write:project-env-vars-non-production + - read-write:project-env-vars-production + - read-write:project-flags-non-production + - read-write:project-flags-production + - read-write:project-protection-bypass + - read-write:remote-cache + - read-write:sandbox + - read-write:team-members + - read-write:vcr + - read:access-group + - read:ai-gateway-guardrails + - read:ai-gateway-private-models + - read:ai-gateway-rules + - read:ai-gateway-virtual-model-configs + - read:alerts + - read:automations + - read:billing + - read:connect + - read:deployment + - read:domain + - read:event + - read:firewall + - read:integration-configuration + - read:integration-resource + - read:kms + - read:monitoring + - read:project + - read:project-env-vars-non-production + - read:project-env-vars-production + - read:project-flags + - read:remote-cache + - read:sandbox + - read:speed-insights + - read:team + - read:user + - read:vcr + - read:web-analytics + - read:webhooks + - use:ai-gateway + type: array + installationId: + type: string + before: + properties: + resources: + properties: + projectIds: + properties: + type: + type: string + enum: + - list + required: + type: boolean + enum: + - true + items: + properties: + type: + type: string + enum: + - string + required: + - type + type: object + required: + - items + - required + - type + type: object + description: Specific project IDs or all projects on the team (`['*']`). + required: + - projectIds + type: object + permissions: + items: + type: string + enum: + - manage:speed-insights + - manage:web-analytics + - read-write:ai-gateway-api-key + - read-write:ai-gateway-guardrails + - read-write:ai-gateway-private-models + - read-write:ai-gateway-rules + - read-write:ai-gateway-virtual-model-configs + - read-write:alerts + - read-write:automations + - read-write:billing + - read-write:blob + - read-write:connect + - read-write:deployment + - read-write:domain + - read-write:domain-registrar + - read-write:drains + - read-write:edge-cache + - read-write:edge-config + - read-write:firewall + - read-write:integration-configuration + - read-write:integration-resource + - read-write:kms + - read-write:project + - read-write:project-env-vars + - read-write:project-env-vars-non-production + - read-write:project-env-vars-production + - read-write:project-flags-non-production + - read-write:project-flags-production + - read-write:project-protection-bypass + - read-write:remote-cache + - read-write:sandbox + - read-write:team-members + - read-write:vcr + - read:access-group + - read:ai-gateway-guardrails + - read:ai-gateway-private-models + - read:ai-gateway-rules + - read:ai-gateway-virtual-model-configs + - read:alerts + - read:automations + - read:billing + - read:connect + - read:deployment + - read:domain + - read:event + - read:firewall + - read:integration-configuration + - read:integration-resource + - read:kms + - read:monitoring + - read:project + - read:project-env-vars-non-production + - read:project-env-vars-production + - read:project-flags + - read:remote-cache + - read:sandbox + - read:speed-insights + - read:team + - read:vcr + - read:web-analytics + - read:webhooks + - use:ai-gateway + type: array + type: object + after: + properties: + resources: + properties: + projectIds: + properties: + type: + type: string + enum: + - list + required: + type: boolean + enum: + - true + items: + properties: + type: + type: string + enum: + - string + required: + - type + type: object + required: + - items + - required + - type + type: object + description: Specific project IDs or all projects on the team (`['*']`). + required: + - projectIds + type: object + permissions: + items: + type: string + enum: + - manage:speed-insights + - manage:web-analytics + - read-write:ai-gateway-api-key + - read-write:ai-gateway-guardrails + - read-write:ai-gateway-private-models + - read-write:ai-gateway-rules + - read-write:ai-gateway-virtual-model-configs + - read-write:alerts + - read-write:automations + - read-write:billing + - read-write:blob + - read-write:connect + - read-write:deployment + - read-write:domain + - read-write:domain-registrar + - read-write:drains + - read-write:edge-cache + - read-write:edge-config + - read-write:firewall + - read-write:integration-configuration + - read-write:integration-resource + - read-write:kms + - read-write:project + - read-write:project-env-vars + - read-write:project-env-vars-non-production + - read-write:project-env-vars-production + - read-write:project-flags-non-production + - read-write:project-flags-production + - read-write:project-protection-bypass + - read-write:remote-cache + - read-write:sandbox + - read-write:team-members + - read-write:vcr + - read:access-group + - read:ai-gateway-guardrails + - read:ai-gateway-private-models + - read:ai-gateway-rules + - read:ai-gateway-virtual-model-configs + - read:alerts + - read:automations + - read:billing + - read:connect + - read:deployment + - read:domain + - read:event + - read:firewall + - read:integration-configuration + - read:integration-resource + - read:kms + - read:monitoring + - read:project + - read:project-env-vars-non-production + - read:project-env-vars-production + - read:project-flags + - read:remote-cache + - read:sandbox + - read:speed-insights + - read:team + - read:vcr + - read:web-analytics + - read:webhooks + - use:ai-gateway + type: array + type: object + resources: + properties: + projectIds: + properties: + type: + type: string + enum: + - list + required: + type: boolean + enum: + - true + items: + properties: + type: + type: string + enum: + - string + required: + - type + type: object + required: + - items + - required + - type + type: object + description: Specific project IDs or all projects on the team (`['*']`). + required: + - projectIds + type: object + secretLastFourChars: + type: string + app: + properties: + id: + type: string + description: The App's ID. + name: + type: string + description: The App's name at the moment this even was published (it may have changed since then). + required: + - id + - name + type: object + description: Note that not all historical events have this field. + issuedBefore: + type: number + description: UNIX timestamp in seconds. Tokens issued before this timestamp will be revoked. Note that not all historical events have this field. + prevAttackModeEnabled: + type: boolean + enum: + - false + - true + prevAttackModeActiveUntil: + nullable: true + type: number + attackModeEnabled: + type: boolean + enum: + - false + - true + attackModeActiveUntil: + nullable: true + type: number + autoExposeSystemEnvs: + type: boolean + enum: + - false + - true + avatar: + type: string + invoiceId: + type: string + refundReason: + type: string + lineItemCount: + type: number + newInvoiceId: + type: string + settlementMethod: + type: string + enum: + - credited-paid + - credited-payment-pending + - refunded-paid + - refunded-payment-pending + paymentMethodId: + type: string + brand: + type: string + last4: + type: string + changedFields: + items: + type: string + enum: + - address + - email + - language + - name + - purchaseOrder + - tax + type: array + subscriptionId: + type: string + planSlug: + type: string + data: + properties: + planSlug: + type: string + enum: + - v0_business + - v0_teams + reason: + type: string + enum: + - non-payment + required: + - planSlug + type: object + productAliases: + items: + type: string + type: array + bulkRedirectsLimit: + type: number + prevBulkRedirectsLimit: + type: number + versionId: + type: string + cn: + type: string + cns: + items: + type: string + type: array + custom: + type: boolean + enum: + - false + - true + src: + type: string + dst: + type: string + gitOwnerName: + type: string + gitRepositoryName: + type: string + next: + properties: + enabled: + type: boolean + enum: + - false + - true + autoAddReviewers: + type: boolean + enum: + - false + - true + required: + - autoAddReviewers + - enabled + type: object + documentId: + type: string + title: + type: string + fingerprint: + type: string + count: + type: number + documents: + items: + properties: + slug: + type: string + documentId: + type: string + title: + type: string + fingerprint: + type: string + required: + - documentId + - fingerprint + - slug + - title + type: object + description: A single document included in a bulk compliance download. + type: array + configuration: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + team: + properties: + name: + type: string + id: + type: string + required: + - id + - name + type: object + buildsEnabled: + type: boolean + enum: + - false + - true + passive: + type: boolean + enum: + - false + - true + newName: + type: string + githubLogin: + type: string + host: + type: string + gitlabLogin: + type: string + gitlabEmail: + type: string + gitlabName: + type: string + zeitAccount: + type: string + zeitAccountType: + type: string + gitlabUserId: + type: number + bitbucketEmail: + type: string + bitbucketLogin: + type: string + bitbucketName: + type: string + bitbucketAccountId: + type: string + clientId: + type: string + clientUid: + type: string + clientName: + type: string + subjectType: + type: string + enum: + - app + - user + fields: + items: + type: string + type: array + environments: + items: + type: string + type: array + triggerDestinationCount: + type: number + tokenCount: + type: number + acceptedTokenCount: + type: number + importedTokenCount: + type: number + tokensDeleted: + type: number + purchasedAmount: + type: number + prevPurchasedAmount: + type: number + metricName: + type: string + suffix: + type: string + status: + type: string + hookName: + type: string + ref: + type: string + job: + properties: + deployHook: + properties: + createdAt: + type: number + id: + type: string + name: + type: string + ref: + type: string + required: + - createdAt + - id + - name + - ref + type: object + state: + type: string + required: + - deployHook + - state + type: object + checkId: + type: string + checkName: + type: string + url: + type: string + forced: + type: boolean + enum: + - false + - true + gitCredentialSource: + type: string + enum: + - external-token + plan: + type: string + type: + type: string + sha: + type: string + gitUserPlatform: + type: string + gitCommitterName: + type: string + source: + type: string + ruleName: + type: string + enum: + - deploymentSources + - gitSources + description: Which rule blocked the deploy. + ruleProvenance: + type: string + enum: + - default + - project + - team + description: Team-level or project-level rule. + deploymentName: + nullable: true + type: string + integrationId: + type: string + configurationId: + type: string + integrationSlug: + type: string + integrationName: + type: string + ownerId: + type: string + projectIds: + items: + type: string + type: array + value: + type: string + domain: + type: string + mxPriority: + type: number + initiator: + type: string + enum: + - system + - user + previousValue: + type: string + zone: + type: boolean + enum: + - false + - true + cdnEnabled: + type: boolean + enum: + - false + - true + ownerName: + type: string + domainId: + type: string + previousServiceType: + type: string + serviceType: + type: string + nameservers: + items: + type: string + type: array + customNameservers: + nullable: true + items: + type: string + type: array + prevCustomNameservers: + nullable: true + items: + type: string + type: array + echMode: + type: string + enum: + - auto + - disabled + - enabled + previousEchMode: + type: string + enum: + - auto + - disabled + - enabled + previousZone: + type: boolean + enum: + - false + - true + fromId: + nullable: true + type: string + fromName: + nullable: true + type: string + destinationId: + nullable: true + type: string + destinationName: + nullable: true + type: string + renew: + type: boolean + enum: + - false + - true + drainUrl: + nullable: true + type: string + drainName: + nullable: true + type: string + srcImages: + items: + type: string + type: array + tags: + items: + type: string + type: array + path: + type: string + edgeConfigId: + type: string + edgeConfigSlug: + type: string + edgeConfigDigest: + type: string + edgeConfigBackupVersionId: + type: string + edgeConfigSchema: + type: string + description: (opaque JSON object) + edgeConfig: + properties: + id: + type: string + slug: + type: string + required: + - id + - slug + type: object + fromAccount: + properties: + id: + type: string + type: + type: string + enum: + - team + - user + slug: + type: string + username: + type: string + required: + - id + - type + type: object + toAccount: + properties: + id: + type: string + type: + type: string + enum: + - team + - user + slug: + type: string + username: + type: string + required: + - id + - type + type: object + edgeConfigTokenId: + type: string + edgeConfigTokenIds: + items: + type: string + type: array + description: ids of deleted tokens + previousRule: + properties: + email: + type: string + required: + - email + type: object + nextRule: + properties: + email: + type: string + required: + - email + type: object + deletedUser: + properties: + username: + type: string + email: + type: string + required: + - email + - username + type: object + deletedUid: + type: string + emailDomain: + type: string + key: + type: string + customEnvironmentSlugs: + items: + type: string + type: array + gitBranch: + type: string + ipAddress: + type: string + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + projectNames: + items: + type: string + type: array + envId: + type: string + envKey: + type: string + organizationId: + type: string + repository: + type: string + oldEnvVar: + properties: + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + key: + type: string + description: The name of the Shared Env Var. + example: my-api-key + ownerId: + nullable: true + type: string + description: The unique identifier of the owner (team) the Shared Env Var was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + id: + type: string + description: The unique identifier of the Shared Env Var. + example: env_XCG7t7AIHuO2SBA8667zNUiM + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + value: + type: string + description: The value of the Shared Env Var. + projectId: + items: + type: string + type: array + description: The unique identifiers of the projects which the Shared Env Var is linked to. + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrasEFg + type: + type: string + enum: + - encrypted + - plain + - sensitive + - system + description: The type of this cosmos doc instance, if blank, assume secret. + example: encrypted + target: + items: + type: string + enum: + - development + - preview + - production + example: production + description: environments this env variable targets + type: array + description: environments this env variable targets + example: production + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + type: object + newEnvVar: + properties: + created: + type: string + format: date-time + description: The date when the Shared Env Var was created. + example: '2021-02-10T13:11:49.180Z' + key: + type: string + description: The name of the Shared Env Var. + example: my-api-key + ownerId: + nullable: true + type: string + description: The unique identifier of the owner (team) the Shared Env Var was created for. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + id: + type: string + description: The unique identifier of the Shared Env Var. + example: env_XCG7t7AIHuO2SBA8667zNUiM + createdBy: + nullable: true + type: string + description: The unique identifier of the user who created the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + deletedBy: + nullable: true + type: string + description: The unique identifier of the user who deleted the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + updatedBy: + nullable: true + type: string + description: The unique identifier of the user who last updated the Shared Env Var. + example: 2qDDuGFTWXBLDNnqZfWPDp1A + createdAt: + type: number + description: Timestamp for when the Shared Env Var was created. + example: 1609492210000 + deletedAt: + type: number + description: Timestamp for when the Shared Env Var was (soft) deleted. + example: 1609492210000 + updatedAt: + type: number + description: Timestamp for when the Shared Env Var was last updated. + example: 1609492210000 + value: + type: string + description: The value of the Shared Env Var. + projectId: + items: + type: string + type: array + description: The unique identifiers of the projects which the Shared Env Var is linked to. + example: + - prj_2WjyKQmM8ZnGcJsPWMrHRHrE + - prj_2WjyKQmM8ZnGcJsPWMrasEFg + type: + type: string + enum: + - encrypted + - plain + - sensitive + - system + description: The type of this cosmos doc instance, if blank, assume secret. + example: encrypted + target: + items: + type: string + enum: + - development + - preview + - production + example: production + description: environments this env variable targets + type: array + description: environments this env variable targets + example: production + applyToAllCustomEnvironments: + type: boolean + enum: + - false + - true + description: whether or not this env varible applies to custom environments + customEnvironmentIds: + items: + type: string + type: array + description: The custom environment IDs that this Shared Env Var is scoped to. + decrypted: + type: boolean + enum: + - false + - true + description: whether or not this env variable is decrypted + comment: + type: string + description: A user provided comment that describes what this Shared Env Var is for. + lastEditedByDisplayName: + type: string + description: The last editor full name or username. + type: object + updateDiff: + properties: + id: + type: string + key: + type: string + newKey: + type: string + oldTarget: + items: + type: string + enum: + - development + - preview + - production + type: array + newTarget: + items: + type: string + enum: + - development + - preview + - production + type: array + oldType: + type: string + newType: + type: string + oldProjects: + items: + properties: + projectName: + type: string + projectId: + type: string + required: + - projectId + type: object + type: array + newProjects: + items: + properties: + projectName: + type: string + projectId: + type: string + required: + - projectId + type: object + type: array + oldCustomEnvironmentIds: + items: + type: string + type: array + newCustomEnvironmentIds: + items: + type: string + type: array + changedValue: + type: boolean + enum: + - false + - true + required: + - changedValue + - id + type: object + scope: + type: string + expiresAt: + nullable: true + type: number + configVersion: + oneOf: + - type: string + - type: number + configChangeCount: + type: number + configChanges: + items: + type: string + description: (opaque JSON object) + type: array + restore: + type: boolean + enum: + - false + - true + rulesetName: + type: string + ruleGroups: + additionalProperties: + properties: + active: + type: boolean + enum: + - false + - true + action: + type: string + enum: + - challenge + - deny + - log + required: + - active + type: object + type: object + active: + type: boolean + enum: + - false + - true + previousOwnerId: + type: string + newOwnerId: + type: string + actorLogin: + nullable: true + type: string + description: Display name only. Logins are mutable; join on `actorAccountId`. + actorAccountId: + nullable: true + type: string + description: Stable account id on `provider`. + usedAppToken: + type: boolean + enum: + - false + - true + sourceRepo: + nullable: true + type: string + description: Source repository, "owner/name". Null when the pushed content was generated in-request (push-files-to-repo) rather than copied from a repository. + sourceCommitSha: + nullable: true + type: string + destinationRepo: + type: string + description: '"owner/name", or the raw request value if blocked before it resolved.' + destinationBranch: + nullable: true + type: string + description: Branch actually pushed to, or the requested one if blocked. + resultCommitSha: + nullable: true + type: string + outcome: + type: string + enum: + - failure + - success + failureStage: + type: string + enum: + - authorization + - push + - unexpected + - unknown + - validation + description: Mirrors `PushFailureStage` in `@api/git-push-repo`. + failureCode: + type: string + description: Sanitized code, never a raw error message. + fromDeploymentId: + type: string + toDeploymentId: + type: string + newOwner: + nullable: true + properties: + abuse: + properties: + blockHistory: + items: + properties: + action: + type: string + enum: + - blocked + - hard-blocked + - soft-blocked + - unblocked + createdAt: + type: number + caseId: + type: string + reason: + type: string + actor: + type: string + statusCode: + type: number + comment: + type: string + ineligibleForAppeal: + type: boolean + enum: + - false + - true + required: + - action + - createdAt + - reason + type: object + description: Since June 2023 + type: array + description: Since June 2023 + gitAuthHistory: + items: + type: string + type: array + description: 'Since March 2022. Helps abuse checks by tracking git auths. Format: `::`' + history: + items: + properties: + scanner: + type: string + reason: + type: string + by: + type: string + byId: + type: string + at: + type: number + required: + - at + - by + - byId + - reason + - scanner + type: object + description: (scanner history). Since November 2021. First element is newest. + type: array + description: (scanner history). Since November 2021. First element is newest. + gitLineageBlocks: + type: number + description: Since September 2023. How often did this owner trigger an actual git lineage deploy block? + gitLineageBlocksDry: + type: number + description: Since September 2023. How often did this owner trigger a git lineage deploy block dry run? + scanner: + type: string + description: Since November 2021. Guides the abuse scanner in build container. + scheduledUnblockAt: + type: string + description: 'Since December 2025. UTC timestamp string of when an auto-unblock is scheduled. Format: "Wed, 03 Dec 2025 20:32:13 GMT"' + scheduledBlock: + properties: + executeAt: + type: number + description: Unix ms timestamp of the scheduled EventBridge execution. + reason: + type: string + description: Violation reason (string value of the `Violation` enum). + source: + type: string + description: What triggered the scheduled block (string value of `TeamBlockSource`). + createdAt: + type: number + description: Unix ms timestamp of when the marker was written. + caseId: + type: string + description: Absent from the automated evaluation path, which has no case. + scheduleName: + type: string + description: EventBridge schedule name, persisted so the pending event can be cancelled. + required: + - createdAt + - executeAt + - reason + - source + type: object + description: Since June 2026. A hard block that is scheduled (the delay varies by source; see `executeAt`) but not yet executed. Powers admin visibility, scheduler dedup, and cancellation. Cleared on execution or when the team is unblocked/reviewed before `executeAt`; the executor treats its absence as "block cancelled". + updatedAt: + type: number + description: Since November 2021 + creationUserAgent: + type: string + creationIp: + type: string + removedPhoneNumbers: + type: string + required: + - updatedAt + type: object + acceptanceState: + type: string + acceptedAt: + type: number + avatar: + type: string + billing: + type: object + properties: + plan: + type: string + enum: + - enterprise + - hobby + - pro + required: + - plan + blocked: + nullable: true + type: number + blockReason: + type: string + created: + type: number + createdAt: + type: number + credentials: + items: + oneOf: + - properties: + type: + type: string + enum: + - apple + - bitbucket + - chatgpt + - github-oauth + - github-oauth-limited + - gitlab + - google + - vercel + id: + type: string + required: + - id + - type + type: object + - properties: + type: + type: string + enum: + - github-oauth-custom-host + host: + type: string + id: + type: string + required: + - host + - id + - type + type: object + type: array + customerId: + nullable: true + type: string + orbCustomerId: + nullable: true + type: string + dataCache: + properties: + excessBillingEnabled: + type: boolean + enum: + - false + - true + type: object + deletedAt: + nullable: true + type: number + deploymentSecret: + type: string + dismissedTeams: + items: + type: string + type: array + dismissedToasts: + items: + properties: + name: + type: string + dismissals: + items: + properties: + scopeId: + type: string + createdAt: + type: number + required: + - createdAt + - scopeId + type: object + type: array + required: + - dismissals + - name + type: object + type: array + favoriteProjectsAndSpaces: + items: + properties: + teamId: + type: string + projectId: + type: string + required: + - projectId + - teamId + type: object + type: array + email: + type: string + id: + type: string + importFlowGitNamespace: + nullable: true + oneOf: + - type: string + - type: number + importFlowGitNamespaceId: + nullable: true + oneOf: + - type: string + - type: number + importFlowGitProvider: + nullable: true + type: string + enum: + - bitbucket + - cursor-origin + - github + - github-custom-host + - github-limited + - gitlab + - vercel + - null + preferredScopesAndGitNamespaces: + items: + properties: + scopeId: + type: string + gitNamespaceId: + nullable: true + oneOf: + - type: string + - type: number + required: + - gitNamespaceId + - scopeId + type: object + type: array + isDomainReseller: + type: boolean + enum: + - false + - true + isZeitPub: + type: boolean + enum: + - false + - true + testAccountExpiresAt: + type: number + maxActiveSlots: + type: number + name: + type: string + phoneNumber: + type: string + platformVersion: + nullable: true + type: number + preventAutoBlocking: + oneOf: + - type: number + - type: boolean + enum: + - false + - true + projectDomainsLimit: + type: number + description: Overrides our DEFAULT project domains limit per account or per project. + projectCardWidgetPreferences: + items: + properties: + projectId: + type: string + widget: + type: string + enum: + - analytics-online + - analytics-page-views + - analytics-visitors + - firewall-allowed + - firewall-denied + - observability-alert + - observability-edge-requests + - observability-error-rate + - observability-function-invocations + - shortcut + - speed-insights-cls + - speed-insights-lcp + - speed-insights-res + config: + properties: + url: + type: string + required: + - url + type: object + required: + - projectId + - widget + type: object + type: array + remoteCaching: + properties: + enabled: + type: boolean + enum: + - false + - true + type: object + description: Represents configuration for remote caching + removedAliasesAt: + type: number + removedBillingSubscriptionAt: + type: number + removedConfigurationsAt: + type: number + removedDeploymentsAt: + type: number + removedDomiansAt: + type: number + removedEventsAt: + type: number + removedProjectsAt: + type: number + removedSecretsAt: + type: number + removedSharedEnvVarsAt: + type: number + removedEdgeConfigsAt: + type: number + resourceConfig: + properties: + concurrentBuilds: + type: number + nodeType: + type: string + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + buildEntitlements: + properties: + enhancedBuilds: + type: boolean + enum: + - false + - true + type: object + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + type: object + awsAccountType: + type: string + awsAccountIds: + items: + type: string + type: array + cfZoneName: + type: string + imageOptimizationType: + type: string + edgeConfigs: + type: number + edgeConfigSize: + type: number + edgeFunctionMaxSizeBytes: + type: number + edgeFunctionExecutionTimeoutMs: + type: number + serverlessFunctionMaxDuration: + type: number + serverlessFunctionMaxMemorySize: + type: number + kvDatabases: + type: number + postgresDatabases: + type: number + blobStores: + type: number + integrationStores: + type: number + cronJobsPerProject: + type: number + microfrontendGroupsPerTeam: + type: number + microfrontendProjectsPerGroup: + type: number + flagsExplorerOverridesThreshold: + type: number + flagsExplorerUnlimitedOverrides: + type: boolean + enum: + - false + - true + customEnvironmentsPerProject: + type: number + security: + properties: + rateLimit: + type: number + customRules: + type: number + ipBlocks: + type: number + ipBypass: + type: number + type: object + bulkRedirectsFreeLimitOverride: + type: number + buildMachine: + properties: + default: + type: string + enum: + - basic + - elastic + - enhanced + - standard + - turbo + description: Default build machine type for new deployments. This must be used in combination with the buildEntitlements field. It is respected over Vercel's notion of the default build machine, and was originally implemented to allow Teams to "downgrade". - Hobby customers cannot set this, because they only have access to one machine type - Pro customers get Turbo machines by default, so this field is effectively for downgrading - ENT customers cannot set this (yet), because their default is based on their contract. https://linear.app/vercel/project/self-serve-build-machines-for-enterprise-customers-0cbc357e26d2/overview + type: object + description: Build machine configuration recorded on a team or user `resourceConfig`. This is deliberately separate from the build machine config recorded on a deployment (`DeploymentBuildMachine` in `@api/deployments-types`). A team/user only expresses its default machine for new deployments; the per-build fields (`purchaseType`, `defaultPurchaseType`, `machineSelectionType`, `cores`, `memory`) are recorded on the deployment record when a build actually runs and never belong on a team/user document. + type: object + resourceLimits: + additionalProperties: + oneOf: + - properties: + max: + type: number + duration: + type: number + required: + - duration + - max + type: object + description: 'Override for a token-bucket rate limit: a fixed quantity per duration.' + - properties: + minRate: + type: number + maxRate: + type: number + stepPerMinute: + type: number + type: object + description: 'Overrides for a ramp (slew-rate) admission limit, which bounds how quickly the allowed rate may change over time rather than capping a fixed quantity. All three are expressed in units per minute. - `minRate`: the floor the allowed rate never drops below. Also the cold-start rate a new or idle consumer begins at. - `maxRate`: the ceiling the allowed rate may climb to. - `stepPerMinute`: how much the allowed rate moves per minute of activity — the slope at which it ramps up toward `maxRate` (and, where supported, decays back down toward `minRate`).' + type: object + description: User | Team resource limits. Each entry overrides either a token-bucket rate limit or a ramp admission limit, never both. + activeDashboardViews: + items: + properties: + scopeId: + type: string + viewPreference: + nullable: true + type: string + enum: + - cards + - list + - null + favoritesViewPreference: + nullable: true + type: string + enum: + - closed + - open + - null + recentsViewPreference: + nullable: true + type: string + enum: + - closed + - open + - null + required: + - scopeId + type: object + type: array + secondaryEmails: + items: + properties: + email: + type: string + verified: + type: boolean + enum: + - false + - true + required: + - email + - verified + type: object + type: array + emailDomains: + items: + type: string + type: array + emailNotifications: + properties: + rules: + additionalProperties: + properties: + email: + type: string + required: + - email + type: object + type: object + type: object + siftScore: + type: number + siftScores: + additionalProperties: + properties: + score: + type: number + reasons: + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + required: + - reasons + - score + type: object + type: object + siftRoute: + properties: + name: + type: string + enum: + - string + required: + - name + type: object + sfdcId: + type: string + softBlock: + nullable: true + properties: + blockedAt: + type: number + reason: + type: string + enum: + - BLOCKED_FOR_PLATFORM_ABUSE + - DOMAIN_OWNER_DELETION_REQUEST + - ENTERPRISE_TRIAL_ENDED + - ENTERPRISE_UNPAID_INVOICE + - EXPOSURE_CAP_EXCEEDED + - FAIR_USE_LIMITS_EXCEEDED + - SUBSCRIPTION_CANCELED + - SUBSCRIPTION_EXPIRED + - UNPAID_INVOICE + blockedDueToOverageType: + type: string + enum: + - analyticsUsage + - artifacts + - bandwidth + - blobDataTransfer + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + - blobTotalSimpleRequests + - connectDataTransfer + - dataCacheRead + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - edgeRequest + - edgeRequestAdditionalCpuDuration + - elasticConcurrencyBuildSlots + - fastDataTransfer + - fastOriginTransfer + - fluidCpuDuration + - fluidDuration + - functionDuration + - functionInvocation + - imageOptimizationCacheRead + - imageOptimizationCacheWrite + - imageOptimizationTransformation + - logDrainsVolume + - monitoringMetric + - observabilityEvent + - onDemandConcurrencyMinutes + - runtimeCacheRead + - runtimeCacheWrite + - serverlessFunctionExecution + - sourceImages + - wafOwaspExcessBytes + - wafOwaspRequests + - wafRateLimitRequest + - webAnalyticsEvent + unpauseAt: + type: number + description: Since September 2026. Set only by `billing-usage-alerts` for usage plans with a `blockDurationMs`; its presence marks a pause that expires on its own. required: - - price - - quantity - - hidden + - blockedAt + - reason + type: object + stagingPrefix: + type: string + sysToken: + type: string + teams: + items: + properties: + teamId: + type: string + createdAt: + type: number + role: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + confirmed: + type: boolean + enum: + - true + confirmedAt: + type: number + accessRequestedAt: + type: number + teamRoles: + items: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + type: array + teamPermissions: + items: + type: string + enum: + - AiGatewayApiKeyOwnedBySelf + - AiGatewayBudgetManager + - AiGatewayCredits + - AiGatewaySettings + - AiGatewayTranscriptsManager + - AiGatewayTranscriptsViewer + - ConnectorManager + - CreateProject + - EnvVariableManager + - EnvironmentManager + - FullProductionDeployment + - IntegrationManager + - OrgAdmin + - OrgViewer + - UsageViewer + - V0Builder + - V0Chatter + - V0Viewer + - WorkflowDecryptor + type: array + created: + type: number + joinedFrom: + properties: + origin: + type: string + enum: + - account-update + - bitbucket + - dsync + - feedback + - github + - gitlab + - import + - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade + - organization-teams + - saml + - teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + required: + - confirmed + - confirmedAt + - created + - createdAt + - role + - teamId + type: object + type: array + description: A helper that allows to describe a relationship attribute. It receives the shape of a relationship plus the foreignKey name to make it mandatory in the resulting type. + trialTeamIds: + items: + type: string + type: array + description: Introduced 2022-04-12 An array of teamIds (for trial teams created after 2022-04-01), created by the user in question. Used in determining whether the team has a trial available in utils/api-teams/user-has-trial-available.ts. + maxTrials: + type: number + description: Introduced 2022-04-19 Number of maximum trials to allocate to a user. When undefined, defaults to MAX_TRIALS in utils/api-teams/user-has-trial-available.ts. This is set to trialTeamIds + 1 by services/api-backoffice/src/handlers/add-additional-trial.ts. + trialTeamId: + type: string + description: Deprecated on 2022-04-12 in favor of trialTeamIds and using utils/api-teams/user-has-trial-available.ts. + type: + type: string + enum: + - user + usageAlerts: + nullable: true + properties: + warningAt: + nullable: true + type: number + blockingAt: + nullable: true + type: number + type: object + description: Contains the timestamps when a user was notified about their usage + overageUsageAlerts: + properties: + analyticsUsage: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + artifacts: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + bandwidth: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + blobTotalAdvancedRequests: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + blobTotalAvgSizeInBytes: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + blobTotalGetResponseObjectSizeInBytes: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + blobTotalSimpleRequests: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + connectDataTransfer: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + dataCacheRead: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + dataCacheWrite: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + edgeConfigRead: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + edgeConfigWrite: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + edgeFunctionExecutionUnits: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + edgeMiddlewareInvocations: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + edgeRequestAdditionalCpuDuration: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + edgeRequest: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + elasticConcurrencyBuildSlots: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + fastDataTransfer: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + fastOriginTransfer: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + fluidCpuDuration: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + fluidDuration: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + functionDuration: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + functionInvocation: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + imageOptimizationCacheRead: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + imageOptimizationCacheWrite: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + imageOptimizationTransformation: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + logDrainsVolume: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + monitoringMetric: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + blobDataTransfer: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + observabilityEvent: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + onDemandConcurrencyMinutes: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + runtimeCacheRead: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + runtimeCacheWrite: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + serverlessFunctionExecution: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + sourceImages: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + wafOwaspExcessBytes: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + wafOwaspRequests: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + wafRateLimitRequest: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object + webAnalyticsEvent: + properties: + currentThreshold: + type: number + warningAt: + nullable: true + type: number + blockedAt: + nullable: true + type: number + blockGracePeriodStartedAt: + nullable: true + type: number + required: + - currentThreshold + type: object type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - pro: + overageMetadata: properties: - tier: + firstTimeOnDemandNotificationSentAt: type: number - price: + description: Tracks if the first time on-demand overage email has been sent. + dailyOverageSummaryEmailSentAt: type: number - quantity: + description: Tracks the last time we sent a daily summary email. + weeklyOverageSummaryEmailSentAt: type: number - name: - type: string - hidden: - type: boolean - createdAt: + description: Tracks the last time we sent a weekly summary email. + overageSummaryExpiresAt: type: number - disabledAt: - nullable: true + description: Tracks when the overage summary email will stop auto-sending. We currently lock the user into email for a month after the last on-demand usage. + increasedOnDemandEmailSentAt: + type: number + description: Tracks the last time we sent a increased on-demand email. + increasedOnDemandEmailAttemptedAt: + type: number + description: Tracks the last time we attempted to send an increased on-demand email. This check is to limit the number of attempts per day. + type: object + description: Contains the timestamps for usage summary emails. + speedInsightsFreeUsageAlert: + properties: + currentThreshold: type: number - frequency: + description: Highest allocation percentage threshold notified (e.g. 75 or 100). + notifiedAt: + type: number + description: When the notification for `currentThreshold` was sent. + required: + - currentThreshold + - notifiedAt + type: object + description: Tracks notifications sent for the team-wide Speed Insights free allocation. The allocation is measured over a rolling window (not a billing period), so deduplication is time-based rather than reset at period start. + username: + type: string + updatedAt: + type: number + enablePreviewFeedback: + type: string + enum: + - default + - default-force + - 'off' + - off-force + - 'on' + - on-force + description: Whether the Vercel Toolbar is enabled for preview deployments. + featureBlocks: + properties: + webAnalytics: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + graceEmailSentAt: type: number - enum: - - 1 - - 2 - - 3 - - 6 - - 12 required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - enterprise: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + monitoring: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + - limits_exceeded + blockType: type: string enum: - - month - intervalCount: + - hard + - soft + required: + - blockReason + - blockType + - updatedAt + type: object + description: A soft block indicates a temporary pause in data collection (ex limit exceeded for the current cycle) A hard block indicates a stoppage in data collection that requires manual intervention (ex upgrading a pro trial) + observabilityPlus: + properties: + updatedAt: + type: number + blockedFrom: type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + - limits_exceeded + blockType: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - hard + - soft required: - - interval - - intervalCount + - blockReason + - blockType + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - analytics: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + dataCache: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + imageOptimizationTransformation: + properties: + updatedAt: type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - admin_override + - hard_blocked + - limits_exceeded required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - monitoring: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + sourceImages: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + blob: + oneOf: + - properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - limits_exceeded + overageReason: + type: string + enum: + - analyticsUsage + - artifacts + - bandwidth + - blobDataTransfer + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + - blobTotalSimpleRequests + - connectDataTransfer + - dataCacheRead + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - edgeRequest + - edgeRequestAdditionalCpuDuration + - elasticConcurrencyBuildSlots + - fastDataTransfer + - fastOriginTransfer + - fluidCpuDuration + - fluidDuration + - functionDuration + - functionInvocation + - imageOptimizationCacheRead + - imageOptimizationCacheWrite + - imageOptimizationTransformation + - logDrainsVolume + - monitoringMetric + - observabilityEvent + - onDemandConcurrencyMinutes + - runtimeCacheRead + - runtimeCacheWrite + - serverlessFunctionExecution + - sourceImages + - wafOwaspExcessBytes + - wafOwaspRequests + - wafRateLimitRequest + - webAnalyticsEvent + required: + - blockReason + - overageReason + - updatedAt + type: object + - properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + required: + - blockReason + - updatedAt + type: object + postgres: + oneOf: + - properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - limits_exceeded + overageReason: + type: string + enum: + - analyticsUsage + - artifacts + - bandwidth + - blobDataTransfer + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + - blobTotalSimpleRequests + - connectDataTransfer + - dataCacheRead + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - edgeRequest + - edgeRequestAdditionalCpuDuration + - elasticConcurrencyBuildSlots + - fastDataTransfer + - fastOriginTransfer + - fluidCpuDuration + - fluidDuration + - functionDuration + - functionInvocation + - imageOptimizationCacheRead + - imageOptimizationCacheWrite + - imageOptimizationTransformation + - logDrainsVolume + - monitoringMetric + - observabilityEvent + - onDemandConcurrencyMinutes + - runtimeCacheRead + - runtimeCacheWrite + - serverlessFunctionExecution + - sourceImages + - wafOwaspExcessBytes + - wafOwaspRequests + - wafRateLimitRequest + - webAnalyticsEvent + required: + - blockReason + - overageReason + - updatedAt + type: object + - properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + required: + - blockReason + - updatedAt + type: object + redis: + oneOf: + - properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - limits_exceeded + overageReason: + type: string + enum: + - analyticsUsage + - artifacts + - bandwidth + - blobDataTransfer + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + - blobTotalSimpleRequests + - connectDataTransfer + - dataCacheRead + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - edgeRequest + - edgeRequestAdditionalCpuDuration + - elasticConcurrencyBuildSlots + - fastDataTransfer + - fastOriginTransfer + - fluidCpuDuration + - fluidDuration + - functionDuration + - functionInvocation + - imageOptimizationCacheRead + - imageOptimizationCacheWrite + - imageOptimizationTransformation + - logDrainsVolume + - monitoringMetric + - observabilityEvent + - onDemandConcurrencyMinutes + - runtimeCacheRead + - runtimeCacheWrite + - serverlessFunctionExecution + - sourceImages + - wafOwaspExcessBytes + - wafOwaspRequests + - wafRateLimitRequest + - webAnalyticsEvent + required: + - blockReason + - overageReason + - updatedAt + type: object + - properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + required: + - blockReason + - updatedAt + type: object + microfrontendsRequest: + properties: + updatedAt: + type: number + blockedFrom: type: number + blockedUntil: + type: number + blockReason: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - admin_override + - hard_blocked + - limits_exceeded required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - passwordProtection: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + workflowStorageWrite: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + workflowEvents: + properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: type: number + blockReason: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - admin_override + - hard_blocked + - limits_exceeded required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - previewDeploymentSuffix: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + connexForwardTriggers: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + connexTokenRequests: + properties: + updatedAt: + type: number + blockedFrom: type: number + blockedUntil: + type: number + blockReason: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - admin_override + - hard_blocked + - limits_exceeded required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - saml: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + kmsOperations: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + tracing: + properties: + updatedAt: type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - admin_override + - hard_blocked + - limits_exceeded required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - teamSeats: - properties: - tier: - type: number - price: - type: number - quantity: - type: number - name: - type: string - hidden: - type: boolean - createdAt: - type: number - disabledAt: - nullable: true - type: number - frequency: + sandboxStorage: properties: - interval: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: type: string enum: - - month - intervalCount: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + vcr: + properties: + updatedAt: + type: number + blockedFrom: type: number + blockedUntil: + type: number + blockReason: + type: string enum: - - 1 - - 2 - - 3 - - 6 - - 12 + - admin_override + - hard_blocked + - limits_exceeded required: - - interval - - intervalCount + - blockReason + - updatedAt type: object - maxQuantity: - type: number - required: - - price - - quantity - - hidden - type: object - description: 'Will be used to create an invoice item. The price must be in cents: 2000 for $20.' - analyticsUsage: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - artifacts: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - bandwidth: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - cronJobInvocation: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - dataCacheRead: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - dataCacheRevalidation: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - dataCacheWrite: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeConfigRead: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeConfigWrite: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeFunctionExecutionUnits: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - edgeMiddlewareInvocations: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number - required: - - price - - batch - - threshold - - hidden + speedInsightsFree: + properties: + updatedAt: + type: number + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + - limits_exceeded + required: + - blockReason + - updatedAt + type: object + description: Pauses Speed Insights free data-point ingestion when the team-wide free allocation is exhausted. The block lasts at least 14 days and is extended while rolling usage stays above half of the allocation. type: object - monitoringMetric: + description: Information about which features are blocked for a user. Blocks can be either soft (the user can still access the feature, but with a warning, e.g. prompting an upgrade) or hard (the user cannot access the feature at all). + defaultTeamId: + type: string + version: + type: string + enum: + - northstar + isMFAEnforced: + type: boolean + enum: + - false + - true + description: Whether MFA is enforced for this user. Set to true when the user has a + northstarMigration: properties: - tier: + teamId: + type: string + description: The ID of the team we created for this user. + projects: type: number - price: + description: The number of projects migrated for this user. + stores: type: number - batch: + description: The number of stores migrated for this user. + integrationConfigurations: type: number - threshold: + description: The number of integration configurations migrated for this user. + integrationClients: type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true + description: The number of integration clients migrated for this user. + startTime: type: number - enabledAt: - nullable: true + description: The migration start time timestamp for this user. + endTime: type: number + description: The migration end time timestamp for this user. required: - - price - - batch - - threshold - - hidden + - endTime + - integrationClients + - integrationConfigurations + - projects + - startTime + - stores + - teamId type: object - postgresComputeTime: + description: An archive of information about the Northstar migration, derived from the old (deprecated) property, `northstarMigrationEvents`. + opportunityId: + type: string + description: The salesforce opportunity ID that this user is linked to. This is used to automatically associate a team of the user's choosing with the opportunity. + mfaConfiguration: properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: + enabled: type: boolean - disabledAt: - nullable: true - type: number + enum: + - false + - true enabledAt: - nullable: true type: number + recoveryCodes: + items: + type: string + type: array + totp: + properties: + secret: + type: string + createdAt: + type: number + required: + - createdAt + - secret + type: object + history: + items: + properties: + action: + type: string + enum: + - disabled + - enabled + description: The action that occurred + timestamp: + nullable: true + type: number + description: Unix timestamp (milliseconds) when the change occurred. May be null for events that occurred before history tracking was implemented. + method: + type: string + enum: + - admin_removal + - passkey + - self_serve_recovery + - totp + - unknown + - user_disabled + description: 'Method used for the state change - ''totp'': User set up TOTP authenticator - ''passkey'': User registered a passkey - ''user_disabled'': User disabled their own MFA - ''admin_removal'': Admin removed MFA via backoffice - ''self_serve_recovery'': User disabled their own MFA through the self-serve MFA disable recovery flow (a "Locked Out User" with only a passkey) - ''unknown'': Method unknown (for pre-tracking events)' + actorId: + type: string + description: 'ID of the actor who made the change - For user actions: the user''s own ID - For admin actions: the admin''s user ID' + actorType: + type: string + enum: + - admin + - user + description: Type of actor + reason: + type: string + description: 'Optional: Additional context or reason e.g., "Account recovery request - ticket #12345"' + required: + - action + - actorId + - actorType + - method + - timestamp + type: object + description: History of MFA state changes (enabled/disabled events). Most recent events first. + type: array + description: History of MFA state changes (enabled/disabled events). Most recent events first. required: - - price - - batch - - threshold - - hidden + - enabled + - recoveryCodes type: object - postgresDatabase: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: + description: MFA configuration. When enabled, the user will be required to provide a second factor of authentication when logging in. + isEnterpriseManaged: + type: boolean + enum: + - false + - true + description: Indicates that the underlying user entity is a managed user for the enterprise it's associated with The intention is that this field is only set to true for users that are provisioned by the enterprise which means that the domain associated with the user's email is the same domain associated with the team Allowing us to query information about the user's team at login time through the domain verification service + required: + - billing + - blocked + - createdAt + - deploymentSecret + - email + - id + - platformVersion + - stagingPrefix + - sysToken + - type + - updatedAt + - username + - version + type: object + confirmedScopes: + items: + type: string + type: array + integration: + properties: + id: + type: string + slug: + type: string + name: + type: string + configurationId: + type: string + required: + - configurationId + - id + - name + - slug + type: object + destinationTeamId: + type: string + destinationTeamName: + type: string + originTeamId: + type: string + originTeamName: + type: string + configurations: + items: + properties: + integrationId: + type: string + configurationId: + type: string + integrationSlug: + type: string + integrationName: + type: string + required: + - configurationId + - integrationId + - integrationSlug + type: object + type: array + billingPlanId: + type: string + billingPlanName: + type: string + integrationProductSlug: + type: string + databaseName: + type: string + queryType: + type: string + enum: + - data-edit + - data-view + - schema + - user + readonly: + type: boolean + enum: + - false + - true + rolledBack: + type: boolean + enum: + - false + - true + failedQueryIndex: + nullable: true + type: number + errorCode: + nullable: true + type: string + queryCount: + type: number + queries: + items: + properties: + command: + nullable: true + type: string + rowCount: + type: number + tables: + items: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + type: array + primaryKey: + items: + properties: + column: + type: string + value: + nullable: true + type: string + required: + - column + - value + type: object + type: array + required: + - command + type: object + type: array + requestKind: + type: string + enum: + - raw_commands + commands: + items: + properties: + command: + type: string + errorCode: + type: string + required: + - command + type: object + type: array + errorIndex: + type: number + pattern: + type: string + keys: + items: + type: string + type: array + issuerId: + type: string + issuerName: + type: string + algorithm: + type: string + origin: + type: string + managedBy: + type: string + keyId: + type: string + kind: + type: string + policyKey: + type: string + logDrainUrl: + nullable: true + type: string + login: + type: string + userAgent: + type: string + geolocation: + nullable: true + properties: + city: + properties: + names: + properties: + en: + type: string + required: + - en + type: object required: - - price - - batch - - threshold - - hidden + - names type: object - postgresDataStorage: + country: properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + names: + properties: + en: + type: string + required: + - en + type: object required: - - price - - batch - - threshold - - hidden + - names type: object - postgresDataTransfer: + most_specific_subdivision: properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: - type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + names: + properties: + en: + type: string + required: + - en + type: object required: - - price - - batch - - threshold - - hidden + - names type: object - postgresWrittenData: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: + regionName: + type: string + required: + - country + type: object + env: + type: string + os: + type: string + loginSessionId: + type: string + description: Browser login correlation ID. This is not an authentication credential. + ssoType: + type: string + factors: + oneOf: + - items: + oneOf: + - properties: + origin: + type: string + enum: + - apple + - bitbucket + - chatgpt + - email + - emu-recovery + - github + - gitlab + - google + - invite + - magic-link + - otp + - otp-link + - saml + - webauthn + username: + type: string + teamId: + type: string + legacy: + type: boolean + enum: + - false + - true + ssoType: + type: string + required: + - origin + type: object + maxItems: 1 + minItems: 1 + type: array + - items: + oneOf: + - properties: + origin: + type: string + enum: + - apple + - bitbucket + - chatgpt + - email + - emu-recovery + - github + - gitlab + - google + - invite + - magic-link + - otp + - otp-link + - saml + - webauthn + username: + type: string + teamId: + type: string + legacy: + type: boolean + enum: + - false + - true + ssoType: + type: string + required: + - origin + type: object + - properties: + origin: + type: string + enum: + - recovery-code + - totp + - webauthn + required: + - origin + type: object + maxItems: 2 + minItems: 2 + type: array + viaOTP: + type: boolean + enum: + - false + - true + viaGithub: + type: boolean + enum: + - false + - true + viaGitlab: + type: boolean + enum: + - false + - true + viaBitbucket: + type: boolean + enum: + - false + - true + viaGoogle: + type: boolean + enum: + - false + - true + viaApple: + type: boolean + enum: + - false + - true + viaSamlSso: + type: boolean + enum: + - false + - true + viaPasskey: + type: boolean + enum: + - false + - true + periods: + items: + properties: + periodNumber: + type: number + percent: + type: string + startDate: + type: string + endDate: + type: string + required: + - endDate + - percent + - periodNumber + - startDate + type: object + type: array + allowedIntegrationCount: + type: number + allowedIntegrationIds: + items: + type: string + type: array + fallbackEnvironment: + type: string + enablePolyrepoBranchRouting: + type: boolean + enum: + - false + - true + prev: + properties: + name: + type: string + slug: + type: string + fallbackEnvironment: + type: string + enablePolyrepoBranchRouting: + type: boolean + enum: + - false + - true + required: + - fallbackEnvironment + - name + - slug + type: object + group: + properties: + id: + type: string + slug: + type: string + name: + type: string + required: + - id + - name + - slug + type: object + alertId: + type: string + alertName: + type: string + rootTeamId: + type: string + directoryGroupId: + type: string + directoryId: + type: string + groupName: + type: string + billingPlan: + type: string + enum: + - enterprise + - platform + teamName: + type: string + previousMode: + type: string + enum: + - organization + - team + mode: + type: string + enum: + - organization + - team + cause: + type: string + blockReason: + type: string + siftRoute: + properties: + name: + type: string + required: + - name + type: object + headerName: + type: string + previousStatus: + type: string + justification: + type: string + deletedCount: + type: number + scriptCount: + type: number + connectSrcCount: + type: number + connectSrcOriginCount: + type: number + headerCount: + type: number + connectSrcUserNormalizationRuleCount: + type: number + connectSrcNormalizationRulesCleared: + type: boolean + enum: + - false + - true + approvalScope: + type: string + enum: + - all + - preview + resourceUrl: + type: string + oldName: + type: string + connectorId: + type: string + connectorType: + type: string + connectorService: + type: string + externalIssuer: + type: string + externalSubject: + type: string + sessionId: + type: string + emailVerified: + type: boolean + enum: + - false + - true + tenantId: + type: string + removedUsers: + additionalProperties: + properties: + role: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + confirmed: + type: boolean + enum: + - false + - true + confirmedAt: + type: number + joinedFrom: + properties: + origin: + type: string + enum: + - account-update + - bitbucket + - dsync + - feedback + - github + - gitlab + - import + - link + - mail + - nsnb-auto-approve + - nsnb-hobby-upgrade + - nsnb-invite + - nsnb-redeploy + - nsnb-redeploy-attribution-card + - nsnb-request-access + - nsnb-viewer-upgrade + - organization-teams + - saml + - teams + commitId: + type: string + repoId: + type: string + repoPath: + type: string + gitUserId: + oneOf: + - type: string + - type: number + gitUserLogin: + type: string + ssoUserId: + type: string + ssoConnectedAt: + type: number + idpUserId: + type: string + dsyncUserId: + type: string + dsyncConnectedAt: + type: number + required: + - origin + type: object + required: + - confirmed + - role + type: object + type: object + prevPlan: + type: string + priorPlan: + type: string + isDowngrade: + type: boolean + enum: + - false + - true + isReactivate: + type: boolean + enum: + - false + - true + isTrialUpgrade: + type: boolean + enum: + - false + - true + automated: + type: boolean + enum: + - false + - true + description: Whether the plan change was system-initiated rather than human-initiated. + timestamp: + type: number + removedMemberCount: + type: number + previewDeploymentSuffix: + nullable: true + type: string + previousPreviewDeploymentSuffix: + nullable: true + type: string + endpoint: + properties: + id: + type: string + name: + type: string + projectId: + type: string + vercelRegion: + type: string + awsServiceName: + type: string + privateDnsNames: + items: + type: string + type: array + required: + - awsServiceName + - id + - name + - projectId + - vercelRegion + type: object + privateLinkEndpoint: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + current: + properties: + id: + type: string + name: + type: string + projectId: + type: string + vercelRegion: + type: string + awsServiceName: + type: string + privateDnsNames: + items: + type: string + type: array + required: + - awsServiceName + - id + - name + - projectId + - vercelRegion + type: object + previousEndpoint: + properties: + name: + type: string + environmentIds: + items: + type: string + type: array + privateDnsNames: + items: + type: string + type: array + required: + - name + type: object + branch: + type: string + directoryListing: + type: boolean + enum: + - false + - true + projectAnalytics: + nullable: true + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - disabledAt + - enabledAt + - id + type: object + prevProjectAnalytics: + nullable: true + properties: + id: + type: string + canceledAt: + nullable: true + type: number + disabledAt: + type: number + enabledAt: + type: number + paidAt: + type: number + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + required: + - disabledAt + - enabledAt + - id + type: object + isEnvVar: + type: boolean + enum: + - false + - true + note: + type: string + enableAffectedProjectsDeployments: + type: boolean + enum: + - false + - true + enableExternalRewriteCaching: + type: boolean + enum: + - false + - true + productionDeploymentsFastLane: + type: boolean + enum: + - false + - true + sourceFilesOutsideRootDirectory: + type: boolean + enum: + - false + - true + previousBuildMachineType: + type: string + nextBuildMachineType: + type: string + previousBuildMachineSelection: + type: string + nextBuildMachineSelection: + type: string + isSystemInitiated: + type: boolean + enum: + - false + - true + widget: + nullable: true + type: string + enum: + - alert + - analytics-online + - analytics-page-views + - analytics-visitors + - firewall-allowed + - firewall-denied + - observability-alert + - observability-edge-requests + - observability-error-rate + - observability-function-invocations + - online + - res + - shortcut + - speed-insights-cls + - speed-insights-lcp + - speed-insights-res + - null + certId: + type: string + updated: + type: boolean + enum: + - false + - true + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + oldElasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + buildQueueConfiguration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + oldBuildQueueConfiguration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + autoAssignCustomDomains: + type: boolean + enum: + - false + - true + previewDeploymentsEnabled: + type: boolean + enum: + - false + - true + customEnvironmentId: + type: string + customEnvironmentSlug: + type: string + enableFunctionsBeta: + type: boolean + enum: + - false + - true + newProjectName: + type: string + gitProvider: + type: string + enum: + - bitbucket + - cursor-origin + - github + - github-custom-host + - github-limited + - gitlab + - v0 + - vercel + gitRepoId: + type: string + onPullRequest: + type: boolean + enum: + - false + - true + onCommit: + type: boolean + enum: + - false + - true + disableRepositoryDispatchEvents: + type: boolean + enum: + - false + - true + createDeployments: + type: string + enum: + - disabled + - enabled + requireVerifiedCommits: + nullable: true + type: boolean + enum: + - false + - true + - null + gitCommitStatus: + type: boolean + enum: + - false + - true + gitLFS: + type: boolean + enum: + - false + - true + consolidatedGitCommitStatus: + nullable: true + properties: + enabled: + type: boolean + enum: + - false + - true + propagateFailures: + type: boolean + enum: + - false + - true + required: + - enabled + - propagateFailures + type: object + configuredBy: + type: string + oldProjectId: + type: string + oldProjectName: + type: string + newProjectId: + type: string + projects: + items: + properties: + projectId: + type: string + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + membershipCreatedAt: + type: number + required: + - membershipCreatedAt + - projectId + - role + type: object + type: array + teamMembership: + properties: + uid: + type: string + username: + type: string + required: + - uid + type: object + prevConfiguredBy: + nullable: true + type: string + projectMembership: + nullable: true + properties: + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + uid: + type: string + createdAt: + type: number + username: + type: string + required: + - createdAt + - role + - uid + type: object + removedMembership: + properties: + role: + type: string + enum: + - ADMIN + - PROJECT_DEVELOPER + - PROJECT_GUEST + - PROJECT_VIEWER + uid: + type: string + createdAt: + type: number + username: + type: string + required: + - createdAt + - role + - uid + type: object + previousProjectId: + type: string + previousProjectName: + type: string + originAccountName: + type: string + transferId: + type: string + destinationAccountName: + nullable: true + type: string + destinationAccountId: + type: string + optionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + oldOptionsAllowlist: + nullable: true + properties: + paths: + items: + properties: + value: + type: string + required: + - value + type: object + type: array + required: + - paths + type: object + passwordProtection: + nullable: true + oneOf: + - properties: + deploymentType: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews required: - - price - - batch - - threshold - - hidden + - deploymentType type: object - serverlessFunctionExecution: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: + - type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + oldPasswordProtection: + nullable: true + oneOf: + - properties: + deploymentType: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews required: - - price - - batch - - threshold - - hidden + - deploymentType type: object - sourceImages: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: + - type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + reasonCode: + type: string + enum: + - BACKOFFICE + - BUDGET_REACHED + - PUBLIC_API + consent: + type: string + enum: + - granted + - refused + projectAccountId: + type: string + rollbackDescription: + properties: + userId: + type: string + description: The user who rolled back the project. + username: + type: string + description: The username of the user who rolled back the project. + description: + type: string + description: User-supplied explanation of why they rolled back the project. Limited to 250 characters. + createdAt: + type: number + description: Timestamp of when the rollback was requested. + required: + - createdAt + - description + - userId + - username + type: object + description: Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback. + targetDeploymentId: + type: string + newTargetPercentage: + type: number + region: + type: string + failoverRegions: + items: + type: string + type: array + customerSupportCodeVisibility: + type: boolean + enum: + - false + - true + gitForkProtection: + type: boolean + enum: + - false + - true + protectedSourcemaps: + type: boolean + enum: + - false + - true + inheritDeploymentProtection: + type: boolean + enum: + - false + - true + publicSource: + type: boolean + enum: + - false + - true + ssoProtection: + nullable: true + oneOf: + - properties: + deploymentType: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalBandwidthInBytes: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalCommands: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null required: - - price - - batch - - threshold - - hidden + - deploymentType type: object - storageRedisTotalDailyAvgStorageInBytes: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: + - type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + oldSsoProtection: + nullable: true + oneOf: + - properties: + deploymentType: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + cve55182MigrationAppliedFrom: nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - storageRedisTotalDatabases: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null + april2026SecurityIncidentMigrationAppliedFrom: nullable: true - type: number - required: - - price - - batch - - threshold - - hidden - type: object - webAnalyticsEvent: - properties: - tier: - type: number - price: - type: number - batch: - type: number - threshold: - type: number - name: type: string - hidden: - type: boolean - disabledAt: - nullable: true - type: number - enabledAt: - nullable: true - type: number + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - null required: - - price - - batch - - threshold - - hidden + - deploymentType type: object + - type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + trustedIps: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + - null + oldTrustedIps: + nullable: true + type: string + enum: + - all + - all_except_custom_domains + - preview + - prod_deployment_urls_and_all_previews + - production + - null + addedAddresses: + nullable: true + items: + type: string + type: array + removedAddresses: + nullable: true + items: + type: string + type: array + enableVercelCiSameRepository: + type: boolean + enum: + - false + - true + addedProjects: + items: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: array + removedProjects: + items: + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + type: array + addedProviders: + items: + type: string + type: array + removedProviders: + items: + type: string + type: array + projectWebAnalytics: + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + prevProjectWebAnalytics: + nullable: true + properties: + id: + type: string + disabledAt: + type: number + canceledAt: + type: number + enabledAt: + type: number + hasData: + type: boolean + enum: + - true + required: + - id + type: object + gitProviderGroupDescriptor: + type: string + gitScope: + type: string + connectionId: + type: string + connectionType: + type: string + sandboxName: + type: string + sandboxId: + type: string + driveName: + type: string + snapshotId: + type: string + targetRegions: + items: + type: string + type: array + instances: + type: number + verified: + type: boolean + enum: + - false + - true + uid: + type: string + firstEnabledAt: + type: number + bio: + type: string + scalingRules: + additionalProperties: + properties: + min: + type: number + max: + type: number + required: + - max + - min + type: object + type: object + min: + type: number + max: + type: number + analyticsId: + type: string + sampleRatePercent: + nullable: true + type: number + spendLimitInDollars: + nullable: true + type: number + webhookUrl: + type: string + prevBudget: + properties: + type: + type: string + enum: + - fixed + description: The budget type + fixedBudget: + type: number + description: Budget amount (USD / dollars) + previousSpend: + items: + type: number + type: array + description: Array of the last 3 months of spend data + notifiedAt: + items: + type: number + type: array + description: Array of 50, 75, 100 to keep track of notifications sent out + webhookId: + type: string + description: Webhook id that corresponds to a webhook in Cosmos webhook collection + webhookNotified: + type: boolean + enum: + - false + - true + description: Keep track if the webhook has been called for the month + createdAt: + type: number + description: Date time when budget is created + updatedAt: + type: number + description: Date time when budget is updated last + isActive: + type: boolean + enum: + - false + - true + description: Is the budget currently active for a customer + pauseProjects: + type: boolean + enum: + - false + - true + description: Should all projects be paused if budget is exceeded + pricingPlan: + type: string + enum: + - flex + - legacy + - platform + - plus + - unbundled + description: The acive pricing plan the team is billed with + teamId: + type: string + description: Partition key + id: + type: string + description: Sort key that needs to be unique per teamId + required: + - createdAt + - fixedBudget + - id + - isActive + - notifiedAt + - previousSpend + - teamId + - type + type: object + description: Represents a budget for tracking and notifying teams on their spending. + prevWebhookUrl: + type: string + storeType: + type: string + enum: + - postgres + - redis + transferRequestCode: + type: string + store: + properties: + id: + type: string + name: + type: string + type: + type: string + enum: + - blob + - edge-config + - integration + - postgres + - redis + required: + - id + - type + type: object + computeUnitsMax: + type: number + computeUnitsMin: + type: number + suspendTimeoutSeconds: + type: number + access: + type: string + enum: + - private + - public + locked: + type: boolean + enum: + - false + - true + caseNumber: + type: string + client: + type: string + trialCreditsIssuedAt: + type: number + eventId: + type: string + sessionKind: + type: string + description: 'Currently emitted session kinds: chat, investigation.' + surface: + type: string + description: 'Currently emitted surfaces: dashboard, internal, slack, automation, github.' + occurredAt: + type: number + planId: + type: string + requestedScopes: + items: + type: string + type: array + description: Scopes requested by the model-authored plan. + elevatedScopes: + items: + type: string + type: array + description: Requested Vercel scopes that are not included in the baseline token. + mergedScopes: + items: + type: string + type: array + description: Baseline plus elevated Vercel scopes used when minting scoped tokens. + githubScopes: + items: + type: string + type: array + description: External GitHub scopes requested by the plan; these are not Vercel token scopes. + requestedScopeCount: + type: number + elevatedScopeCount: + type: number + mergedScopeCount: + type: number + githubScopeCount: + type: number + by: + type: string + byUid: + type: string + reasons: + items: + properties: + slug: + type: string + description: + type: string + required: + - description + - slug + type: object + type: array + inviteIds: + items: + type: string + type: array + invitedUser: + properties: + username: + type: string + email: + type: string + required: + - email + - username + type: object + invitedEmail: + type: string + invitationRole: + type: string + invitedUid: + type: string + gitUsername: + type: string + githubUsername: + nullable: true + type: string + gitlabUsername: + nullable: true + type: string + bitbucketUsername: + nullable: true + type: string + updatedUid: + type: string + role: + type: string + enum: + - BILLING + - CONTRIBUTOR + - DEVELOPER + - MEMBER + - OWNER + - SECURITY + - VIEWER + - VIEWER_FOR_PLUS + previousPlan: + type: string + enum: + - enterprise + - hobby + - pro + newPlan: + type: string + enum: + - enterprise + - hobby + - pro + entitlement: + type: string + previousCanceledAt: + type: string + updatedUser: + properties: + username: + type: string + email: + type: string + required: + - email + - username + type: object + invitedBy: + properties: + email: + type: string + userId: + type: string + name: + type: string + required: + - email + type: object + requestedTeamName: + type: string + requestedTeamSlug: + type: string + requestedUserName: + type: string + previousRole: + type: string + authorized: + type: boolean + enum: + - false + - true + enforced: + type: boolean + enum: + - false + - true + publicId: + type: string + maxUses: + type: number + previousConcurrentBuilds: + type: number + nextConcurrentBuilds: + type: number + trial: + nullable: true + properties: + start: + type: number + end: + type: number + required: + - end + - start + type: object + convertedFromTrial: + type: boolean + enum: + - false + - true + inviteCode: + type: string + decision: + type: string + enum: + - keep_on + - turn_off + version: + type: string + remoteCaching: + properties: + enabled: + type: boolean + enum: + - false + - true + type: object + description: Represents configuration for remote caching + ips: + items: + type: string + type: array + tokenTypes: + items: + type: string + type: array + exportId: + type: string + from: + type: number + to: + type: number + format: + type: string + fileId: + type: string + sampling: + items: + properties: + type: + type: string + enum: + - head_sampling + rate: + type: number + env: + type: string + enum: + - preview + - production + requestPath: + type: string + required: + - rate + - type + type: object + type: array + totp: + type: boolean + enum: + - false + - true + recoveryCodes: + type: number + autoBlockPrevented: + type: boolean + enum: + - false + - true + preventUntil: + type: number + method: + type: string + enum: + - email-otp + - recovery-code + - totp + - webauthn + flowId: + type: string + allowedMethods: + items: + type: string + enum: + - recovery-code + - totp + - webauthn + type: array + firstFactor: + type: string + remaining: + type: number + context: + type: string + enum: + - login + - sudo + description: Absent on events predating the field; those were all logins. + mfaEnabled: + type: boolean + enum: + - false + - true + mfa: + properties: + enabled: + type: boolean + enum: + - false + - true + totpVerified: + type: boolean + enum: + - false + - true + required: + - enabled + - totpVerified + type: object + totpVerified: + type: boolean + enum: + - false + - true + providerSubjectId: + type: string + prevEmail: + type: string + repositoryName: + type: string + reference: + type: string + digest: + type: string + sharedWithTeamId: + type: string + sharedWithTeamSlug: + type: string + public: + type: boolean + enum: + - false + - true + removedTeamIds: + items: + type: string + type: array + previousProjectCount: + nullable: true + type: number + nextProjectCount: + nullable: true + type: number + customAlertTitle: + type: string + vulnerabilities: + items: + type: string + type: array + protectionEnabled: + type: boolean + enum: + - false + - true + protectedProjectCount: + type: number + peering: + properties: + id: + type: string + accountId: + type: string + region: + type: string + vpcId: + type: string + required: + - accountId + - id + - region + - vpcId type: object - invoiceSettings: + tier: + type: string + enum: + - plus + - pro + chatId: + type: string + chatTitle: + type: string + model: + type: string + useCase: + type: string + messageId: + type: string + inputTokens: + type: number + outputTokens: + type: number + events: + items: + properties: + eventId: + type: string + modelId: + type: string + inputTokens: + type: number + outputTokens: + type: number + totalTokens: + type: number + cacheCreationInputTokens: + type: number + cacheReadInputTokens: + type: number + timestamp: + type: string + required: + - cacheCreationInputTokens + - cacheReadInputTokens + - eventId + - inputTokens + - modelId + - outputTokens + - timestamp + - totalTokens + type: object + type: array + runId: + type: string + grantType: + type: string + enum: + - authorization_code + - urn:ietf:params:oauth:grant-type:device_code + - urn:ietf:params:oauth:grant-type:token-exchange + atTTL: + type: number + description: access_token TTL + rtTTL: + type: number + description: refresh_token TTL + authMethod: + type: string + enum: + - app + - apple + - bitbucket + - chatgpt + - email + - emu + - github + - github-webhook + - gitlab + - google + - invite + - manual + - otp + - passkey + - saml + - sms + - token-exchange-oidc + includesRefreshToken: + type: boolean + enum: + - false + - true + description: optional since entries prior to 2025-10-13 do not contain this field + tokenPrefix: + type: string + enum: + - vca_ + description: optional since entries prior to 2026-04-23 do not contain this field + tokenSuffix: + type: string + description: optional since entries prior to 2026-04-23 do not contain this field + refreshTokenPublicId: + type: string + description: optional; only present when a refresh token was issued (offline_access). + refreshTokenPrefix: + type: string + enum: + - vcr_ + description: optional; only present when a refresh token was issued (offline_access). + refreshTokenSuffix: + type: string + description: optional; only present when a refresh token was issued (offline_access). + ip: + nullable: true + type: string + description: optional since entries prior to 2026-04-23 do not contain this field + issuerUrl: + type: string + description: 'OIDC issuer (`iss`) of the token that authenticated the request. Present for OIDC-authenticated flows: the token-exchange grant, or `client_credentials` with the `oidc_token` client-authentication method.' + oidcSubject: + type: string + description: '`sub` claim of the OIDC token. Present for OIDC-authenticated flows (see {@link issuerUrl}).' + policy: properties: - footer: + policyId: type: string - type: object - subscriptions: - nullable: true - items: - properties: - id: - type: string - trial: - nullable: true - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - period: - properties: - start: - type: number - end: - type: number - required: - - start - - end - type: object - frequency: - properties: - interval: - type: string - enum: - - month - - day - - week - - year - intervalCount: - type: number - required: - - interval - - intervalCount - type: object - discount: - nullable: true + clientId: + type: string + issuerUrl: + type: string + teamId: + type: string + name: + nullable: true + type: string + description: Human-readable policy name, or `null` when unnamed. + claims: + items: properties: - id: + name: type: string - coupon: - properties: - id: - type: string - name: - nullable: true - type: string - amountOff: - nullable: true - type: number - percentageOff: - nullable: true - type: number - durationInMonths: - nullable: true - type: number - duration: - type: string - enum: - - forever - - repeating - - once - required: - - id - - name - - amountOff - - percentageOff - - durationInMonths - - duration - type: object + values: + items: + properties: + value: + type: string + wildcards: + type: boolean + enum: + - false + - true + required: + - value + - wildcards + type: object + type: array required: - - id - - coupon + - name + - values type: object + description: Claim matchers an OIDC token must satisfy to use the policy. + type: array + description: Claim matchers an OIDC token must satisfy to use the policy. + permissions: items: - items: - properties: - id: - type: string - priceId: - type: string - productId: - type: string - amount: - type: number - quantity: - type: number - required: - - id - - priceId - - productId - - amount - - quantity - type: object - type: array - required: - - id - - trial - - period - - frequency - - discount - - items - type: object - type: array - controls: - nullable: true - properties: - analyticsSampleRateInPercent: + type: string + type: array + description: Permission boundary (`['*']` = the app's full declared permissions). + resources: nullable: true + properties: + projectIds: + items: + type: string + type: array + required: + - projectIds + type: object + description: Resource boundary, or `null` when the policy has none. + createdAt: type: number - analyticsSpendLimitInDollars: - nullable: true + description: Creation time (epoch ms). + updatedAt: type: number + description: Last-update time (epoch ms). + required: + - claims + - clientId + - createdAt + - issuerUrl + - name + - permissions + - policyId + - resources + - teamId + - updatedAt type: object - purchaseOrder: - nullable: true + description: A full point-in-time snapshot of an OIDC exchange policy, captured on every lifecycle event so the audit trail records exactly what the policy looked like. Mirrors the management endpoints' public response shape. + tokenId: type: string - status: + description: The token's public ID. + tokenName: type: string + description: User-supplied name of the token. + projectScope: + type: string + enum: + - account + - project-only + description: Present when `scope` is `'project'`. + hasAuthorizationDetails: + type: boolean enum: - - active - - trialing - - overdue - - expired - - canceled - pricingExperiment: + - false + - true + description: Whether the token was issued with RFC 9396 authorization details. + reqId: + type: string + reqUrl: + type: string + tokenType: + type: string + actorTokenId: type: string + description: The token's public ID. + expired: + type: boolean enum: - - august-2022 - orbMigrationScheduledAt: - nullable: true - type: number + - false + - true + leaked: + type: boolean + enum: + - false + - true + revoked: + type: boolean + enum: + - false + - true required: - - period + - action + - id + - projectId + - slug + - name + - state + - environment + - policyId + - projectName + - accountRequestId + - teamId + - teamSlug + - blockCode + - reason + - resourceId + - actorId + - actorType + - fromPlan + - toPlan + - apiKey + - change + - scopeType + - credential + - added + - changed + - removed + - enabled + - amount + - purchaseIntentId + - privateModel + - privateProvider + - moderationPolicyCount + - piiRedaction + - policiesAdded + - policiesModified + - policiesRemoved + - regions + - retention + - rule + - virtualModelConfig + - accessGroup + - author + - project + - user + - aliasCount + - alias + - aliasId + - deploymentId + - deploymentUrl + - appName + - scopes + - nextScopes + - attackModeEnabled + - autoExposeSystemEnvs + - invoiceId + - lineItemCount + - refundReason + - newInvoiceId + - settlementMethod + - paymentMethodId + - changedFields + - planSlug + - data + - productAliases + - bulkRedirectsLimit + - prevBulkRedirectsLimit + - versionId + - custom + - cns + - dst + - src + - gitOwnerName + - gitRepositoryName + - next + - previous + - documentId + - fingerprint + - title + - count + - documents + - configuration + - team + - newName + - githubLogin + - host + - gitlabEmail + - gitlabLogin + - gitlabUserId + - bitbucketEmail + - bitbucketLogin + - bitbucketAccountId + - prevPurchasedAmount + - purchasedAmount + - metricName + - suffix + - status + - hookName + - ref + - job + - checkId + - checkName + - url + - gitCommitterName + - gitUserPlatform + - sha + - source + - deployment + - ruleName + - ruleProvenance + - deploymentName + - configurationId + - integrationId + - integrationName + - integrationSlug + - ownerId + - domain + - type + - value + - initiator + - price + - cdnEnabled + - ownerName + - userId + - domainId + - nameservers + - previousServiceType + - serviceType + - customNameservers + - prevCustomNameservers + - echMode + - previousEchMode + - zone + - fromId + - fromName + - destinationId + - destinationName + - drainName + - drainUrl + - srcImages + - tags + - path + - edgeConfigDigest + - edgeConfigId + - edgeConfigSlug + - edgeConfigBackupVersionId + - edgeConfig + - fromAccount + - toAccount + - edgeConfigTokenId + - label + - edgeConfigTokenIds + - email + - previousRule + - envId + - envKey + - organizationId + - provider + - repository + - target + - scope + - configVersion + - configChangeCount + - configChanges + - restore + - ruleGroups + - rulesetName + - active + - newOwnerId + - previousOwnerId + - actorAccountId + - actorLogin + - destinationBranch + - destinationRepo + - installationId + - outcome + - resultCommitSha + - sourceCommitSha + - sourceRepo + - usedAppToken + - fromDeploymentId + - toDeploymentId + - newOwner + - confirmedScopes + - destinationTeamId + - destinationTeamName + - integration + - originTeamId + - originTeamName + - configurations + - billingPlanId + - databaseName + - errorCode + - failedQueryIndex + - integrationProductSlug + - queries + - queryCount + - queryType + - readonly + - rolledBack + - commands + - requestKind + - keys + - key + - algorithm + - issuerId + - issuerName + - origin + - kind + - policyKey + - logDrainUrl + - login + - periods + - prev + - group + - alertId + - alertName + - rootTeamId + - directoryGroupId + - directoryId + - groupName + - billingPlan + - mode + - previousMode + - teamName + - cause + - headerName + - justification + - previousStatus + - connectSrcCount + - connectSrcOriginCount + - deletedCount + - headerCount + - scriptCount + - resourceUrl + - pattern + - oldName + - connectorId + - connectorService + - connectorType + - externalIssuer + - externalSubject + - sessionId - plan + - endpoint + - privateLinkEndpoint + - current + - previousEndpoint + - branch + - directoryListing + - prevProjectAnalytics + - projectAnalytics + - enableAffectedProjectsDeployments + - enableExternalRewriteCaching + - productionDeploymentsFastLane + - sourceFilesOutsideRootDirectory + - nextBuildMachineSelection + - nextBuildMachineType + - previousBuildMachineSelection + - widget + - elasticConcurrencyEnabled + - oldElasticConcurrencyEnabled + - autoAssignCustomDomains + - previewDeploymentsEnabled + - customEnvironmentId + - customEnvironmentSlug + - enableFunctionsBeta + - previewDeploymentSuffix + - newProjectName + - gitProvider + - gitRepoId + - onPullRequest + - onCommit + - disableRepositoryDispatchEvents + - createDeployments + - requireVerifiedCommits + - gitCommitStatus + - gitLFS + - consolidatedGitCommitStatus + - gitBranch + - redirect + - redirectStatusCode + - newProjectId + - oldProjectId + - oldProjectName + - projects + - projectMembership + - removedMembership + - originAccountName + - previousProjectName + - destinationAccountName + - destinationAccountId + - oldPasswordProtection + - passwordProtection + - expiresAt + - consent + - projectAccountId + - customerSupportCodeVisibility + - gitForkProtection + - protectedSourcemaps + - inheritDeploymentProtection + - publicSource + - oldSsoProtection + - ssoProtection + - addedProjects + - addedProviders + - removedProjects + - removedProviders + - gitProviderGroupDescriptor + - gitScope + - connectionId + - connectionType + - sandboxName + - driveName + - region + - snapshotId + - targetRegions + - instances + - verified + - uid + - updatedAt + - bio + - max + - min + - scalingRules + - bitbucketName + - zeitAccount + - zeitAccountType + - gitlabName + - sampleRatePercent + - spendLimitInDollars + - budget + - storeType + - store + - transferRequestCode + - locked + - currency + - trialCreditsIssuedAt + - eventId + - occurredAt + - sessionKind + - surface + - elevatedScopeCount + - elevatedScopes + - githubScopeCount + - githubScopes + - mergedScopeCount + - mergedScopes + - planId + - requestedScopeCount + - requestedScopes + - by + - inviteIds + - entitlement + - requestedTeamName + - previousRole + - authorized + - enforced + - maxUses + - publicId + - role + - nextConcurrentBuilds + - previousConcurrentBuilds + - convertedFromTrial + - decision + - version + - ips + - tokenTypes + - exportId + - format + - from + - to + - fileId + - recoveryCodes + - totp + - username + - autoBlockPrevented + - method + - allowedMethods + - firstFactor + - flowId + - remaining + - mfaEnabled + - mfa + - totpVerified + - providerSubjectId + - prevEmail + - repositoryName + - digest + - reference + - sharedWithTeamId + - sharedWithTeamSlug + - public + - removedTeamIds + - nextProjectCount + - previousProjectCount + - customAlertTitle + - protectedProjectCount + - protectionEnabled + - vulnerabilities + - peering + - tier + - chatId + - events + - inputTokens + - messageId + - model + - outputTokens + - timestamp + - useCase + - runId + - atTTL + - authMethod + - grantType + - policy + - after + - before + - tokenId + - tokenName + - actorTokenId + - tokenType + additionalProperties: true + required: + - createdAt + - entities + - id + - principalId + - text + type: object + description: Array of events generated by the User. + ListEventTypesResponse: + properties: + types: + items: + $ref: '#/components/schemas/ListEventType' + type: array + categories: + items: + properties: + name: + type: string + enum: + - account + - ai + - ai-gateway + - billing + - connect + - deployment + - domain + - edge + - env-variable + - feature-flags + - firewall + - integration + - microfrontends + - network + - observability + - other + - project + - security + - storage + - team + - v0 + - vercel-app + - workflow + label: + type: string + required: + - label + - name + type: object + type: array + required: + - categories + - types + type: object + description: Response returned by the List Event Types endpoint. + AuthUser: + properties: + createdAt: + type: number + description: UNIX timestamp (in milliseconds) when the User account was created. + example: 1630748523395 + softBlock: + nullable: true + properties: + blockedAt: + type: number + reason: + type: string + enum: + - BLOCKED_FOR_PLATFORM_ABUSE + - DOMAIN_OWNER_DELETION_REQUEST + - ENTERPRISE_TRIAL_ENDED + - ENTERPRISE_UNPAID_INVOICE + - EXPOSURE_CAP_EXCEEDED + - FAIR_USE_LIMITS_EXCEEDED + - SUBSCRIPTION_CANCELED + - SUBSCRIPTION_EXPIRED + - UNPAID_INVOICE + blockedDueToOverageType: + type: string + enum: + - analyticsUsage + - artifacts + - bandwidth + - blobDataTransfer + - blobTotalAdvancedRequests + - blobTotalAvgSizeInBytes + - blobTotalGetResponseObjectSizeInBytes + - blobTotalSimpleRequests + - connectDataTransfer + - dataCacheRead + - dataCacheWrite + - edgeConfigRead + - edgeConfigWrite + - edgeFunctionExecutionUnits + - edgeMiddlewareInvocations + - edgeRequest + - edgeRequestAdditionalCpuDuration + - elasticConcurrencyBuildSlots + - fastDataTransfer + - fastOriginTransfer + - fluidCpuDuration + - fluidDuration + - functionDuration + - functionInvocation + - imageOptimizationCacheRead + - imageOptimizationCacheWrite + - imageOptimizationTransformation + - logDrainsVolume + - monitoringMetric + - observabilityEvent + - onDemandConcurrencyMinutes + - runtimeCacheRead + - runtimeCacheWrite + - serverlessFunctionExecution + - sourceImages + - wafOwaspExcessBytes + - wafOwaspRequests + - wafRateLimitRequest + - webAnalyticsEvent + unpauseAt: + type: number + description: Since September 2026. Set only by `billing-usage-alerts` for usage plans with a `blockDurationMs`; its presence marks a pause that expires on its own. + required: + - blockedAt + - reason type: object - description: An object containing billing infomation associated with the User account. + description: When the User account has been "soft blocked", this property will contain the date when the restriction was enacted, and the identifier for why. + billing: + nullable: true + type: string + description: An object containing billing infomation associated with the User account. (opaque JSON object) resourceConfig: properties: + concurrentBuilds: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. nodeType: type: string description: An object containing infomation related to the amount of platform resources may be allocated to the User account. - concurrentBuilds: - type: number + elasticConcurrencyEnabled: + type: boolean + enum: + - false + - true + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + buildEntitlements: + properties: + enhancedBuilds: + type: boolean + enum: + - false + - true + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + buildQueue: + properties: + configuration: + type: string + enum: + - SKIP_NAMESPACE_QUEUE + - WAIT_FOR_NAMESPACE_QUEUE + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object description: An object containing infomation related to the amount of platform resources may be allocated to the User account. awsAccountType: type: string @@ -1484,6 +8370,9 @@ components: cfZoneName: type: string description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + imageOptimizationType: + type: string + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. edgeConfigs: type: number description: An object containing infomation related to the amount of platform resources may be allocated to the User account. @@ -1496,7 +8385,10 @@ components: edgeFunctionExecutionTimeoutMs: type: number description: An object containing infomation related to the amount of platform resources may be allocated to the User account. - serverlessFunctionDefaultMaxExecutionTime: + serverlessFunctionMaxDuration: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + serverlessFunctionMaxMemorySize: type: number description: An object containing infomation related to the amount of platform resources may be allocated to the User account. kvDatabases: @@ -1508,6 +8400,49 @@ components: blobStores: type: number description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + integrationStores: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + cronJobsPerProject: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + microfrontendGroupsPerTeam: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + microfrontendProjectsPerGroup: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + flagsExplorerOverridesThreshold: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + flagsExplorerUnlimitedOverrides: + type: boolean + enum: + - false + - true + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + customEnvironmentsPerProject: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + security: + properties: + rateLimit: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + customRules: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + ipBlocks: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + ipBypass: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + type: object + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. + bulkRedirectsFreeLimitOverride: + type: number + description: An object containing infomation related to the amount of platform resources may be allocated to the User account. type: object description: An object containing infomation related to the amount of platform resources may be allocated to the User account. stagingPrefix: @@ -1519,33 +8454,50 @@ components: scopeId: type: string viewPreference: + nullable: true type: string enum: - cards - list + - null + favoritesViewPreference: + nullable: true + type: string + enum: + - closed + - open + - null + recentsViewPreference: + nullable: true + type: string + enum: + - closed + - open + - null required: - scopeId - - viewPreference type: object description: set of dashboard view preferences (cards or list) per scopeId type: array description: set of dashboard view preferences (cards or list) per scopeId importFlowGitNamespace: nullable: true - oneOf: - - type: string - - type: number + type: string importFlowGitNamespaceId: nullable: true - oneOf: - - type: string - - type: number + type: string importFlowGitProvider: + nullable: true type: string enum: + - bitbucket + - cursor-origin - github + - github-custom-host + - github-limited - gitlab - - bitbucket + - vercel + - null preferredScopesAndGitNamespaces: items: properties: @@ -1557,8 +8509,8 @@ components: - type: string - type: number required: - - scopeId - gitNamespaceId + - scopeId type: object type: array dismissedToasts: @@ -1574,61 +8526,53 @@ components: createdAt: type: number required: - - scopeId - createdAt + - scopeId type: object type: array required: - - name - dismissals + - name type: object - description: 'A record of when, under a certain scopeId, a toast was dismissed' + description: A record of when, under a certain scopeId, a toast was dismissed type: array - description: 'A record of when, under a certain scopeId, a toast was dismissed' + description: A record of when, under a certain scopeId, a toast was dismissed favoriteProjectsAndSpaces: items: - oneOf: - - properties: - projectId: - type: string - scopeSlug: - type: string - scopeId: - type: string - required: - - projectId - - scopeSlug - - scopeId - type: object - description: A list of projects and spaces across teams that a user has marked as a favorite. - - properties: - spaceId: - type: string - scopeSlug: - type: string - scopeId: - type: string - required: - - spaceId - - scopeSlug - - scopeId - type: object - description: A list of projects and spaces across teams that a user has marked as a favorite. + properties: + teamId: + type: string + projectId: + type: string + required: + - projectId + - teamId + type: object + description: A list of projects and spaces across teams that a user has marked as a favorite. type: array description: A list of projects and spaces across teams that a user has marked as a favorite. hasTrialAvailable: type: boolean + enum: + - false + - true description: Whether the user has a trial available for a paid plan subscription. remoteCaching: properties: enabled: type: boolean + enum: + - false + - true type: object description: remote caching settings dataCache: properties: excessBillingEnabled: type: boolean + enum: + - false + - true type: object description: data cache settings featureBlocks: @@ -1641,15 +8585,95 @@ components: type: number isCurrentlyBlocked: type: boolean + enum: + - false + - true + required: + - isCurrentlyBlocked + type: object + speedInsightsFree: + properties: + blockedFrom: + type: number + blockedUntil: + type: number + blockReason: + type: string + enum: + - admin_override + - hard_blocked + - limits_exceeded + isCurrentlyBlocked: + type: boolean + enum: + - false + - true required: + - blockReason - isCurrentlyBlocked type: object + description: Client-facing view of the `speedInsightsFree` ingestion block. The dashboard needs `blockReason` to tell usage pauses apart from admin blocks. type: object description: Feature blocks for the user - defaultTeamId: - nullable: true - type: string - description: The user's default team. Only applies if the user's `version` is `'northstar'`. + isAccountUpdateRequired: + type: boolean + enum: + - false + - true + description: When `true`, the user must complete the EMU Update Account flow before they can use the dashboard. + accountUpdateContext: + properties: + canOptOut: + type: boolean + enum: + - false + - true + description: Whether this user can cancel their optional Account Update flow. + organization: + properties: + id: + type: string + name: + type: string + slug: + type: string + required: + - id + - name + - slug + type: object + managedTeams: + items: + properties: + teamId: + type: string + slug: + type: string + name: + type: string + avatar: + nullable: true + type: string + workEmail: + type: string + required: + - avatar + - name + - slug + - teamId + - workEmail + type: object + type: array + verifiedEmuDomains: + items: + type: string + type: array + required: + - canOptOut + - managedTeams + - verifiedEmuDomains + type: object + description: Context for the Update Account screen. Present only when `isAccountUpdateRequired` is true. `managedTeams` is empty for orphan mode (user matches an EMU domain but is not on the team). id: type: string description: The User's unique identifier. @@ -1661,7 +8685,7 @@ components: name: nullable: true type: string - description: 'Name associated with the User account, or `null` if none has been provided.' + description: Name associated with the User account, or `null` if none has been provided. example: John Doe username: type: string @@ -1672,33 +8696,44 @@ components: type: string description: SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image. example: 22cb30c85ff45ac4c72de8981500006b28114aa1 - version: + defaultTeamId: nullable: true type: string + description: The user's default team. + isEnterpriseManaged: + type: boolean + enum: + - false + - true + description: Indicates whether the user is managed by an enterprise. + shouldShowEnterpriseManagedWelcome: + type: boolean enum: - - northstar - description: The user's version. Will either be unset or `northstar`. + - false + - true + description: Whether the Enterprise Managed User joined the current team through the Update Account flow and should see its welcome experience. required: - - createdAt - - softBlock + - avatar - billing - - resourceConfig - - stagingPrefix - - hasTrialAvailable + - createdAt - defaultTeamId - - id - email + - hasTrialAvailable + - id - name + - resourceConfig + - softBlock + - stagingPrefix - username - - avatar - - version type: object description: Data for the currently authenticated User. AuthUserLimited: properties: limited: type: boolean - description: 'Property indicating that this User data contains only limited information, due to the authentication token missing privileges to read the full User data. Re-login with email, GitHub, GitLab or Bitbucket in order to upgrade the authentication token with the necessary privileges.' + enum: + - true + description: Property indicating that this User data contains only limited information, due to the authentication token missing privileges to read the full User data. Re-login with email, GitHub, GitLab or Bitbucket in order to upgrade the authentication token with the necessary privileges. id: type: string description: The User's unique identifier. @@ -1710,7 +8745,7 @@ components: name: nullable: true type: string - description: 'Name associated with the User account, or `null` if none has been provided.' + description: Name associated with the User account, or `null` if none has been provided. example: John Doe username: type: string @@ -1721,255 +8756,1522 @@ components: type: string description: SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image. example: 22cb30c85ff45ac4c72de8981500006b28114aa1 - version: + defaultTeamId: nullable: true type: string + description: The user's default team. + isEnterpriseManaged: + type: boolean + enum: + - false + - true + description: Indicates whether the user is managed by an enterprise. + shouldShowEnterpriseManagedWelcome: + type: boolean enum: - - northstar - description: The user's version. Will either be unset or `northstar`. + - false + - true + description: Whether the Enterprise Managed User joined the current team through the Update Account flow and should see its welcome experience. required: - - limited - - id + - avatar + - defaultTeamId - email + - id + - limited - name - username - - avatar - - version type: object - description: 'A limited form of data for the currently authenticated User, due to the authentication token missing privileges to read the full User data.' - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} + description: A limited form of data for the currently authenticated User, due to the authentication token missing privileges to read the full User data. + ListEventType: + properties: + name: + type: string + enum: + - access-group-created + - access-group-deleted + - access-group-project-updated + - access-group-updated + - access-group-user-added + - access-group-user-removed + - admin-agentic-provisioning-account-unlinked + - admin-plan-updated + - admin-secondary-email-added + - admin-secondary-email-removed + - admin-team-name-update + - admin-team-slug-update + - admin-user-delete + - admin-user-primary-email-updated + - admin-username-updated + - agentic-provisioning-account-blocked + - agentic-provisioning-account-linked + - agentic-provisioning-account-relinked + - agentic-provisioning-account-unlinked + - agentic-provisioning-credentials-rotated + - agentic-provisioning-plan-changed + - agentic-provisioning-team-created + - ai-alert-investigation + - ai-code-review + - ai-gateway-api-key-created + - ai-gateway-api-key-deleted + - ai-gateway-api-key-quota-updated + - ai-gateway-auto-reload-updated + - ai-gateway-budget-default-updated + - ai-gateway-byok-credential-created + - ai-gateway-byok-credential-deleted + - ai-gateway-byok-credential-updated + - ai-gateway-byok-model-mappings-updated + - ai-gateway-credits-purchased + - ai-gateway-guardrails-updated + - ai-gateway-hipaa-compliance-toggled + - ai-gateway-inference-regions-updated + - ai-gateway-model-allowlist-models-updated + - ai-gateway-model-allowlist-toggled + - ai-gateway-private-model-created + - ai-gateway-private-model-deleted + - ai-gateway-private-model-updated + - ai-gateway-private-provider-created + - ai-gateway-private-provider-deleted + - ai-gateway-private-provider-updated + - ai-gateway-prompt-training-opt-out-toggled + - ai-gateway-provider-allowlist-providers-updated + - ai-gateway-provider-allowlist-toggled + - ai-gateway-rule-created + - ai-gateway-rule-deleted + - ai-gateway-rule-updated + - ai-gateway-scope-budget-updated + - ai-gateway-transcripts-default-disabled + - ai-gateway-transcripts-default-enabled + - ai-gateway-transcripts-disabled + - ai-gateway-transcripts-enabled + - ai-gateway-transcripts-retention-updated + - ai-gateway-virtual-model-config-archived + - ai-gateway-virtual-model-config-created + - ai-gateway-virtual-model-config-deleted + - ai-gateway-virtual-model-config-restored + - ai-gateway-virtual-model-config-updated + - ai-gateway-zero-data-retention-toggled + - ai-omniagent + - alert-investigation-project-allowlist-updated + - alert-rule-created + - alert-rule-deleted + - alert-rule-updated + - alias + - alias-chown + - alias-delete + - alias-invite-created + - alias-invite-joined + - alias-invite-revoked + - alias-protection-bypass-created + - alias-protection-bypass-exception + - alias-protection-bypass-regenerated + - alias-protection-bypass-revoked + - alias-system + - alias-user-scoped-access-denied + - alias-user-scoped-access-granted + - alias-user-scoped-access-requested + - alias-user-scoped-access-revoked + - aliases-assigned + - attack-mode-disabled + - attack-mode-enabled + - audit-log-export-downloaded + - audit-log-export-requested + - authorize-git-deployment + - auto-expose-system-envs + - avatar + - billing-settings-updated + - bulk-redirects-settings-updated + - bulk-redirects-version-promoted + - bulk-redirects-version-restored + - cert + - cert-autorenew + - cert-chown + - cert-clone + - cert-delete + - cert-renew + - cert-replace + - cert-system-create + - code-owners-config-updated + - compliance-document-downloaded + - compliance-document-previewed + - compliance-documents-bulk-downloaded + - concurrent-builds-update + - connect-attach-project + - connect-bitbucket + - connect-bitbucket-app + - connect-configuration-created + - connect-configuration-deleted + - connect-configuration-link-updated + - connect-configuration-linked + - connect-configuration-unlinked + - connect-configuration-updated + - connect-create-connector + - connect-delete-connector + - connect-delete-installation + - connect-detach-project + - connect-github + - connect-github-custom-host + - connect-github-limited + - connect-gitlab + - connect-gitlab-app + - connect-import-tokens + - connect-revoke-all-tokens + - connect-update-connector + - connect-update-trigger-destinations + - connect-upsert-installation + - custom-alert-created + - custom-alert-deleted + - custom-alert-updated + - custom-environments-settings-updated + - custom-metric-metadata-deleted + - custom-metric-metadata-updated + - custom-suffix-clear + - custom-suffix-disable + - custom-suffix-enable + - custom-suffix-pending + - custom-suffix-ready + - deploy-hook-created + - deploy-hook-deduped + - deploy-hook-deleted + - deploy-hook-processed + - deployment + - deployment-check-created + - deployment-check-deleted + - deployment-check-updated + - deployment-chown + - deployment-creation-blocked + - deployment-delete + - deployment-policy-blocked + - deployment-undeleted + - disabled-integration-installation-removed + - disconnect-bitbucket-app + - disconnect-github + - disconnect-github-custom-host + - disconnect-github-limited + - disconnect-gitlab-app + - dns-add + - dns-delete + - dns-record-internal + - dns-update + - dns-zonefile-import + - domain + - domain-buy + - domain-cdn + - domain-chown + - domain-custom-ns-change + - domain-delegated + - domain-delete + - domain-ech-change + - domain-move-in + - domain-move-out + - domain-move-out-request-sent + - domain-renew-change + - domain-service-type-updated + - domain-transfer-in + - domain-transfer-in-canceled + - domain-transfer-in-completed + - domain-zone-change + - domain-zone-change-internal + - drain-created + - drain-deleted + - drain-disabled + - drain-enabled + - drain-updated + - edge-cache-dangerously-delete-by-src-images + - edge-cache-dangerously-delete-by-tags + - edge-cache-dangerously-delete-immutable-static + - edge-cache-invalidate-by-src-images + - edge-cache-invalidate-by-tags + - edge-cache-purge-all + - edge-cache-rollback-purge + - edge-config-backup-restored + - edge-config-created + - edge-config-deleted + - edge-config-items-updated + - edge-config-schema-deleted + - edge-config-schema-updated + - edge-config-token-created + - edge-config-token-deleted + - edge-config-transfer-in + - edge-config-transfer-out + - edge-config-updated + - email + - email-notification-rule-removed + - email-notification-rule-updated + - emu-member-removed-unverified-domain + - enforce-disjunctive-production-secrets + - enforce-sensitive-environment-variables + - env-variable-add + - env-variable-delete + - env-variable-edit + - env-variable-masked + - env-variable-read + - env-variable-read:cli:dev + - env-variable-read:cli:env:add + - env-variable-read:cli:env:ls + - env-variable-read:cli:env:pull + - env-variable-read:cli:env:rm + - env-variable-read:cli:pull + - env-variable-read:unknown-source + - env-variable-read:v0:env:pull + - env-variable-rotated + - experiment-created + - experiment-deleted + - experiment-transitioned + - experiment-updated + - firewall-bypass-created + - firewall-bypass-deleted + - firewall-config-modified + - firewall-config-promoted + - firewall-config-removed + - firewall-managed-rulegroup-updated + - firewall-managed-ruleset-updated + - flag + - flag-archived + - flag-created + - flag-deleted + - flag-unarchived + - flag-updated + - flags-explorer-subscription + - flags-sdk-key + - flags-sdk-key-added + - flags-sdk-key-deleted + - flags-sdk-key-read + - flags-segment + - flags-settings + - flags-transferred + - flat-rate-cdn-auto-upgrade-consent + - git-integration-repo-push + - git_account_integration_link_added + - global-config-backup-restored + - global-config-created + - global-config-deleted + - global-config-items-updated + - global-config-schema-deleted + - global-config-schema-updated + - global-config-token-created + - global-config-token-deleted + - global-config-transfer-in + - global-config-transfer-out + - global-config-updated + - instant-rollback-created + - integration-configuration-credential-revoked + - integration-configuration-credential-rotated + - integration-configuration-owner-changed + - integration-configuration-scope-change-confirmed + - integration-configuration-transfer-in-success + - integration-configuration-transfer-out-success + - integration-configurations-disabled + - integration-installation-billing-plan-updated + - integration-installation-completed + - integration-installation-permission-updated + - integration-installation-removed + - integration-resource-redis-command-executed + - integration-resource-sql-query-executed + - integration-scope-changed + - invoice-modified + - invoice-refunded + - kms-issuer-created + - kms-issuer-deleted + - kms-issuer-key-activated + - kms-issuer-key-created + - kms-issuer-key-revoked + - kms-issuer-key-rotated + - kms-issuer-policy-created + - kms-issuer-policy-deleted + - kms-issuer-policy-updated + - kms-issuer-updated + - log-drain-created + - log-drain-deleted + - log-drain-disabled + - log-drain-enabled + - login + - login-connection-linked + - login-connection-unlinked + - manual-deployment-promotion-created + - marketplace-flex-commit-opt-in + - marketplace-integration-allowlist-updated + - microfrontend-group-added + - microfrontend-group-deleted + - microfrontend-group-updated + - microfrontend-project-added-to-group + - microfrontend-project-removed-from-group + - microfrontend-project-updated + - monitoring-alert-updated + - monitoring-disabled + - monitoring-enabled + - oauth-app-connection-created + - oauth-app-connection-removed + - oauth-app-connection-updated + - oauth-app-created + - oauth-app-deleted + - oauth-app-secret-deleted + - oauth-app-secret-generated + - oauth-app-token-created + - oauth-app-updated + - observability-disabled + - observability-enabled + - observability-plus-project-disabled + - observability-plus-project-enabled + - oidc-policy-created + - oidc-policy-deleted + - oidc-policy-updated + - oidc-policy-used-to-obtain-app-token + - organization-create + - organization-delete + - organization-dsync-group-delete + - organization-dsync-group-upsert + - organization-slug-update + - organization-team-add + - organization-team-create + - organization-team-delete + - organization-team-sso-update + - owner-blocked + - owner-soft-blocked + - owner-soft-unblocked + - owner-unblocked + - page-integrity-config-updated + - page-integrity-header-approved + - page-integrity-header-rejected + - page-integrity-inventory-cleared + - page-integrity-resource-approved + - page-integrity-resource-deleted + - page-integrity-resource-rejected + - page-integrity-script-approval-rule-created + - page-integrity-script-approval-rule-deleted + - passkey-created + - passkey-deleted + - passkey-updated + - passport-access-granted + - password-protection-disabled + - password-protection-enabled + - payment-method-added + - payment-method-default-updated + - payment-method-removed + - plan + - preview-deployment-suffix-disabled + - preview-deployment-suffix-enabled + - preview-deployment-suffix-update + - privatelink-endpoint-created + - privatelink-endpoint-deleted + - privatelink-endpoint-updated + - production-branch-updated + - project-add-alias + - project-add-redirect + - project-affected-projects-deployments-updated + - project-alias-configured-change + - project-analytics-disabled + - project-analytics-enabled + - project-auto-assign-custom-production-domains-updated + - project-automation-bypass + - project-avatar-update + - project-build-command-updated + - project-build-logs-and-source-protection-updated + - project-build-machine-updated + - project-card-widget-preference-updated + - project-client-cert-delete + - project-client-cert-upload + - project-connect-configurations + - project-consolidated-git-commit-status-updated + - project-created + - project-cron-jobs-toggled + - project-custom-environment-created + - project-custom-environment-deleted + - project-custom-environment-updated + - project-customer-success-code-visibility-updated + - project-delete + - project-deployment-policy-updated + - project-deployment-retention-updated + - project-directory-listing + - project-domain-deleted + - project-domain-moved + - project-domain-unverified + - project-domain-updated + - project-domain-verified + - project-elastic-concurrency-updated + - project-expiration-locked + - project-expiration-reached + - project-expiration-scheduled + - project-expiration-unlocked + - project-external-rewrite-caching-updated + - project-framework-updated + - project-function-cpu-memory + - project-function-failover + - project-function-max-duration + - project-function-regions + - project-functions-beta-updated + - project-functions-fluid-disabled + - project-functions-fluid-enabled + - project-git-commit-comments-toggled + - project-git-commit-status-toggled + - project-git-create-deployments-toggled + - project-git-credential-bound-created + - project-git-credential-bound-deleted + - project-git-credential-bound-updated + - project-git-credential-grant-created + - project-git-credential-grant-deleted + - project-git-credential-grant-updated + - project-git-fork-protection-updated + - project-git-lfs-toggled + - project-git-pr-comments-toggled + - project-git-repository-connected + - project-git-repository-disconnected + - project-git-repository-dispatch-events-toggled + - project-git-require-verified-commits-toggled + - project-ignored-build-step-updated + - project-install-command-updated + - project-member-added + - project-member-invited + - project-member-removed + - project-member-removed-batch + - project-member-updated + - project-move-in-success + - project-move-out-failed + - project-move-out-started + - project-move-out-success + - project-name + - project-node-version-updated + - project-oidc-issuer-mode-updated + - project-oidc-token-created + - project-options-allowlist + - project-output-directory-updated + - project-passport-updated + - project-password-protection + - project-paused + - project-preview-deployment-suffix + - project-preview-environment-branch-tracking-updated + - project-prioritize-production-builds-updated + - project-program-enrollment-changed + - project-protected-sourcemaps-updated + - project-rollback-description-updated + - project-rolling-release-aborted + - project-rolling-release-approved + - project-rolling-release-completed + - project-rolling-release-configured + - project-rolling-release-continued + - project-rolling-release-disabled + - project-rolling-release-enabled + - project-rolling-release-paused + - project-rolling-release-started + - project-rolling-release-suggested-actions-generated + - project-rolling-release-timer + - project-root-directory-updated + - project-routes-version-promoted + - project-routes-version-restored + - project-sandbox-config-updated + - project-sandbox-url-protection-updated + - project-skew-protection-allowed-domains-updated + - project-skew-protection-max-age-updated + - project-skew-protection-threshold-updated + - project-source-files-outside-root-directory-updated + - project-speed-insights-disabled + - project-speed-insights-enabled + - project-speed-insights-free-data-started + - project-sso-protection + - project-static-ips-updated + - project-trusted-ips + - project-trusted-sources + - project-unpaused + - project-web-analytics-disabled + - project-web-analytics-enabled + - protected-git-scope-added + - protected-git-scope-removed + - runtime-cache-purge-all + - saml-connection-created + - saml-connection-deleted + - sandbox-alias-assigned + - sandbox-alias-delete + - sandbox-drive-created + - sandbox-drive-deleted + - sandbox-snapshot-regions-updated + - scale + - scale-auto + - secondary-email-added + - secondary-email-removed + - secondary-email-verified + - secret-add + - secret-delete + - secret-rename + - security-list-created + - security-list-deleted + - security-list-updated + - security-plus-updated + - set-bio + - set-name + - set-profiles + - set-scale + - shared-env-variable-create + - shared-env-variable-delete + - shared-env-variable-read + - shared-env-variable-repo-link + - shared-env-variable-repo-unlink + - shared-env-variable-update + - show-ip-addresses + - signup + - signup-via-bitbucket + - signup-via-github + - signup-via-gitlab + - speed-insights-settings-updated + - spend-created + - spend-deleted + - spend-updated + - sso-login + - storage-accept-tos + - storage-access-token-set + - storage-accessed-data-browser + - storage-connect-project + - storage-create + - storage-delete + - storage-disconnect-project + - storage-disconnect-projects + - storage-inactive-store-deleted + - storage-reset-credentials + - storage-resource-repl-command + - storage-set-locked + - storage-transfer-in-success + - storage-transfer-out-success + - storage-transfer-request-created + - storage-update + - storage-update-project-connection + - storage-upgrade-project-connection-to-oidc + - storage-view-secret + - strict-connectors + - strict-deployment-protection-settings + - strict-password-protection-settings + - strict-shareable-links + - subscription-created + - subscription-product-added + - subscription-product-removed + - subscription-updated + - support-session-created + - team + - team-agent-billing-migration-decision-changed + - team-avatar-update + - team-collaboration-settings-updated + - team-default-build-machine-updated + - team-default-passport-updated + - team-delete + - team-deployment-policy-updated + - team-domain-verification-created + - team-domain-verification-deleted + - team-domain-verification-verified + - team-email-domain-update + - team-emu-updated + - team-ended-trial + - team-firewall-config-modified + - team-firewall-config-promoted + - team-git-repository-dispatch-events-toggled + - team-git-require-verified-commits-toggled + - team-invite-bulk-delete + - team-invite-code-reset + - team-invite-link-created + - team-invite-link-deleted + - team-ip-blocking-rules-created + - team-ip-blocking-rules-removed + - team-member-add + - team-member-confirm-request + - team-member-decline-request + - team-member-delete + - team-member-entitlement-added + - team-member-entitlement-canceled + - team-member-entitlement-reactivated + - team-member-entitlement-removed + - team-member-join + - team-member-leave + - team-member-request-access + - team-member-role-update + - team-member-sso-authorization-attempt + - team-mfa-enforcement-updated + - team-name-update + - team-paid-invoice + - team-program-enrollment-changed + - team-remote-caching-purge + - team-remote-caching-update + - team-saml-enforced + - team-saml-roles + - team-slug-update + - team-tokens-invalidated + - tracing-configured + - tracing-disabled + - tracing-paused + - tracing-resumed + - unlink-login-connection + - update-account-flow-dismissed + - update-account-flow-triggered + - user-auto-block-configured + - user-blocked + - user-delete + - user-delete-requested + - user-emu-account-archived + - user-emu-account-deleted + - user-emu-account-recovered + - user-emu-account-update-opted-in + - user-emu-account-update-opted-out + - user-emu-recovery-email-sent + - user-emu-recovery-initiated + - user-emu-toggled + - user-mfa-challenge-failed + - user-mfa-challenge-initiated + - user-mfa-challenge-verified + - user-mfa-change-failed + - user-mfa-configuration-updated + - user-mfa-recovery-code-used + - user-mfa-recovery-codes-regenerated + - user-mfa-removed + - user-mfa-setup-skipped + - user-mfa-totp-verification-started + - user-mfa-totp-verified + - user-phone-removed + - user-phone-updated + - user-primary-email-updated + - user-provider-email-claim-evaluated + - user-sudo-mode-removed + - user-token-created + - user-token-deleted + - user-tokens-deleted + - user-unblocked + - username + - v0-chat-ai-usage + - v0-chat-created + - v0-chat-message-sent + - vcr-image-deleted + - vcr-image-pushed + - vcr-repository-created + - vcr-repository-deleted + - vcr-repository-permission-added + - vcr-repository-permission-removed + - vcr-repository-permissions-cleared + - vcr-repository-visibility-changed + - vercel-agent-elevated-permissions-approved + - vercel-agent-elevated-permissions-requested + - vercel-agent-session-created + - vercel-agent-team-trial-credits-applied + - vercel-app-installation-request-dismissed + - vercel-app-installation-requested + - vercel-app-installation-updated + - vercel-app-installed + - vercel-app-tokens-revoked + - vercel-app-uninstalled + - vercel-toolbar + - vpc-peering-connection-accepted + - vpc-peering-connection-deleted + - vpc-peering-connection-rejected + - vpc-peering-connection-updated + - vulnerability-banner-dismissed + - web-analytics-tier-updated + - webhook-created + - webhook-deleted + - webhook-updated + - workflow-deployment-key-accessed + description: The name of the event type. + example: deployment-created + description: + type: string + description: Description of the event, visible to users in the Activity dashboard and docs. + categories: + items: + type: string + enum: + - account + - ai + - ai-gateway + - billing + - connect + - deployment + - domain + - edge + - env-variable + - feature-flags + - firewall + - integration + - microfrontends + - network + - observability + - other + - project + - security + - storage + - team + - v0 + - vercel-app + - workflow + example: + - deployment + description: Categories that group this event type with related event types. + type: array + description: Categories that group this event type with related event types. + example: + - deployment + deprecated: + type: boolean + enum: + - false + - true + description: Present only when this event type is deprecated. + replacedBy: + items: + type: string + enum: + - access-group-created + - access-group-deleted + - access-group-project-updated + - access-group-updated + - access-group-user-added + - access-group-user-removed + - admin-agentic-provisioning-account-unlinked + - admin-plan-updated + - admin-secondary-email-added + - admin-secondary-email-removed + - admin-team-name-update + - admin-team-slug-update + - admin-user-delete + - admin-user-primary-email-updated + - admin-username-updated + - agentic-provisioning-account-blocked + - agentic-provisioning-account-linked + - agentic-provisioning-account-relinked + - agentic-provisioning-account-unlinked + - agentic-provisioning-credentials-rotated + - agentic-provisioning-plan-changed + - agentic-provisioning-team-created + - ai-alert-investigation + - ai-code-review + - ai-gateway-api-key-created + - ai-gateway-api-key-deleted + - ai-gateway-api-key-quota-updated + - ai-gateway-auto-reload-updated + - ai-gateway-budget-default-updated + - ai-gateway-byok-credential-created + - ai-gateway-byok-credential-deleted + - ai-gateway-byok-credential-updated + - ai-gateway-byok-model-mappings-updated + - ai-gateway-credits-purchased + - ai-gateway-guardrails-updated + - ai-gateway-hipaa-compliance-toggled + - ai-gateway-inference-regions-updated + - ai-gateway-model-allowlist-models-updated + - ai-gateway-model-allowlist-toggled + - ai-gateway-private-model-created + - ai-gateway-private-model-deleted + - ai-gateway-private-model-updated + - ai-gateway-private-provider-created + - ai-gateway-private-provider-deleted + - ai-gateway-private-provider-updated + - ai-gateway-prompt-training-opt-out-toggled + - ai-gateway-provider-allowlist-providers-updated + - ai-gateway-provider-allowlist-toggled + - ai-gateway-rule-created + - ai-gateway-rule-deleted + - ai-gateway-rule-updated + - ai-gateway-scope-budget-updated + - ai-gateway-transcripts-default-disabled + - ai-gateway-transcripts-default-enabled + - ai-gateway-transcripts-disabled + - ai-gateway-transcripts-enabled + - ai-gateway-transcripts-retention-updated + - ai-gateway-virtual-model-config-archived + - ai-gateway-virtual-model-config-created + - ai-gateway-virtual-model-config-deleted + - ai-gateway-virtual-model-config-restored + - ai-gateway-virtual-model-config-updated + - ai-gateway-zero-data-retention-toggled + - ai-omniagent + - alert-investigation-project-allowlist-updated + - alert-rule-created + - alert-rule-deleted + - alert-rule-updated + - alias + - alias-chown + - alias-delete + - alias-invite-created + - alias-invite-joined + - alias-invite-revoked + - alias-protection-bypass-created + - alias-protection-bypass-exception + - alias-protection-bypass-regenerated + - alias-protection-bypass-revoked + - alias-system + - alias-user-scoped-access-denied + - alias-user-scoped-access-granted + - alias-user-scoped-access-requested + - alias-user-scoped-access-revoked + - aliases-assigned + - attack-mode-disabled + - attack-mode-enabled + - audit-log-export-downloaded + - audit-log-export-requested + - authorize-git-deployment + - auto-expose-system-envs + - avatar + - billing-settings-updated + - bulk-redirects-settings-updated + - bulk-redirects-version-promoted + - bulk-redirects-version-restored + - cert + - cert-autorenew + - cert-chown + - cert-clone + - cert-delete + - cert-renew + - cert-replace + - cert-system-create + - code-owners-config-updated + - compliance-document-downloaded + - compliance-document-previewed + - compliance-documents-bulk-downloaded + - concurrent-builds-update + - connect-attach-project + - connect-bitbucket + - connect-bitbucket-app + - connect-configuration-created + - connect-configuration-deleted + - connect-configuration-link-updated + - connect-configuration-linked + - connect-configuration-unlinked + - connect-configuration-updated + - connect-create-connector + - connect-delete-connector + - connect-delete-installation + - connect-detach-project + - connect-github + - connect-github-custom-host + - connect-github-limited + - connect-gitlab + - connect-gitlab-app + - connect-import-tokens + - connect-revoke-all-tokens + - connect-update-connector + - connect-update-trigger-destinations + - connect-upsert-installation + - custom-alert-created + - custom-alert-deleted + - custom-alert-updated + - custom-environments-settings-updated + - custom-metric-metadata-deleted + - custom-metric-metadata-updated + - custom-suffix-clear + - custom-suffix-disable + - custom-suffix-enable + - custom-suffix-pending + - custom-suffix-ready + - deploy-hook-created + - deploy-hook-deduped + - deploy-hook-deleted + - deploy-hook-processed + - deployment + - deployment-check-created + - deployment-check-deleted + - deployment-check-updated + - deployment-chown + - deployment-creation-blocked + - deployment-delete + - deployment-policy-blocked + - deployment-undeleted + - disabled-integration-installation-removed + - disconnect-bitbucket-app + - disconnect-github + - disconnect-github-custom-host + - disconnect-github-limited + - disconnect-gitlab-app + - dns-add + - dns-delete + - dns-record-internal + - dns-update + - dns-zonefile-import + - domain + - domain-buy + - domain-cdn + - domain-chown + - domain-custom-ns-change + - domain-delegated + - domain-delete + - domain-ech-change + - domain-move-in + - domain-move-out + - domain-move-out-request-sent + - domain-renew-change + - domain-service-type-updated + - domain-transfer-in + - domain-transfer-in-canceled + - domain-transfer-in-completed + - domain-zone-change + - domain-zone-change-internal + - drain-created + - drain-deleted + - drain-disabled + - drain-enabled + - drain-updated + - edge-cache-dangerously-delete-by-src-images + - edge-cache-dangerously-delete-by-tags + - edge-cache-dangerously-delete-immutable-static + - edge-cache-invalidate-by-src-images + - edge-cache-invalidate-by-tags + - edge-cache-purge-all + - edge-cache-rollback-purge + - edge-config-backup-restored + - edge-config-created + - edge-config-deleted + - edge-config-items-updated + - edge-config-schema-deleted + - edge-config-schema-updated + - edge-config-token-created + - edge-config-token-deleted + - edge-config-transfer-in + - edge-config-transfer-out + - edge-config-updated + - email + - email-notification-rule-removed + - email-notification-rule-updated + - emu-member-removed-unverified-domain + - enforce-disjunctive-production-secrets + - enforce-sensitive-environment-variables + - env-variable-add + - env-variable-delete + - env-variable-edit + - env-variable-masked + - env-variable-read + - env-variable-read:cli:dev + - env-variable-read:cli:env:add + - env-variable-read:cli:env:ls + - env-variable-read:cli:env:pull + - env-variable-read:cli:env:rm + - env-variable-read:cli:pull + - env-variable-read:unknown-source + - env-variable-read:v0:env:pull + - env-variable-rotated + - experiment-created + - experiment-deleted + - experiment-transitioned + - experiment-updated + - firewall-bypass-created + - firewall-bypass-deleted + - firewall-config-modified + - firewall-config-promoted + - firewall-config-removed + - firewall-managed-rulegroup-updated + - firewall-managed-ruleset-updated + - flag + - flag-archived + - flag-created + - flag-deleted + - flag-unarchived + - flag-updated + - flags-explorer-subscription + - flags-sdk-key + - flags-sdk-key-added + - flags-sdk-key-deleted + - flags-sdk-key-read + - flags-segment + - flags-settings + - flags-transferred + - flat-rate-cdn-auto-upgrade-consent + - git-integration-repo-push + - git_account_integration_link_added + - global-config-backup-restored + - global-config-created + - global-config-deleted + - global-config-items-updated + - global-config-schema-deleted + - global-config-schema-updated + - global-config-token-created + - global-config-token-deleted + - global-config-transfer-in + - global-config-transfer-out + - global-config-updated + - instant-rollback-created + - integration-configuration-credential-revoked + - integration-configuration-credential-rotated + - integration-configuration-owner-changed + - integration-configuration-scope-change-confirmed + - integration-configuration-transfer-in-success + - integration-configuration-transfer-out-success + - integration-configurations-disabled + - integration-installation-billing-plan-updated + - integration-installation-completed + - integration-installation-permission-updated + - integration-installation-removed + - integration-resource-redis-command-executed + - integration-resource-sql-query-executed + - integration-scope-changed + - invoice-modified + - invoice-refunded + - kms-issuer-created + - kms-issuer-deleted + - kms-issuer-key-activated + - kms-issuer-key-created + - kms-issuer-key-revoked + - kms-issuer-key-rotated + - kms-issuer-policy-created + - kms-issuer-policy-deleted + - kms-issuer-policy-updated + - kms-issuer-updated + - log-drain-created + - log-drain-deleted + - log-drain-disabled + - log-drain-enabled + - login + - login-connection-linked + - login-connection-unlinked + - manual-deployment-promotion-created + - marketplace-flex-commit-opt-in + - marketplace-integration-allowlist-updated + - microfrontend-group-added + - microfrontend-group-deleted + - microfrontend-group-updated + - microfrontend-project-added-to-group + - microfrontend-project-removed-from-group + - microfrontend-project-updated + - monitoring-alert-updated + - monitoring-disabled + - monitoring-enabled + - oauth-app-connection-created + - oauth-app-connection-removed + - oauth-app-connection-updated + - oauth-app-created + - oauth-app-deleted + - oauth-app-secret-deleted + - oauth-app-secret-generated + - oauth-app-token-created + - oauth-app-updated + - observability-disabled + - observability-enabled + - observability-plus-project-disabled + - observability-plus-project-enabled + - oidc-policy-created + - oidc-policy-deleted + - oidc-policy-updated + - oidc-policy-used-to-obtain-app-token + - organization-create + - organization-delete + - organization-dsync-group-delete + - organization-dsync-group-upsert + - organization-slug-update + - organization-team-add + - organization-team-create + - organization-team-delete + - organization-team-sso-update + - owner-blocked + - owner-soft-blocked + - owner-soft-unblocked + - owner-unblocked + - page-integrity-config-updated + - page-integrity-header-approved + - page-integrity-header-rejected + - page-integrity-inventory-cleared + - page-integrity-resource-approved + - page-integrity-resource-deleted + - page-integrity-resource-rejected + - page-integrity-script-approval-rule-created + - page-integrity-script-approval-rule-deleted + - passkey-created + - passkey-deleted + - passkey-updated + - passport-access-granted + - password-protection-disabled + - password-protection-enabled + - payment-method-added + - payment-method-default-updated + - payment-method-removed + - plan + - preview-deployment-suffix-disabled + - preview-deployment-suffix-enabled + - preview-deployment-suffix-update + - privatelink-endpoint-created + - privatelink-endpoint-deleted + - privatelink-endpoint-updated + - production-branch-updated + - project-add-alias + - project-add-redirect + - project-affected-projects-deployments-updated + - project-alias-configured-change + - project-analytics-disabled + - project-analytics-enabled + - project-auto-assign-custom-production-domains-updated + - project-automation-bypass + - project-avatar-update + - project-build-command-updated + - project-build-logs-and-source-protection-updated + - project-build-machine-updated + - project-card-widget-preference-updated + - project-client-cert-delete + - project-client-cert-upload + - project-connect-configurations + - project-consolidated-git-commit-status-updated + - project-created + - project-cron-jobs-toggled + - project-custom-environment-created + - project-custom-environment-deleted + - project-custom-environment-updated + - project-customer-success-code-visibility-updated + - project-delete + - project-deployment-policy-updated + - project-deployment-retention-updated + - project-directory-listing + - project-domain-deleted + - project-domain-moved + - project-domain-unverified + - project-domain-updated + - project-domain-verified + - project-elastic-concurrency-updated + - project-expiration-locked + - project-expiration-reached + - project-expiration-scheduled + - project-expiration-unlocked + - project-external-rewrite-caching-updated + - project-framework-updated + - project-function-cpu-memory + - project-function-failover + - project-function-max-duration + - project-function-regions + - project-functions-beta-updated + - project-functions-fluid-disabled + - project-functions-fluid-enabled + - project-git-commit-comments-toggled + - project-git-commit-status-toggled + - project-git-create-deployments-toggled + - project-git-credential-bound-created + - project-git-credential-bound-deleted + - project-git-credential-bound-updated + - project-git-credential-grant-created + - project-git-credential-grant-deleted + - project-git-credential-grant-updated + - project-git-fork-protection-updated + - project-git-lfs-toggled + - project-git-pr-comments-toggled + - project-git-repository-connected + - project-git-repository-disconnected + - project-git-repository-dispatch-events-toggled + - project-git-require-verified-commits-toggled + - project-ignored-build-step-updated + - project-install-command-updated + - project-member-added + - project-member-invited + - project-member-removed + - project-member-removed-batch + - project-member-updated + - project-move-in-success + - project-move-out-failed + - project-move-out-started + - project-move-out-success + - project-name + - project-node-version-updated + - project-oidc-issuer-mode-updated + - project-oidc-token-created + - project-options-allowlist + - project-output-directory-updated + - project-passport-updated + - project-password-protection + - project-paused + - project-preview-deployment-suffix + - project-preview-environment-branch-tracking-updated + - project-prioritize-production-builds-updated + - project-program-enrollment-changed + - project-protected-sourcemaps-updated + - project-rollback-description-updated + - project-rolling-release-aborted + - project-rolling-release-approved + - project-rolling-release-completed + - project-rolling-release-configured + - project-rolling-release-continued + - project-rolling-release-disabled + - project-rolling-release-enabled + - project-rolling-release-paused + - project-rolling-release-started + - project-rolling-release-suggested-actions-generated + - project-rolling-release-timer + - project-root-directory-updated + - project-routes-version-promoted + - project-routes-version-restored + - project-sandbox-config-updated + - project-sandbox-url-protection-updated + - project-skew-protection-allowed-domains-updated + - project-skew-protection-max-age-updated + - project-skew-protection-threshold-updated + - project-source-files-outside-root-directory-updated + - project-speed-insights-disabled + - project-speed-insights-enabled + - project-speed-insights-free-data-started + - project-sso-protection + - project-static-ips-updated + - project-trusted-ips + - project-trusted-sources + - project-unpaused + - project-web-analytics-disabled + - project-web-analytics-enabled + - protected-git-scope-added + - protected-git-scope-removed + - runtime-cache-purge-all + - saml-connection-created + - saml-connection-deleted + - sandbox-alias-assigned + - sandbox-alias-delete + - sandbox-drive-created + - sandbox-drive-deleted + - sandbox-snapshot-regions-updated + - scale + - scale-auto + - secondary-email-added + - secondary-email-removed + - secondary-email-verified + - secret-add + - secret-delete + - secret-rename + - security-list-created + - security-list-deleted + - security-list-updated + - security-plus-updated + - set-bio + - set-name + - set-profiles + - set-scale + - shared-env-variable-create + - shared-env-variable-delete + - shared-env-variable-read + - shared-env-variable-repo-link + - shared-env-variable-repo-unlink + - shared-env-variable-update + - show-ip-addresses + - signup + - signup-via-bitbucket + - signup-via-github + - signup-via-gitlab + - speed-insights-settings-updated + - spend-created + - spend-deleted + - spend-updated + - sso-login + - storage-accept-tos + - storage-access-token-set + - storage-accessed-data-browser + - storage-connect-project + - storage-create + - storage-delete + - storage-disconnect-project + - storage-disconnect-projects + - storage-inactive-store-deleted + - storage-reset-credentials + - storage-resource-repl-command + - storage-set-locked + - storage-transfer-in-success + - storage-transfer-out-success + - storage-transfer-request-created + - storage-update + - storage-update-project-connection + - storage-upgrade-project-connection-to-oidc + - storage-view-secret + - strict-connectors + - strict-deployment-protection-settings + - strict-password-protection-settings + - strict-shareable-links + - subscription-created + - subscription-product-added + - subscription-product-removed + - subscription-updated + - support-session-created + - team + - team-agent-billing-migration-decision-changed + - team-avatar-update + - team-collaboration-settings-updated + - team-default-build-machine-updated + - team-default-passport-updated + - team-delete + - team-deployment-policy-updated + - team-domain-verification-created + - team-domain-verification-deleted + - team-domain-verification-verified + - team-email-domain-update + - team-emu-updated + - team-ended-trial + - team-firewall-config-modified + - team-firewall-config-promoted + - team-git-repository-dispatch-events-toggled + - team-git-require-verified-commits-toggled + - team-invite-bulk-delete + - team-invite-code-reset + - team-invite-link-created + - team-invite-link-deleted + - team-ip-blocking-rules-created + - team-ip-blocking-rules-removed + - team-member-add + - team-member-confirm-request + - team-member-decline-request + - team-member-delete + - team-member-entitlement-added + - team-member-entitlement-canceled + - team-member-entitlement-reactivated + - team-member-entitlement-removed + - team-member-join + - team-member-leave + - team-member-request-access + - team-member-role-update + - team-member-sso-authorization-attempt + - team-mfa-enforcement-updated + - team-name-update + - team-paid-invoice + - team-program-enrollment-changed + - team-remote-caching-purge + - team-remote-caching-update + - team-saml-enforced + - team-saml-roles + - team-slug-update + - team-tokens-invalidated + - tracing-configured + - tracing-disabled + - tracing-paused + - tracing-resumed + - unlink-login-connection + - update-account-flow-dismissed + - update-account-flow-triggered + - user-auto-block-configured + - user-blocked + - user-delete + - user-delete-requested + - user-emu-account-archived + - user-emu-account-deleted + - user-emu-account-recovered + - user-emu-account-update-opted-in + - user-emu-account-update-opted-out + - user-emu-recovery-email-sent + - user-emu-recovery-initiated + - user-emu-toggled + - user-mfa-challenge-failed + - user-mfa-challenge-initiated + - user-mfa-challenge-verified + - user-mfa-change-failed + - user-mfa-configuration-updated + - user-mfa-recovery-code-used + - user-mfa-recovery-codes-regenerated + - user-mfa-removed + - user-mfa-setup-skipped + - user-mfa-totp-verification-started + - user-mfa-totp-verified + - user-phone-removed + - user-phone-updated + - user-primary-email-updated + - user-provider-email-claim-evaluated + - user-sudo-mode-removed + - user-token-created + - user-token-deleted + - user-tokens-deleted + - user-unblocked + - username + - v0-chat-ai-usage + - v0-chat-created + - v0-chat-message-sent + - vcr-image-deleted + - vcr-image-pushed + - vcr-repository-created + - vcr-repository-deleted + - vcr-repository-permission-added + - vcr-repository-permission-removed + - vcr-repository-permissions-cleared + - vcr-repository-visibility-changed + - vercel-agent-elevated-permissions-approved + - vercel-agent-elevated-permissions-requested + - vercel-agent-session-created + - vercel-agent-team-trial-credits-applied + - vercel-app-installation-request-dismissed + - vercel-app-installation-requested + - vercel-app-installation-updated + - vercel-app-installed + - vercel-app-tokens-revoked + - vercel-app-uninstalled + - vercel-toolbar + - vpc-peering-connection-accepted + - vpc-peering-connection-deleted + - vpc-peering-connection-rejected + - vpc-peering-connection-updated + - vulnerability-banner-dismissed + - web-analytics-tier-updated + - webhook-created + - webhook-deleted + - webhook-updated + - workflow-deployment-key-accessed + description: Event type names that supersede this deprecated event type. + type: array + description: Event type names that supersede this deprecated event type. + required: + - categories + - description + - name + type: object + description: A user-facing event type. x-stackQL-resources: events: id: vercel.user.events name: events title: Events methods: - list_user_events: + list: operation: $ref: '#/paths/~1v3~1events/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.events - _list_user_events: + request: + nativeCasing: camel + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/events/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + event_types: + id: vercel.user.event_types + name: event_types + title: Event Types + methods: + list: operation: - $ref: '#/paths/~1v3~1events/get' + $ref: '#/paths/~1v1~1events~1types/get' response: mediaType: application/json openAPIDocKey: '200' + objectKey: $.types + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/events/methods/list_user_events' + - $ref: '#/components/x-stackQL-resources/event_types/methods/list' insert: [] update: [] delete: [] + replace: [] user: id: vercel.user.user name: user title: User methods: - get_auth_user: + get: operation: $ref: '#/paths/~1v2~1user/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.user - _get_auth_user: - operation: - $ref: '#/paths/~1v2~1user/get' - response: - mediaType: application/json - openAPIDocKey: '200' - request_delete: + request: + nativeCasing: camel + delete: operation: $ref: '#/paths/~1v1~1user/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '202' + request: + nativeCasing: camel sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/user/methods/get_auth_user' + - $ref: '#/components/x-stackQL-resources/user/methods/get' insert: [] update: [] delete: - - $ref: '#/components/x-stackQL-resources/user/methods/request_delete' -paths: - /v3/events: - get: - description: 'Retrieves a list of "events" generated by the User on Vercel. Events are generated when the User performs a particular action, such as logging in, creating a deployment, and joining a Team (just to name a few). When the `teamId` parameter is supplied, then the events that are returned will be in relation to the Team that was specified.' - operationId: listUserEvents - security: - - bearerToken: [] - summary: List User Events - tags: - - user - responses: - '200': - description: Successful response. - content: - application/json: - schema: - properties: - events: - items: - $ref: '#/components/schemas/UserEvent' - type: array - description: Array of events generated by the User. - required: - - events - type: object - description: Successful response. - '400': - description: One of the provided values in the request query is invalid. - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: - - name: limit - description: Maximum number of items which may be returned. - in: query - schema: - description: Maximum number of items which may be returned. - example: 20 - type: number - - name: since - description: Timestamp to only include items created since then. - in: query - schema: - description: Timestamp to only include items created since then. - example: '2019-12-08T10:00:38.976Z' - type: string - - name: until - description: Timestamp to only include items created until then. - in: query - schema: - description: Timestamp to only include items created until then. - example: '2019-12-09T23:00:38.976Z' - type: string - - name: types - description: Comma-delimited list of event \"types\" to filter the results by. - in: query - schema: - description: Comma-delimited list of event \"types\" to filter the results by. - example: 'login,team-member-join,domain-buy' - type: string - - name: userId - description: 'When retrieving events for a Team, the `userId` parameter may be specified to filter events generated by a specific member of the Team.' - in: query - schema: - description: 'When retrieving events for a Team, the `userId` parameter may be specified to filter events generated by a specific member of the Team.' - example: aeIInYVk59zbFF2SxfyxxmuO - type: string - - description: The Team identifier or slug to perform the request on behalf of. - in: query - name: teamId - required: true - schema: - type: string - /v2/user: - get: - description: Retrieves information related to the currently authenticated User. - operationId: getAuthUser - security: - - bearerToken: [] - summary: Get the User - tags: - - user - responses: - '200': - description: Successful response. - content: - application/json: - schema: - properties: - user: - oneOf: - - $ref: '#/components/schemas/AuthUser' - - $ref: '#/components/schemas/AuthUserLimited' - required: - - user - type: object - description: Successful response. - '302': - description: '' - '400': - description: '' - '401': - description: '' - '403': - description: You do not have permission to access this resource. - parameters: [] - /v1/user: - delete: - description: 'Initiates the deletion process for the currently authenticated User, by sending a deletion confirmation email. The email contains a link that the user needs to visit in order to proceed with the deletion process.' - operationId: requestDelete - security: - - bearerToken: [] - summary: Delete User Account - tags: - - user - responses: - '202': - description: 'Response indicating that the User deletion process has been initiated, and a confirmation email has been sent.' - content: - application/json: - schema: - properties: - id: - type: string - description: Unique identifier of the User who has initiated deletion. - email: - type: string - description: Email address of the User who has initiated deletion. - message: - type: string - description: User deletion progress status. - example: Verification email sent - required: - - id - - email - - message - type: object - '400': - description: One of the provided values in the request body is invalid. - '403': - description: You do not have permission to access this resource. - parameters: [] - requestBody: - content: - application/json: - schema: - type: object - additionalProperties: false - properties: - reasons: - type: array - description: Optional array of objects that describe the reason why the User account is being deleted. - items: - type: object - description: An object describing the reason why the User account is being deleted. - required: - - slug - - description - additionalProperties: false - properties: - slug: - type: string - description: Idenitifier slug of the reason why the User account is being deleted. - description: - type: string - description: Description of the reason why the User account is being deleted. + - $ref: '#/components/x-stackQL-resources/user/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/vcr.yaml b/providers/src/vercel/v00.00.00000/services/vcr.yaml new file mode 100644 index 00000000..bc71d67f --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/vcr.yaml @@ -0,0 +1,2414 @@ +openapi: 3.0.3 +info: + title: vcr API + description: vercel vcr API + version: 0.0.1 +paths: + /v1/vcr/repository: + post: + description: Create a container registry repository for a project. + operationId: createRepository + security: + - bearerToken: [] + summary: Create a repository + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + repository: + $ref: '#/components/schemas/VcrRepository' + required: + - repository + type: object + '400': + description: One of the provided values in the request body is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '409': + description: '' + '410': + description: '' + parameters: + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + required: + - projectId + - name + properties: + projectId: + type: string + description: Project ID. Missing or empty values return HTTP 400. + name: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + get: + description: List container registry repositories for a project. + operationId: listRepositories + security: + - bearerToken: [] + summary: List repositories + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/VcrRepositoryList' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 1000 + - name: cursor + description: Opaque pagination cursor returned by a previous list response. + in: query + required: false + schema: + type: string + maxLength: 1024 + description: Opaque pagination cursor returned by a previous list response. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}: + get: + description: Fetch a container registry repository for a project by ID or name. + operationId: getRepository + security: + - bearerToken: [] + summary: Get a repository + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + repository: + $ref: '#/components/schemas/VcrRepository' + required: + - repository + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + delete: + description: Schedule a repository for deletion. The repository is marked so it disappears from list/get immediately; subscriber-vcr reclaims every image (manifests, blobs, tags and rows) and finally deletes the repository row asynchronously via the VcrRepositoryRemoved event. + operationId: deleteRepository + security: + - bearerToken: [] + summary: Delete a repository + tags: + - vcr + responses: + '202': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/images: + get: + description: List images for a container registry repository, including their tags. + operationId: listRepositoryImages + security: + - bearerToken: [] + summary: List repository images + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/VcrImageList' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + - name: cursor + description: Opaque pagination cursor returned by a previous list response. + in: query + required: false + schema: + type: string + maxLength: 1024 + description: Opaque pagination cursor returned by a previous list response. + - name: untagged + in: query + required: false + schema: + type: boolean + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/permissions: + post: + description: Grant a team access to a VCR repository. Sharing applies to the whole repository. + operationId: addRepositoryPermission + security: + - bearerToken: [] + summary: Add a repository permission + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + permission: + $ref: '#/components/schemas/VcrRepositoryPermission' + required: + - permission + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + teamId: + type: string + pattern: ^team_[a-zA-Z0-9]+$ + maxLength: 64 + description: ID of a team that is granted access to a repository. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + teamSlug: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 64 + description: Slug of a team that is granted access to a repository. + example: my-team + delete: + description: Revoke a team's access to a VCR repository. + operationId: removeRepositoryPermission + security: + - bearerToken: [] + summary: Remove a repository permission + tags: + - vcr + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: false + properties: + teamId: + type: string + pattern: ^team_[a-zA-Z0-9]+$ + maxLength: 64 + description: ID of a team that is granted access to a repository. + example: team_LLHUOMOoDlqOp8wPE4kFo9pE + teamSlug: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 64 + description: Slug of a team that is granted access to a repository. + example: my-team + get: + description: List the teams a VCR repository is shared with. + operationId: listRepositoryPermissions + security: + - bearerToken: [] + summary: List repository permissions + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/VcrRepositoryPermissionList' + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + - name: cursor + description: Opaque pagination cursor returned by a previous list response. + in: query + required: false + schema: + type: string + maxLength: 1024 + description: Opaque pagination cursor returned by a previous list response. + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/permissions/all: + delete: + description: Revoke every team's access to a VCR repository. Clearing an unshared repository is a no-op. + operationId: clearRepositoryPermissions + security: + - bearerToken: [] + summary: Clear all repository permissions + tags: + - vcr + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/tags: + get: + description: List a repository's tags. + operationId: listRepositoryTags + security: + - bearerToken: [] + summary: List repository tags + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + tags: + items: + properties: + tag: + type: string + manifestDigest: + type: string + imageId: + type: string + kind: + type: string + enum: + - attestation + - index + - manifest + platform: + type: string + arch: + type: string + pushedBy: + type: string + status: + nullable: true + type: string + enum: + - preparing + - ready + - unoptimized + - null + sizeInBytes: + type: number + createdAt: + type: string + updatedAt: + type: string + required: + - createdAt + - imageId + - kind + - manifestDigest + - sizeInBytes + - status + - tag + - updatedAt + type: object + type: array + nextCursor: + type: string + required: + - tags + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - name: limit + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + - name: cursor + in: query + required: false + schema: + type: string + - name: sortBy + description: Field to sort the non-pinned tags by. + in: query + required: false + schema: + description: Field to sort the non-pinned tags by. + type: string + enum: + - updatedAt + - tag + default: updatedAt + - name: sortOrder + description: Sort direction. Defaults to desc. + in: query + required: false + schema: + description: Sort direction. Defaults to desc. + type: string + enum: + - asc + - desc + default: desc + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/tags/{tag}: + get: + description: Fetch a single tag from a repository, including the backing image's metadata and VHS-readiness status. + operationId: getRepositoryTag + security: + - bearerToken: [] + summary: Get a repository tag + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + tag: + $ref: '#/components/schemas/VcrTag' + required: + - tag + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - name: tag + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/images/{image_id_or_digest}: + get: + description: Fetch an individual image from a repository, including its tags and Dockerfile history entries with discriminated layer details for UI rendering. The image may be addressed by its internal id (`image_...`) or by its manifest digest (`sha256:...`). + operationId: getRepositoryImage + security: + - bearerToken: [] + summary: Get a repository image + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + image: + $ref: '#/components/schemas/VcrImageDetail' + required: + - image + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - name: image_id_or_digest + description: The internal image id (`image_...`) or the image manifest digest (`sha256:...`). + in: path + required: true + schema: + type: string + maxLength: 255 + description: The internal image id (`image_...`) or the image manifest digest (`sha256:...`). + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/vcr/repository/{id_or_name}/images/{image_id}: + delete: + description: Schedule an image for deletion. The image is marked so it disappears from list/get immediately; subscriber-vcr reclaims the manifest, blobs, tags and row asynchronously via the VcrManifestRemoved event. + operationId: deleteRepositoryImage + security: + - bearerToken: [] + summary: Delete a repository image + tags: + - vcr + responses: + '202': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: Project ID. Missing or empty values return HTTP 400. + in: query + required: true + schema: + type: string + description: Project ID. Missing or empty values return HTTP 400. + - name: id_or_name + in: path + required: true + schema: + type: string + maxLength: 255 + - name: image_id + in: path + required: true + schema: + type: string + maxLength: 255 + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v2/: + get: + description: GET /v2/ Docker Registry v2 version check. Returns a 401 challenge when no credentials are provided, prompting the Docker client to send auth. With valid credentials, returns 200 so the client can proceed. + operationId: getRoot + security: [] + summary: Check registry API version support + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + type: string + description: (opaque JSON object) + '400': + description: '' + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: [] + /v2/{team_slug}/{project_slug}/{repository_name}/blobs/{digest}: + head: + description: HEAD /v2/:teamSlug/:projectSlug/:repositoryName/blobs/:digest Check whether a blob exists. Used by the Docker client before pushing a layer to avoid re-uploading content that already exists. + operationId: headByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest + security: [] + summary: Check if a blob exists + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: teamSlug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: projectSlug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repositoryName + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: digest + description: Content-addressable digest (algorithm:hex). + in: path + required: true + schema: + type: string + pattern: ^[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+$ + maxLength: 255 + description: Content-addressable digest (algorithm:hex). + example: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + get: + description: GET /v2/:teamSlug/:projectSlug/:repositoryName/blobs/:digest Fetch a blob by digest. + operationId: getByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest + security: [] + summary: Download a blob + tags: + - vcr + responses: + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '416': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: digest + description: Content-addressable digest (algorithm:hex). + in: path + required: true + schema: + type: string + pattern: ^[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+$ + maxLength: 255 + description: Content-addressable digest (algorithm:hex). + example: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + delete: + description: DELETE /v2/:teamSlug/:projectSlug/:repositoryName/blobs/:digest Blob deletion is intentionally not supported. Matches the behaviour of most public registries. + operationId: deleteByTeamSlugByProjectSlugByRepositoryNameBlobsByDigest + security: [] + summary: Delete a blob + tags: + - vcr + responses: + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '405': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: digest + description: Content-addressable digest (algorithm:hex). + in: path + required: true + schema: + type: string + pattern: ^[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+$ + maxLength: 255 + description: Content-addressable digest (algorithm:hex). + example: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + /v2/{team_slug}/{project_slug}/{repository_name}/blobs/uploads/{uuid}: + get: + description: GET /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid Query the status of an in-progress blob upload. Used by clients to resume a partial upload after an interruption. + operationId: getByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid + security: [] + summary: Get blob upload status + tags: + - vcr + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: uuid + description: Blob upload session identifier. + in: path + required: true + schema: + type: string + pattern: ^[a-f0-9]{40}$ + maxLength: 40 + description: Blob upload session identifier. + example: 0123456789abcdef0123456789abcdef01234567 + delete: + description: DELETE /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid Cancel an in-flight blob upload. Aborts the underlying S3 multipart upload (if one was started) and discards the session. + operationId: deleteByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid + security: [] + summary: Cancel a blob upload + tags: + - vcr + responses: + '204': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: uuid + description: Blob upload session identifier. + in: path + required: true + schema: + type: string + pattern: ^[a-f0-9]{40}$ + maxLength: 40 + description: Blob upload session identifier. + example: 0123456789abcdef0123456789abcdef01234567 + patch: + description: PATCH /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid Upload a chunk of blob data. The request body is streamed directly to S3 as a multipart upload part while hashing incrementally. The client may call this multiple times for chunked uploads. + operationId: updateByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid + security: [] + summary: Upload a blob chunk + tags: + - vcr + responses: + '202': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '413': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: uuid + description: Blob upload session identifier. + in: path + required: true + schema: + type: string + pattern: ^[a-f0-9]{40}$ + maxLength: 40 + description: Blob upload session identifier. + example: 0123456789abcdef0123456789abcdef01234567 + put: + description: PUT /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/:uuid?digest= Complete the blob upload. This may include a final chunk of data in the request body (monolithic upload) or just finalize a previous chunked upload. + operationId: replaceByTeamSlugByProjectSlugByRepositoryNameBlobsUploadsByUuid + security: [] + summary: Complete a blob upload + tags: + - vcr + responses: + '201': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '413': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: uuid + description: Blob upload session identifier. + in: path + required: true + schema: + type: string + pattern: ^[a-f0-9]{40}$ + maxLength: 40 + description: Blob upload session identifier. + example: 0123456789abcdef0123456789abcdef01234567 + - name: digest + description: Content-addressable digest (algorithm:hex). + in: query + required: true + schema: + type: string + pattern: ^[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+$ + maxLength: 255 + description: Content-addressable digest (algorithm:hex). + example: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + /v2/{team_slug}/{project_slug}/{repository_name}/blobs/uploads/: + post: + description: POST /v2/:teamSlug/:projectSlug/:repositoryName/blobs/uploads/[?mount=&from=] Initiate a blob upload. Returns a UUID in the Location header that the client uses for subsequent PATCH (chunk) and PUT (complete) requests. + operationId: createByTeamSlugByProjectSlugByRepositoryNameBlobsUploads + security: [] + summary: Start a blob upload + tags: + - vcr + responses: + '202': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: mount + description: Digest of the blob to mount from another repository. + in: query + required: false + schema: + type: string + pattern: ^[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+$ + maxLength: 255 + description: Digest of the blob to mount from another repository. + - name: from + description: Source repository to mount the blob from. + in: query + required: false + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?\\/[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Source repository to mount the blob from. + /v2/{team_slug}/{project_slug}/{repository_name}/manifests/{reference}: + put: + description: PUT /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Upload an image manifest. The digest is computed from the body and returned in the Docker-Content-Digest header. + operationId: replaceByTeamSlugByProjectSlugByRepositoryNameManifestsByReference + security: [] + summary: Push an image manifest + tags: + - vcr + responses: + '201': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + '413': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: reference + description: 'Manifest reference: a tag or digest.' + in: path + required: true + schema: + type: string + pattern: ^(?:[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}|[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+)$ + maxLength: 255 + description: 'Manifest reference: a tag or digest.' + example: latest + head: + description: HEAD /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Check whether a manifest exists. Used by Docker client during push to determine if a manifest (or config blob referenced by digest) is already present. + operationId: headByTeamSlugByProjectSlugByRepositoryNameManifestsByReference + security: [] + summary: Check if a manifest exists + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: teamSlug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: projectSlug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repositoryName + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: reference + description: 'Manifest reference: a tag or digest.' + in: path + required: true + schema: + type: string + pattern: ^(?:[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}|[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+)$ + maxLength: 255 + description: 'Manifest reference: a tag or digest.' + example: latest + get: + description: GET /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Fetch a manifest by tag or digest. + operationId: getByTeamSlugByProjectSlugByRepositoryNameManifestsByReference + security: [] + summary: Pull an image manifest + tags: + - vcr + responses: + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: reference + description: 'Manifest reference: a tag or digest.' + in: path + required: true + schema: + type: string + pattern: ^(?:[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}|[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+)$ + maxLength: 255 + description: 'Manifest reference: a tag or digest.' + example: latest + delete: + description: DELETE /v2/:teamSlug/:projectSlug/:repositoryName/manifests/:reference Reference must be a digest. + operationId: deleteByTeamSlugByProjectSlugByRepositoryNameManifestsByReference + security: [] + summary: Delete an image manifest + tags: + - vcr + responses: + '202': + description: '' + content: + application/json: + schema: + nullable: true + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: reference + description: Content-addressable digest (algorithm:hex). + in: path + required: true + schema: + type: string + pattern: ^[A-Za-z0-9_+.-]+:[A-Fa-f0-9]+$ + maxLength: 255 + description: Content-addressable digest (algorithm:hex). + example: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 + /v2/{team_slug}/{project_slug}/{repository_name}/tags/list: + get: + description: GET /v2/:teamSlug/:projectSlug/:repositoryName/tags/list List the tags in a repository. + operationId: getByTeamSlugByProjectSlugByRepositoryNameTagsList + security: [] + summary: List image tags + tags: + - vcr + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + name: + type: string + tags: + items: + type: string + type: array + required: + - name + - tags + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: The account is missing a payment so payment method must be updated + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: team_slug + description: Single Docker repository team slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository team slug component. + example: team-slug + - name: project_slug + description: Single Docker repository project slug component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9](?:[a-z0-9-]{0,46}[a-z0-9])?$ + maxLength: 255 + description: Single Docker repository project slug component. + example: project-slug + - name: repository_name + description: Single Docker repository name component. + in: path + required: true + schema: + type: string + pattern: ^[a-z0-9]+(?:(?:\\.|_|__|-+)[a-z0-9]+)*$ + maxLength: 255 + description: Single Docker repository name component. + example: nginx + - name: 'n' + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 1000 + - name: last + description: Opaque pagination cursor returned by a previous list response. + in: query + required: false + schema: + type: string + maxLength: 1024 + description: Opaque pagination cursor returned by a previous list response. +components: + schemas: + VcrRepository: + properties: + id: + type: string + description: Unique identifier of the repository. + example: repo_a1b2c3d4e5f6 + projectId: + type: string + description: Identifier of the project the repository belongs to. + example: prj_a1b2c3d4e5f6 + name: + type: string + description: Name of the repository. + example: my-app + public: + type: boolean + enum: + - false + - true + description: Whether the repository is public. Images in public repositories can be pulled by anyone. Defaults to `false` (private). + example: false + createdAt: + type: string + description: ISO 8601 timestamp of when the repository was created. + example: '2026-06-30T10:00:00.000Z' + updatedAt: + type: string + description: ISO 8601 timestamp of when the repository was last updated. + example: '2026-06-30T10:00:00.000Z' + required: + - createdAt + - id + - name + - projectId + - public + - updatedAt + type: object + description: A Vercel Container Registry repository. + VcrRepositoryList: + properties: + repositories: + items: + $ref: '#/components/schemas/VcrRepository' + type: array + nextCursor: + type: string + description: Cursor to fetch the next page of results, when more are available. + required: + - repositories + type: object + description: A paginated list of Vercel Container Registry repositories. + VcrImageList: + properties: + images: + items: + $ref: '#/components/schemas/VcrImageListItem' + type: array + nextCursor: + type: string + description: Cursor to fetch the next page of results, when more are available. + required: + - images + type: object + description: A paginated list of images for a repository. + VcrRepositoryPermission: + properties: + repositoryId: + type: string + description: Identifier of the repository the permission grants access to. + example: repo_a1b2c3d4e5f6 + teamId: + type: string + description: Identifier of the team that is granted access to the repository. + example: team_a1b2c3d4e5f6 + teamSlug: + type: string + description: Slug of the team that is granted access to the repository. + example: my-team + createdAt: + type: string + description: ISO 8601 timestamp of when the permission was created. + example: '2026-06-30T10:00:00.000Z' + required: + - createdAt + - repositoryId + - teamId + - teamSlug + type: object + description: A team's access grant to a Vercel Container Registry repository. + VcrRepositoryPermissionList: + properties: + permissions: + items: + $ref: '#/components/schemas/VcrRepositoryPermission' + type: array + nextCursor: + type: string + description: Cursor to fetch the next page of results, when more are available. + required: + - permissions + type: object + description: A paginated list of Vercel Container Registry repository permissions. + VcrTag: + properties: + tag: + type: string + description: The tag name. + example: latest + manifestDigest: + type: string + description: SHA-256 digest of the image manifest the tag points at. + example: sha256:2c4e8f3a1b9d0e5c7a6f4b2d8e1c9a0b3d5f7e9c1a2b4d6f8e0c2a4b6d8f0e2c + imageId: + type: string + description: Internal identifier of the image the tag points at. + example: img_a1b2c3d4e5f6 + kind: + type: string + enum: + - attestation + - index + - manifest + description: Whether the manifest is a multi-platform image index, a single-platform image manifest or an attestation. + platform: + type: string + description: Operating system the manifest targets. Only present for single-platform manifests. + example: linux + arch: + type: string + description: CPU architecture the manifest targets. Only present for single-platform manifests. + example: amd64 + pushedBy: + type: string + description: Identifier of the actor that pushed the image. + status: + nullable: true + type: string + enum: + - preparing + - ready + - unoptimized + - null + description: VHS-readiness status, or `null` for a multi-platform index. + sizeInBytes: + type: number + description: Total size in bytes of the image's resources (manifest, config and layer blobs) stored by the registry. + createdAt: + type: string + description: ISO 8601 timestamp of when the tag was created. + example: '2026-06-30T10:00:00.000Z' + updatedAt: + type: string + description: ISO 8601 timestamp of when the tag was last updated. + example: '2026-06-30T10:00:00.000Z' + required: + - createdAt + - imageId + - kind + - manifestDigest + - sizeInBytes + - status + - tag + - updatedAt + type: object + description: A tag pointing at an image in a Vercel Container Registry repository, enriched with the backing image's metadata and VHS-readiness status. + VcrImageDetail: + properties: + layers: + items: + $ref: '#/components/schemas/VcrImageLayer' + type: array + tags: + items: + type: string + type: array + description: Tags pointing at this image's manifest. + id: + type: string + description: Internal identifier of the image. + example: img_a1b2c3d4e5f6 + repositoryId: + type: string + description: Identifier of the repository the image belongs to. + example: repo_a1b2c3d4e5f6 + manifestDigest: + type: string + description: SHA-256 digest of the image manifest. + example: sha256:2c4e8f3a1b9d0e5c7a6f4b2d8e1c9a0b3d5f7e9c1a2b4d6f8e0c2a4b6d8f0e2c + kind: + type: string + enum: + - attestation + - index + - manifest + description: Whether the manifest is a multi-platform image index, a single-platform image manifest or an attestation. + platform: + type: string + description: Operating system the manifest targets. Only present for single-platform manifests. + example: linux + arch: + type: string + description: CPU architecture the manifest targets. Only present for single-platform manifests. + example: amd64 + pushedBy: + type: string + description: Identifier of the actor that pushed the image. + sizeInBytes: + type: number + description: Total size in bytes of the image's resources (manifest, config and layer blobs) stored by the registry. + status: + nullable: true + type: string + enum: + - preparing + - ready + - unoptimized + - null + description: VHS-readiness status, or `null` for a multi-platform index. + createdAt: + type: string + description: ISO 8601 timestamp of when the image was created. + example: '2026-06-30T10:00:00.000Z' + required: + - createdAt + - id + - kind + - layers + - manifestDigest + - repositoryId + - sizeInBytes + - status + - tags + type: object + description: A single image with its tags, status and resolved Dockerfile layer history. + VcrImageListItem: + properties: + tags: + items: + type: string + type: array + description: Tags pointing at this image's manifest. + id: + type: string + description: Internal identifier of the image. + example: img_a1b2c3d4e5f6 + repositoryId: + type: string + description: Identifier of the repository the image belongs to. + example: repo_a1b2c3d4e5f6 + manifestDigest: + type: string + description: SHA-256 digest of the image manifest. + example: sha256:2c4e8f3a1b9d0e5c7a6f4b2d8e1c9a0b3d5f7e9c1a2b4d6f8e0c2a4b6d8f0e2c + kind: + type: string + enum: + - attestation + - index + - manifest + description: Whether the manifest is a multi-platform image index, a single-platform image manifest or an attestation. + platform: + type: string + description: Operating system the manifest targets. Only present for single-platform manifests. + example: linux + arch: + type: string + description: CPU architecture the manifest targets. Only present for single-platform manifests. + example: amd64 + pushedBy: + type: string + description: Identifier of the actor that pushed the image. + sizeInBytes: + type: number + description: Total size in bytes of the image's resources (manifest, config and layer blobs) stored by the registry. + status: + nullable: true + type: string + enum: + - preparing + - ready + - unoptimized + - null + description: VHS-readiness status, or `null` for a multi-platform index. + createdAt: + type: string + description: ISO 8601 timestamp of when the image was created. + example: '2026-06-30T10:00:00.000Z' + required: + - createdAt + - id + - kind + - manifestDigest + - repositoryId + - sizeInBytes + - status + - tags + type: object + description: An image enriched with its tags and VHS-readiness status, as returned when listing a repository's images. + VcrImageLayer: + properties: + createdBy: + nullable: true + type: string + digest: + nullable: true + type: string + operation: + type: string + enum: + - ADD + - ARG + - CMD + - COPY + - ENTRYPOINT + - ENV + - EXPOSE + - FROM + - HEALTHCHECK + - LABEL + - ONBUILD + - RUN + - SHELL + - STOPSIGNAL + - UNKNOWN + - USER + - VOLUME + - WORKDIR + description: Docker/OCI build instruction associated with an image layer. + sizeBytes: + nullable: true + type: number + type: + type: string + enum: + - FROM + baseImage: + nullable: true + type: string + collapsedDigests: + items: + type: string + type: array + collapsedLayerCount: + type: number + command: + nullable: true + type: string + env: + nullable: true + type: string + value: + nullable: true + type: string + required: + - baseImage + - collapsedDigests + - collapsedLayerCount + - createdBy + - digest + - operation + - sizeBytes + - type + - command + - env + - value + type: object + x-stackQL-resources: + repositories: + id: vercel.vcr.repositories + name: repositories + title: Repositories + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1vcr~1repository/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1vcr~1repository/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.repositories + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.nextCursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.repository + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/repositories/methods/get' + - $ref: '#/components/x-stackQL-resources/repositories/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/repositories/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/repositories/methods/delete' + replace: [] + images: + id: vercel.vcr.images + name: images + title: Images + methods: + list: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1images/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.images + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.nextCursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1images~1{image_id_or_digest}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.image + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1images~1{image_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '202' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/images/methods/get' + - $ref: '#/components/x-stackQL-resources/images/methods/list' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/images/methods/delete' + replace: [] + permissions: + id: vercel.vcr.permissions + name: permissions + title: Permissions + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1permissions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1permissions/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1permissions/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.permissions + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.nextCursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + clear: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1permissions~1all/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/permissions/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/permissions/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/permissions/methods/delete' + replace: [] + tags: + id: vercel.vcr.tags + name: tags + title: Tags + methods: + list: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1tags/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tags + request: + nativeCasing: camel + config: + pagination: + requestToken: + key: cursor + location: query + responseToken: + key: $.nextCursor + location: body + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + get: + operation: + $ref: '#/paths/~1v1~1vcr~1repository~1{id_or_name}~1tags~1{tag}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.tag + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/tags/methods/get' + - $ref: '#/components/x-stackQL-resources/tags/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/web_analytics.yaml b/providers/src/vercel/v00.00.00000/services/web_analytics.yaml new file mode 100644 index 00000000..f625cc88 --- /dev/null +++ b/providers/src/vercel/v00.00.00000/services/web_analytics.yaml @@ -0,0 +1,3646 @@ +openapi: 3.0.3 +info: + title: web_analytics API + description: vercel web_analytics API + version: 0.0.1 +paths: + /speed-insights/toggle: + post: + description: '' + operationId: createSpeedInsightsToggle + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + value: + type: boolean + enum: + - false + - true + required: + - value + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + value: + type: boolean + required: + - value + type: object + /web/insights/toggle: + post: + description: '' + operationId: createWebInsightsToggle + security: [] + tags: [] + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + value: + type: boolean + enum: + - false + - true + required: + - value + type: object + '400': + description: |- + One of the provided values in the request body is invalid. + One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '403': + description: You do not have permission to access this resource. + '410': + description: '' + parameters: + - name: projectId + in: query + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + value: + type: boolean + required: + - value + type: object + /v1/query/web-analytics/visits/aggregate: + get: + description: Counts pageviews on a project, within the requested date range. Results are either aggregated or broken down over time. Results can additionally be broken down by one dimension, and filtered by multiple dimensions. + operationId: aggregatePageviews + security: + - bearerToken: [] + summary: Aggregates page views + tags: + - web-analytics + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + type: number + query: + properties: + since: + type: string + until: + type: string + groupBy: + items: + oneOf: + - type: string + - type: string + enum: + - browserName + - country + - deviceType + - environment + - flags + - osName + - referrerHostname + - requestPath + - route + - utmCampaign + - utmContent + - utmMedium + - utmSource + - utmTerm + type: array + filter: + type: string + limit: + type: number + required: + - limit + - since + - until + type: object + data: + items: + properties: + projectId: + type: string + country: + type: string + deviceType: + type: string + environment: + type: string + requestPath: + type: string + referrerHostname: + type: string + osName: + type: string + browserName: + type: string + route: + type: string + utmSource: + type: string + utmMedium: + type: string + utmCampaign: + type: string + utmContent: + type: string + utmTerm: + type: string + flags: + type: string + errorMessage: + type: string + entryRevalidateSeconds: + type: string + projectName: + type: string + deploymentId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + requestHostname: + type: string + requestResolvedIp: + type: string + requestMethod: + type: string + requestExtension: + type: string + requestId: + type: string + requestApi: + type: string + referrerUrl: + type: string + serverActionName: + type: string + httpStatus: + type: string + errorCode: + type: string + source: + type: string + edgeType: + type: string + reason: + type: string + edgeNetworkRegion: + type: string + functionRegion: + type: string + imageTransformationRegion: + type: string + dataCacheRegion: + type: string + cause: + type: string + runtime: + type: string + provider: + type: string + isrCacheRegion: + type: string + isrAction: + type: string + cacheResult: + type: string + cacheOperation: + type: string + cacheHostname: + type: string + cachePath: + type: string + cacheHitState: + type: string + cacheHitLevel: + type: string + cacheApi: + type: string + cacheReason: + type: string + pprState: + type: string + clientIp: + type: string + clientIpCountry: + type: string + clientUserAgent: + type: string + httpAccept: + type: string + clientJa4Digest: + type: string + asnId: + type: string + asnName: + type: string + botName: + type: string + botCategory: + type: string + botCategoryLegacy: + type: string + botVerified: + type: string + botCheckResult: + type: string + deepAnalysisCheck: + type: string + wafAction: + type: string + wafRuleId: + type: string + ruleCategory: + type: string + skewProtection: + type: string + functionStartType: + type: string + functionDispatcher: + type: string + isAdditionalRequest: + type: string + originHostname: + type: string + originPath: + type: string + originRoute: + type: string + fetchType: + type: string + fetchIndex: + type: string + imageSource: + type: string + sourceImage: + type: string + sourceImagePathname: + type: string + sourceImageHostname: + type: string + sourceImageHash: + type: string + optimizedQuality: + type: string + optimizedWidthPixels: + type: string + optimizedFormatMimeType: + type: string + vdcOperationOrigin: + type: string + entryName: + type: string + entryId: + type: string + entryItemId: + type: string + tagName: + type: string + cacheTags: + type: string + storeId: + type: string + storeName: + type: string + blobOperationType: + type: string + blobOperationLevel: + type: string + visitorId: + type: string + eventName: + type: string + attributionTarget: + type: string + attributionEventName: + type: string + metricName: + type: string + attributes: + type: string + flagKey: + type: string + flagVariant: + type: string + flagEvaluationReason: + type: string + flagClientName: + type: string + sdkKeyId: + type: string + sdkKeyEnvironment: + type: string + reportingProjectId: + type: string + reportingProjectName: + type: string + eventData: + type: string + middlewareAction: + type: string + middlewareActionTarget: + type: string + aiModel: + type: string + aiGatewayModelId: + type: string + aiProvider: + type: string + aiModelType: + type: string + servedSpeed: + type: string + virtualModelSlug: + type: string + virtualModelKind: + type: string + inferenceEndpointSlug: + type: string + inferenceScope: + type: string + inferenceGeoRegion: + type: string + inferenceProviderRegion: + type: string + requestedInferenceRegion: + type: string + costCurrency: + type: string + marketCostCurrency: + type: string + cachedInputTokensCurrency: + type: string + cacheCreationInputTokensCurrency: + type: string + cacheCreation1hInputTokensCurrency: + type: string + surchargeCostCurrency: + type: string + gatewayCostCurrency: + type: string + keyId: + type: string + keyName: + type: string + authMethod: + type: string + appName: + type: string + codingAgent: + type: string + isByok: + type: string + spendAttribution: + type: string + isPrivateModel: + type: string + isStreaming: + type: string + isRequestZdr: + type: string + hipaaRequested: + type: string + quotaRequested: + type: string + quotaEntityId: + type: string + quotaEntityType: + type: string + videoResolution: + type: string + videoAspectRatio: + type: string + piiRedactionApplied: + type: string + moderationApplied: + type: string + queueName: + type: string + consumerGroup: + type: string + messageId: + type: string + eventType: + type: string + notificationUrl: + type: string + queueRegion: + type: string + sandboxSessionId: + type: string + sandboxName: + type: string + workflowRunId: + type: string + workflowName: + type: string + workflowStatus: + type: string + stepRunId: + type: string + workflowStepName: + type: string + workflowEventType: + type: string + region: + type: string + specVersion: + type: string + contentType: + type: string + rewriteDestinationHostname: + type: string + externalRewriteTargetHost: + type: string + externalRewriteTargetPath: + type: string + commitSha: + type: string + reviewConclusion: + type: string + pullRequestNumber: + type: string + repositoryName: + type: string + repositoryOwner: + type: string + reviewStatus: + type: string + pullRequestState: + type: string + triggeringTag: + type: string + redirectLocation: + type: string + microfrontendsResponseReason: + type: string + microfrontendsMatchedPath: + type: string + microfrontendsDefaultAppDeploymentId: + type: string + microfrontendsDefaultAppProjectId: + type: string + service: + type: string + isPrefetchRequest: + type: string + spendReportGroupBy: + type: string + spendReportDatePart: + type: string + providerAttemptCanonicalSlug: + type: string + providerAttemptCredentialType: + type: string + providerAttemptSuccess: + type: string + providerAttemptStatusCode: + type: string + providerAttemptTimeout: + type: string + providerAttemptIsFinal: + type: string + providerAttemptNumber: + type: string + providerAttemptTotalInRequest: + type: string + generationId: + type: string + sessionId: + type: string + contentCaptureStatus: + type: string + contentCaptureInputs: + type: string + contentCaptureOutputs: + type: string + transcriptStatus: + type: string + transcriptInputs: + type: string + transcriptOutputs: + type: string + providerAttemptError: + type: string + providerAttemptSafetyIdentifier: + type: string + providerAttemptDevSafetyIdentifier: + type: string + providerAttemptRegion: + type: string + providerAttemptModelIndex: + type: string + toolCallType: + type: string + toolCallProvider: + type: string + toolCallSuccess: + type: string + toolCallErrorType: + type: string + toolCallStatusCode: + type: string + environmentId: + type: string + billableRegion: + type: string + direction: + type: string + networkTenancy: + type: string + trafficSource: + type: string + networkId: + type: string + privatelinkEndpointId: + type: string + privatelinkDnsName: + type: string + privatelinkIpAddress: + type: string + timestamp: + type: string + format: date-time + type: object + required: + - timestamp + - aiGatewayModelId + - aiModel + - aiModelType + - aiProvider + - appName + - asnId + - asnName + - attributes + - attributionEventName + - attributionTarget + - authMethod + - billableRegion + - blobOperationLevel + - blobOperationType + - botCategory + - botCategoryLegacy + - botCheckResult + - botName + - botVerified + - browserName + - cacheApi + - cacheCreation1hInputTokensCurrency + - cacheCreationInputTokensCurrency + - cacheHitLevel + - cacheHitState + - cacheHostname + - cacheOperation + - cachePath + - cacheReason + - cacheResult + - cacheTags + - cachedInputTokensCurrency + - cause + - clientIp + - clientIpCountry + - clientJa4Digest + - clientUserAgent + - codingAgent + - commitSha + - consumerGroup + - contentCaptureInputs + - contentCaptureOutputs + - contentCaptureStatus + - contentType + - costCurrency + - country + - dataCacheRegion + - deepAnalysisCheck + - deploymentId + - deviceType + - direction + - edgeNetworkRegion + - edgeType + - entryId + - entryItemId + - entryName + - entryRevalidateSeconds + - environment + - environmentId + - errorCode + - errorMessage + - eventData + - eventName + - eventType + - externalRewriteTargetHost + - externalRewriteTargetPath + - fetchIndex + - fetchType + - flagClientName + - flagEvaluationReason + - flagKey + - flagVariant + - flags + - functionDispatcher + - functionRegion + - functionStartType + - gatewayCostCurrency + - generationId + - hipaaRequested + - httpAccept + - httpStatus + - imageSource + - imageTransformationRegion + - inferenceEndpointSlug + - inferenceGeoRegion + - inferenceProviderRegion + - inferenceScope + - isAdditionalRequest + - isByok + - isPrefetchRequest + - isPrivateModel + - isRequestZdr + - isStreaming + - isrAction + - isrCacheRegion + - keyId + - keyName + - marketCostCurrency + - messageId + - metricName + - microfrontendsDefaultAppDeploymentId + - microfrontendsDefaultAppProjectId + - microfrontendsMatchedPath + - microfrontendsResponseReason + - middlewareAction + - middlewareActionTarget + - moderationApplied + - networkId + - networkTenancy + - notificationUrl + - optimizedFormatMimeType + - optimizedQuality + - optimizedWidthPixels + - originHostname + - originPath + - originRoute + - osName + - pathType + - pathTypeVariant + - piiRedactionApplied + - pprState + - privatelinkDnsName + - privatelinkEndpointId + - privatelinkIpAddress + - projectId + - projectName + - provider + - providerAttemptCanonicalSlug + - providerAttemptCredentialType + - providerAttemptDevSafetyIdentifier + - providerAttemptError + - providerAttemptIsFinal + - providerAttemptModelIndex + - providerAttemptNumber + - providerAttemptRegion + - providerAttemptSafetyIdentifier + - providerAttemptStatusCode + - providerAttemptSuccess + - providerAttemptTimeout + - providerAttemptTotalInRequest + - pullRequestNumber + - pullRequestState + - queueName + - queueRegion + - quotaEntityId + - quotaEntityType + - quotaRequested + - reason + - redirectLocation + - referrerHostname + - referrerUrl + - region + - reportingProjectId + - reportingProjectName + - repositoryName + - repositoryOwner + - requestApi + - requestExtension + - requestHostname + - requestId + - requestMethod + - requestPath + - requestResolvedIp + - requestedInferenceRegion + - reviewConclusion + - reviewStatus + - rewriteDestinationHostname + - route + - ruleCategory + - runtime + - sandboxName + - sandboxSessionId + - sdkKeyEnvironment + - sdkKeyId + - servedSpeed + - serverActionName + - service + - sessionId + - skewProtection + - source + - sourceImage + - sourceImageHash + - sourceImageHostname + - sourceImagePathname + - specVersion + - spendAttribution + - spendReportDatePart + - spendReportGroupBy + - stepRunId + - storeId + - storeName + - surchargeCostCurrency + - tagName + - toolCallErrorType + - toolCallProvider + - toolCallStatusCode + - toolCallSuccess + - toolCallType + - trafficSource + - transcriptInputs + - transcriptOutputs + - transcriptStatus + - triggeringTag + - utmCampaign + - utmContent + - utmMedium + - utmSource + - utmTerm + - vdcOperationOrigin + - videoAspectRatio + - videoResolution + - virtualModelKind + - virtualModelSlug + - visitorId + - wafAction + - wafRuleId + - workflowEventType + - workflowName + - workflowRunId + - workflowStatus + - workflowStepName + additionalProperties: + nullable: true + type: number + type: array + required: + - data + - query + - version + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project identifier or the project name + in: query + required: true + schema: + description: The project identifier or the project name + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + type: string + - name: by + description: |- + Up to two dimensions used to break down results. + + At most one time granularity is allowed: hour, day, week, month, year. + + Other dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm. + + JSON dimensions: flags. Used bare, it breaks down results by key, for example flags returns one group per flag name. With a key, it breaks down results by that key's value, for example flags/beta_banner. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag'. + in: query + required: true + schema: + description: |- + Up to two dimensions used to break down results. + + At most one time granularity is allowed: hour, day, week, month, year. + + Other dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm. + + JSON dimensions: flags. Used bare, it breaks down results by key, for example flags returns one group per flag name. With a key, it breaks down results by that key's value, for example flags/beta_banner. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag'. + example: + - day + - country + type: array + minItems: 1 + maxItems: 2 + uniqueItems: true + items: + type: string + anyOf: + - enum: + - hour + - day + - week + - month + - year + - country + - deviceType + - environment + - requestPath + - referrerHostname + - osName + - browserName + - route + - utmSource + - utmMedium + - utmCampaign + - utmContent + - utmTerm + - flags + - pattern: ^(flags)(/([0-9A-Za-z_]+|'([^']|'')*'))+$ + errorMessage: '`by` items should be equal to one of the allowed values "hour, day, week, month, year, country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, flags", or a JSON dimension key such as "flags/"' + - name: since + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + in: query + required: true + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + example: '2024-09-01T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: until + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + in: query + required: true + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + example: '2024-09-08T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: limit + description: Number of distinct results, default to 10. Other results are grouped into "Others" group. + in: query + required: false + schema: + description: Number of distinct results, default to 10. Other results are grouped into "Others" group. + default: 10 + example: 3 + type: integer + minimum: 1 + maximum: 100 + - name: filter + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. By default, filters for production environment only. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm. + + JSON dimensions filtered by key: flags/, for example flags/beta_banner eq 'true'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + in: query + required: false + schema: + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. By default, filters for production environment only. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm. + + JSON dimensions filtered by key: flags/, for example flags/beta_banner eq 'true'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + example: requestPath eq '/docs' + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/query/web-analytics/events/aggregate: + get: + description: Counts custom events on a project, within the requested date range. Results are either aggregated or broken down over time. Results can additionally be broken down by one dimension, and filtered by multiple dimensions. + operationId: aggregateEvents + security: + - bearerToken: [] + summary: Aggregates custom events + tags: + - web-analytics + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + type: number + query: + properties: + since: + type: string + until: + type: string + groupBy: + items: + oneOf: + - type: string + - type: string + enum: + - browserName + - country + - deviceType + - environment + - eventData + - eventName + - flags + - osName + - referrerHostname + - requestPath + - route + - utmCampaign + - utmContent + - utmMedium + - utmSource + - utmTerm + type: array + filter: + type: string + limit: + type: number + required: + - limit + - since + - until + type: object + data: + items: + properties: + projectId: + type: string + country: + type: string + deviceType: + type: string + environment: + type: string + requestPath: + type: string + referrerHostname: + type: string + osName: + type: string + browserName: + type: string + route: + type: string + utmSource: + type: string + utmMedium: + type: string + utmCampaign: + type: string + utmContent: + type: string + utmTerm: + type: string + flags: + type: string + errorMessage: + type: string + entryRevalidateSeconds: + type: string + projectName: + type: string + deploymentId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + requestHostname: + type: string + requestResolvedIp: + type: string + requestMethod: + type: string + requestExtension: + type: string + requestId: + type: string + requestApi: + type: string + referrerUrl: + type: string + serverActionName: + type: string + httpStatus: + type: string + errorCode: + type: string + source: + type: string + edgeType: + type: string + reason: + type: string + edgeNetworkRegion: + type: string + functionRegion: + type: string + imageTransformationRegion: + type: string + dataCacheRegion: + type: string + cause: + type: string + runtime: + type: string + provider: + type: string + isrCacheRegion: + type: string + isrAction: + type: string + cacheResult: + type: string + cacheOperation: + type: string + cacheHostname: + type: string + cachePath: + type: string + cacheHitState: + type: string + cacheHitLevel: + type: string + cacheApi: + type: string + cacheReason: + type: string + pprState: + type: string + clientIp: + type: string + clientIpCountry: + type: string + clientUserAgent: + type: string + httpAccept: + type: string + clientJa4Digest: + type: string + asnId: + type: string + asnName: + type: string + botName: + type: string + botCategory: + type: string + botCategoryLegacy: + type: string + botVerified: + type: string + botCheckResult: + type: string + deepAnalysisCheck: + type: string + wafAction: + type: string + wafRuleId: + type: string + ruleCategory: + type: string + skewProtection: + type: string + functionStartType: + type: string + functionDispatcher: + type: string + isAdditionalRequest: + type: string + originHostname: + type: string + originPath: + type: string + originRoute: + type: string + fetchType: + type: string + fetchIndex: + type: string + imageSource: + type: string + sourceImage: + type: string + sourceImagePathname: + type: string + sourceImageHostname: + type: string + sourceImageHash: + type: string + optimizedQuality: + type: string + optimizedWidthPixels: + type: string + optimizedFormatMimeType: + type: string + vdcOperationOrigin: + type: string + entryName: + type: string + entryId: + type: string + entryItemId: + type: string + tagName: + type: string + cacheTags: + type: string + storeId: + type: string + storeName: + type: string + blobOperationType: + type: string + blobOperationLevel: + type: string + visitorId: + type: string + eventName: + type: string + attributionTarget: + type: string + attributionEventName: + type: string + metricName: + type: string + attributes: + type: string + flagKey: + type: string + flagVariant: + type: string + flagEvaluationReason: + type: string + flagClientName: + type: string + sdkKeyId: + type: string + sdkKeyEnvironment: + type: string + reportingProjectId: + type: string + reportingProjectName: + type: string + eventData: + type: string + middlewareAction: + type: string + middlewareActionTarget: + type: string + aiModel: + type: string + aiGatewayModelId: + type: string + aiProvider: + type: string + aiModelType: + type: string + servedSpeed: + type: string + virtualModelSlug: + type: string + virtualModelKind: + type: string + inferenceEndpointSlug: + type: string + inferenceScope: + type: string + inferenceGeoRegion: + type: string + inferenceProviderRegion: + type: string + requestedInferenceRegion: + type: string + costCurrency: + type: string + marketCostCurrency: + type: string + cachedInputTokensCurrency: + type: string + cacheCreationInputTokensCurrency: + type: string + cacheCreation1hInputTokensCurrency: + type: string + surchargeCostCurrency: + type: string + gatewayCostCurrency: + type: string + keyId: + type: string + keyName: + type: string + authMethod: + type: string + appName: + type: string + codingAgent: + type: string + isByok: + type: string + spendAttribution: + type: string + isPrivateModel: + type: string + isStreaming: + type: string + isRequestZdr: + type: string + hipaaRequested: + type: string + quotaRequested: + type: string + quotaEntityId: + type: string + quotaEntityType: + type: string + videoResolution: + type: string + videoAspectRatio: + type: string + piiRedactionApplied: + type: string + moderationApplied: + type: string + queueName: + type: string + consumerGroup: + type: string + messageId: + type: string + eventType: + type: string + notificationUrl: + type: string + queueRegion: + type: string + sandboxSessionId: + type: string + sandboxName: + type: string + workflowRunId: + type: string + workflowName: + type: string + workflowStatus: + type: string + stepRunId: + type: string + workflowStepName: + type: string + workflowEventType: + type: string + region: + type: string + specVersion: + type: string + contentType: + type: string + rewriteDestinationHostname: + type: string + externalRewriteTargetHost: + type: string + externalRewriteTargetPath: + type: string + commitSha: + type: string + reviewConclusion: + type: string + pullRequestNumber: + type: string + repositoryName: + type: string + repositoryOwner: + type: string + reviewStatus: + type: string + pullRequestState: + type: string + triggeringTag: + type: string + redirectLocation: + type: string + microfrontendsResponseReason: + type: string + microfrontendsMatchedPath: + type: string + microfrontendsDefaultAppDeploymentId: + type: string + microfrontendsDefaultAppProjectId: + type: string + service: + type: string + isPrefetchRequest: + type: string + spendReportGroupBy: + type: string + spendReportDatePart: + type: string + providerAttemptCanonicalSlug: + type: string + providerAttemptCredentialType: + type: string + providerAttemptSuccess: + type: string + providerAttemptStatusCode: + type: string + providerAttemptTimeout: + type: string + providerAttemptIsFinal: + type: string + providerAttemptNumber: + type: string + providerAttemptTotalInRequest: + type: string + generationId: + type: string + sessionId: + type: string + contentCaptureStatus: + type: string + contentCaptureInputs: + type: string + contentCaptureOutputs: + type: string + transcriptStatus: + type: string + transcriptInputs: + type: string + transcriptOutputs: + type: string + providerAttemptError: + type: string + providerAttemptSafetyIdentifier: + type: string + providerAttemptDevSafetyIdentifier: + type: string + providerAttemptRegion: + type: string + providerAttemptModelIndex: + type: string + toolCallType: + type: string + toolCallProvider: + type: string + toolCallSuccess: + type: string + toolCallErrorType: + type: string + toolCallStatusCode: + type: string + environmentId: + type: string + billableRegion: + type: string + direction: + type: string + networkTenancy: + type: string + trafficSource: + type: string + networkId: + type: string + privatelinkEndpointId: + type: string + privatelinkDnsName: + type: string + privatelinkIpAddress: + type: string + timestamp: + type: string + format: date-time + type: object + required: + - timestamp + - aiGatewayModelId + - aiModel + - aiModelType + - aiProvider + - appName + - asnId + - asnName + - attributes + - attributionEventName + - attributionTarget + - authMethod + - billableRegion + - blobOperationLevel + - blobOperationType + - botCategory + - botCategoryLegacy + - botCheckResult + - botName + - botVerified + - browserName + - cacheApi + - cacheCreation1hInputTokensCurrency + - cacheCreationInputTokensCurrency + - cacheHitLevel + - cacheHitState + - cacheHostname + - cacheOperation + - cachePath + - cacheReason + - cacheResult + - cacheTags + - cachedInputTokensCurrency + - cause + - clientIp + - clientIpCountry + - clientJa4Digest + - clientUserAgent + - codingAgent + - commitSha + - consumerGroup + - contentCaptureInputs + - contentCaptureOutputs + - contentCaptureStatus + - contentType + - costCurrency + - country + - dataCacheRegion + - deepAnalysisCheck + - deploymentId + - deviceType + - direction + - edgeNetworkRegion + - edgeType + - entryId + - entryItemId + - entryName + - entryRevalidateSeconds + - environment + - environmentId + - errorCode + - errorMessage + - eventData + - eventName + - eventType + - externalRewriteTargetHost + - externalRewriteTargetPath + - fetchIndex + - fetchType + - flagClientName + - flagEvaluationReason + - flagKey + - flagVariant + - flags + - functionDispatcher + - functionRegion + - functionStartType + - gatewayCostCurrency + - generationId + - hipaaRequested + - httpAccept + - httpStatus + - imageSource + - imageTransformationRegion + - inferenceEndpointSlug + - inferenceGeoRegion + - inferenceProviderRegion + - inferenceScope + - isAdditionalRequest + - isByok + - isPrefetchRequest + - isPrivateModel + - isRequestZdr + - isStreaming + - isrAction + - isrCacheRegion + - keyId + - keyName + - marketCostCurrency + - messageId + - metricName + - microfrontendsDefaultAppDeploymentId + - microfrontendsDefaultAppProjectId + - microfrontendsMatchedPath + - microfrontendsResponseReason + - middlewareAction + - middlewareActionTarget + - moderationApplied + - networkId + - networkTenancy + - notificationUrl + - optimizedFormatMimeType + - optimizedQuality + - optimizedWidthPixels + - originHostname + - originPath + - originRoute + - osName + - pathType + - pathTypeVariant + - piiRedactionApplied + - pprState + - privatelinkDnsName + - privatelinkEndpointId + - privatelinkIpAddress + - projectId + - projectName + - provider + - providerAttemptCanonicalSlug + - providerAttemptCredentialType + - providerAttemptDevSafetyIdentifier + - providerAttemptError + - providerAttemptIsFinal + - providerAttemptModelIndex + - providerAttemptNumber + - providerAttemptRegion + - providerAttemptSafetyIdentifier + - providerAttemptStatusCode + - providerAttemptSuccess + - providerAttemptTimeout + - providerAttemptTotalInRequest + - pullRequestNumber + - pullRequestState + - queueName + - queueRegion + - quotaEntityId + - quotaEntityType + - quotaRequested + - reason + - redirectLocation + - referrerHostname + - referrerUrl + - region + - reportingProjectId + - reportingProjectName + - repositoryName + - repositoryOwner + - requestApi + - requestExtension + - requestHostname + - requestId + - requestMethod + - requestPath + - requestResolvedIp + - requestedInferenceRegion + - reviewConclusion + - reviewStatus + - rewriteDestinationHostname + - route + - ruleCategory + - runtime + - sandboxName + - sandboxSessionId + - sdkKeyEnvironment + - sdkKeyId + - servedSpeed + - serverActionName + - service + - sessionId + - skewProtection + - source + - sourceImage + - sourceImageHash + - sourceImageHostname + - sourceImagePathname + - specVersion + - spendAttribution + - spendReportDatePart + - spendReportGroupBy + - stepRunId + - storeId + - storeName + - surchargeCostCurrency + - tagName + - toolCallErrorType + - toolCallProvider + - toolCallStatusCode + - toolCallSuccess + - toolCallType + - trafficSource + - transcriptInputs + - transcriptOutputs + - transcriptStatus + - triggeringTag + - utmCampaign + - utmContent + - utmMedium + - utmSource + - utmTerm + - vdcOperationOrigin + - videoAspectRatio + - videoResolution + - virtualModelKind + - virtualModelSlug + - visitorId + - wafAction + - wafRuleId + - workflowEventType + - workflowName + - workflowRunId + - workflowStatus + - workflowStepName + additionalProperties: + nullable: true + type: number + type: array + required: + - data + - query + - version + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project identifier or the project name + in: query + required: true + schema: + description: The project identifier or the project name + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + type: string + - name: by + description: |- + Up to two dimensions used to break down results. + + At most one time granularity is allowed: hour, day, week, month, year. + + Other dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName. + + JSON dimensions: flags, eventData. Used bare, they break down results by key, for example flags returns one group per flag name. With a key, they break down results by that key's value, for example eventData/plan. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag'. + in: query + required: true + schema: + description: |- + Up to two dimensions used to break down results. + + At most one time granularity is allowed: hour, day, week, month, year. + + Other dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName. + + JSON dimensions: flags, eventData. Used bare, they break down results by key, for example flags returns one group per flag name. With a key, they break down results by that key's value, for example eventData/plan. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag'. + example: + - day + - eventName + type: array + minItems: 1 + maxItems: 2 + uniqueItems: true + items: + type: string + anyOf: + - enum: + - hour + - day + - week + - month + - year + - country + - deviceType + - environment + - requestPath + - referrerHostname + - osName + - browserName + - route + - utmSource + - utmMedium + - utmCampaign + - utmContent + - utmTerm + - eventName + - flags + - eventData + - pattern: ^(flags|eventData)(/([0-9A-Za-z_]+|'([^']|'')*'))+$ + errorMessage: '`by` items should be equal to one of the allowed values "hour, day, week, month, year, country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName, flags, eventData", or a JSON dimension key such as "flags/, eventData/"' + - name: since + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + in: query + required: true + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + example: '2024-09-01T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: until + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + in: query + required: true + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + example: '2024-09-08T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: limit + description: Number of distinct results, default to 10. Other results are grouped into "Others" group. + in: query + required: false + schema: + description: Number of distinct results, default to 10. Other results are grouped into "Others" group. + default: 10 + example: 3 + type: integer + minimum: 1 + maximum: 100 + - name: filter + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. By default, filters for production environment only. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName. + + JSON dimensions filtered by key: flags/, eventData/, for example eventData/plan eq 'pro'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + in: query + required: false + schema: + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. By default, filters for production environment only. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName. + + JSON dimensions filtered by key: flags/, eventData/, for example eventData/plan eq 'pro'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + example: eventData/plan eq 'pro' + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/query/web-analytics/visits/count: + get: + description: Counts the number of page views on a project (production only), since Web Analytics was enabled. Results can be filtered on supported dimensions. + operationId: countPageviews + security: + - bearerToken: [] + summary: Counts page views + tags: + - web-analytics + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + type: number + query: + properties: + since: + type: string + until: + type: string + filter: + type: string + required: + - since + - until + type: object + data: + properties: + projectId: + type: string + country: + type: string + deviceType: + type: string + environment: + type: string + requestPath: + type: string + referrerHostname: + type: string + osName: + type: string + browserName: + type: string + route: + type: string + utmSource: + type: string + utmMedium: + type: string + utmCampaign: + type: string + utmContent: + type: string + utmTerm: + type: string + flags: + type: string + errorMessage: + type: string + entryRevalidateSeconds: + type: string + projectName: + type: string + deploymentId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + requestHostname: + type: string + requestResolvedIp: + type: string + requestMethod: + type: string + requestExtension: + type: string + requestId: + type: string + requestApi: + type: string + referrerUrl: + type: string + serverActionName: + type: string + httpStatus: + type: string + errorCode: + type: string + source: + type: string + edgeType: + type: string + reason: + type: string + edgeNetworkRegion: + type: string + functionRegion: + type: string + imageTransformationRegion: + type: string + dataCacheRegion: + type: string + cause: + type: string + runtime: + type: string + provider: + type: string + isrCacheRegion: + type: string + isrAction: + type: string + cacheResult: + type: string + cacheOperation: + type: string + cacheHostname: + type: string + cachePath: + type: string + cacheHitState: + type: string + cacheHitLevel: + type: string + cacheApi: + type: string + cacheReason: + type: string + pprState: + type: string + clientIp: + type: string + clientIpCountry: + type: string + clientUserAgent: + type: string + httpAccept: + type: string + clientJa4Digest: + type: string + asnId: + type: string + asnName: + type: string + botName: + type: string + botCategory: + type: string + botCategoryLegacy: + type: string + botVerified: + type: string + botCheckResult: + type: string + deepAnalysisCheck: + type: string + wafAction: + type: string + wafRuleId: + type: string + ruleCategory: + type: string + skewProtection: + type: string + functionStartType: + type: string + functionDispatcher: + type: string + isAdditionalRequest: + type: string + originHostname: + type: string + originPath: + type: string + originRoute: + type: string + fetchType: + type: string + fetchIndex: + type: string + imageSource: + type: string + sourceImage: + type: string + sourceImagePathname: + type: string + sourceImageHostname: + type: string + sourceImageHash: + type: string + optimizedQuality: + type: string + optimizedWidthPixels: + type: string + optimizedFormatMimeType: + type: string + vdcOperationOrigin: + type: string + entryName: + type: string + entryId: + type: string + entryItemId: + type: string + tagName: + type: string + cacheTags: + type: string + storeId: + type: string + storeName: + type: string + blobOperationType: + type: string + blobOperationLevel: + type: string + visitorId: + type: string + eventName: + type: string + attributionTarget: + type: string + attributionEventName: + type: string + metricName: + type: string + attributes: + type: string + flagKey: + type: string + flagVariant: + type: string + flagEvaluationReason: + type: string + flagClientName: + type: string + sdkKeyId: + type: string + sdkKeyEnvironment: + type: string + reportingProjectId: + type: string + reportingProjectName: + type: string + eventData: + type: string + middlewareAction: + type: string + middlewareActionTarget: + type: string + aiModel: + type: string + aiGatewayModelId: + type: string + aiProvider: + type: string + aiModelType: + type: string + servedSpeed: + type: string + virtualModelSlug: + type: string + virtualModelKind: + type: string + inferenceEndpointSlug: + type: string + inferenceScope: + type: string + inferenceGeoRegion: + type: string + inferenceProviderRegion: + type: string + requestedInferenceRegion: + type: string + costCurrency: + type: string + marketCostCurrency: + type: string + cachedInputTokensCurrency: + type: string + cacheCreationInputTokensCurrency: + type: string + cacheCreation1hInputTokensCurrency: + type: string + surchargeCostCurrency: + type: string + gatewayCostCurrency: + type: string + keyId: + type: string + keyName: + type: string + authMethod: + type: string + appName: + type: string + codingAgent: + type: string + isByok: + type: string + spendAttribution: + type: string + isPrivateModel: + type: string + isStreaming: + type: string + isRequestZdr: + type: string + hipaaRequested: + type: string + quotaRequested: + type: string + quotaEntityId: + type: string + quotaEntityType: + type: string + videoResolution: + type: string + videoAspectRatio: + type: string + piiRedactionApplied: + type: string + moderationApplied: + type: string + queueName: + type: string + consumerGroup: + type: string + messageId: + type: string + eventType: + type: string + notificationUrl: + type: string + queueRegion: + type: string + sandboxSessionId: + type: string + sandboxName: + type: string + workflowRunId: + type: string + workflowName: + type: string + workflowStatus: + type: string + stepRunId: + type: string + workflowStepName: + type: string + workflowEventType: + type: string + region: + type: string + specVersion: + type: string + contentType: + type: string + rewriteDestinationHostname: + type: string + externalRewriteTargetHost: + type: string + externalRewriteTargetPath: + type: string + commitSha: + type: string + reviewConclusion: + type: string + pullRequestNumber: + type: string + repositoryName: + type: string + repositoryOwner: + type: string + reviewStatus: + type: string + pullRequestState: + type: string + triggeringTag: + type: string + redirectLocation: + type: string + microfrontendsResponseReason: + type: string + microfrontendsMatchedPath: + type: string + microfrontendsDefaultAppDeploymentId: + type: string + microfrontendsDefaultAppProjectId: + type: string + service: + type: string + isPrefetchRequest: + type: string + spendReportGroupBy: + type: string + spendReportDatePart: + type: string + providerAttemptCanonicalSlug: + type: string + providerAttemptCredentialType: + type: string + providerAttemptSuccess: + type: string + providerAttemptStatusCode: + type: string + providerAttemptTimeout: + type: string + providerAttemptIsFinal: + type: string + providerAttemptNumber: + type: string + providerAttemptTotalInRequest: + type: string + generationId: + type: string + sessionId: + type: string + contentCaptureStatus: + type: string + contentCaptureInputs: + type: string + contentCaptureOutputs: + type: string + transcriptStatus: + type: string + transcriptInputs: + type: string + transcriptOutputs: + type: string + providerAttemptError: + type: string + providerAttemptSafetyIdentifier: + type: string + providerAttemptDevSafetyIdentifier: + type: string + providerAttemptRegion: + type: string + providerAttemptModelIndex: + type: string + toolCallType: + type: string + toolCallProvider: + type: string + toolCallSuccess: + type: string + toolCallErrorType: + type: string + toolCallStatusCode: + type: string + environmentId: + type: string + billableRegion: + type: string + direction: + type: string + networkTenancy: + type: string + trafficSource: + type: string + networkId: + type: string + privatelinkEndpointId: + type: string + privatelinkDnsName: + type: string + privatelinkIpAddress: + type: string + visitors: + type: number + pageviews: + type: number + required: + - aiGatewayModelId + - aiModel + - aiModelType + - aiProvider + - appName + - asnId + - asnName + - attributes + - attributionEventName + - attributionTarget + - authMethod + - billableRegion + - blobOperationLevel + - blobOperationType + - botCategory + - botCategoryLegacy + - botCheckResult + - botName + - botVerified + - browserName + - cacheApi + - cacheCreation1hInputTokensCurrency + - cacheCreationInputTokensCurrency + - cacheHitLevel + - cacheHitState + - cacheHostname + - cacheOperation + - cachePath + - cacheReason + - cacheResult + - cacheTags + - cachedInputTokensCurrency + - cause + - clientIp + - clientIpCountry + - clientJa4Digest + - clientUserAgent + - codingAgent + - commitSha + - consumerGroup + - contentCaptureInputs + - contentCaptureOutputs + - contentCaptureStatus + - contentType + - costCurrency + - country + - dataCacheRegion + - deepAnalysisCheck + - deploymentId + - deviceType + - direction + - edgeNetworkRegion + - edgeType + - entryId + - entryItemId + - entryName + - entryRevalidateSeconds + - environment + - environmentId + - errorCode + - errorMessage + - eventData + - eventName + - eventType + - externalRewriteTargetHost + - externalRewriteTargetPath + - fetchIndex + - fetchType + - flagClientName + - flagEvaluationReason + - flagKey + - flagVariant + - flags + - functionDispatcher + - functionRegion + - functionStartType + - gatewayCostCurrency + - generationId + - hipaaRequested + - httpAccept + - httpStatus + - imageSource + - imageTransformationRegion + - inferenceEndpointSlug + - inferenceGeoRegion + - inferenceProviderRegion + - inferenceScope + - isAdditionalRequest + - isByok + - isPrefetchRequest + - isPrivateModel + - isRequestZdr + - isStreaming + - isrAction + - isrCacheRegion + - keyId + - keyName + - marketCostCurrency + - messageId + - metricName + - microfrontendsDefaultAppDeploymentId + - microfrontendsDefaultAppProjectId + - microfrontendsMatchedPath + - microfrontendsResponseReason + - middlewareAction + - middlewareActionTarget + - moderationApplied + - networkId + - networkTenancy + - notificationUrl + - optimizedFormatMimeType + - optimizedQuality + - optimizedWidthPixels + - originHostname + - originPath + - originRoute + - osName + - pathType + - pathTypeVariant + - piiRedactionApplied + - pprState + - privatelinkDnsName + - privatelinkEndpointId + - privatelinkIpAddress + - projectId + - projectName + - provider + - providerAttemptCanonicalSlug + - providerAttemptCredentialType + - providerAttemptDevSafetyIdentifier + - providerAttemptError + - providerAttemptIsFinal + - providerAttemptModelIndex + - providerAttemptNumber + - providerAttemptRegion + - providerAttemptSafetyIdentifier + - providerAttemptStatusCode + - providerAttemptSuccess + - providerAttemptTimeout + - providerAttemptTotalInRequest + - pullRequestNumber + - pullRequestState + - queueName + - queueRegion + - quotaEntityId + - quotaEntityType + - quotaRequested + - reason + - redirectLocation + - referrerHostname + - referrerUrl + - region + - reportingProjectId + - reportingProjectName + - repositoryName + - repositoryOwner + - requestApi + - requestExtension + - requestHostname + - requestId + - requestMethod + - requestPath + - requestResolvedIp + - requestedInferenceRegion + - reviewConclusion + - reviewStatus + - rewriteDestinationHostname + - route + - ruleCategory + - runtime + - sandboxName + - sandboxSessionId + - sdkKeyEnvironment + - sdkKeyId + - servedSpeed + - serverActionName + - service + - sessionId + - skewProtection + - source + - sourceImage + - sourceImageHash + - sourceImageHostname + - sourceImagePathname + - specVersion + - spendAttribution + - spendReportDatePart + - spendReportGroupBy + - stepRunId + - storeId + - storeName + - surchargeCostCurrency + - tagName + - toolCallErrorType + - toolCallProvider + - toolCallStatusCode + - toolCallSuccess + - toolCallType + - trafficSource + - transcriptInputs + - transcriptOutputs + - transcriptStatus + - triggeringTag + - utmCampaign + - utmContent + - utmMedium + - utmSource + - utmTerm + - vdcOperationOrigin + - videoAspectRatio + - videoResolution + - virtualModelKind + - virtualModelSlug + - visitorId + - wafAction + - wafRuleId + - workflowEventType + - workflowName + - workflowRunId + - workflowStatus + - workflowStepName + - pageviews + - visitors + type: object + additionalProperties: + nullable: true + type: number + required: + - data + - query + - version + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project identifier or the project name + in: query + required: true + schema: + description: The project identifier or the project name + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + type: string + - name: since + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + in: query + required: false + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + example: '2024-09-01T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: until + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + in: query + required: false + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + example: '2024-09-08T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: filter + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm. + + JSON dimensions filtered by key: flags/, for example flags/beta_banner eq 'true'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + in: query + required: false + schema: + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm. + + JSON dimensions filtered by key: flags/, for example flags/beta_banner eq 'true'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + example: route eq '/home' + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/query/web-analytics/events/count: + get: + description: Counts the number of custom events on a project (production only), since Web Analytics was enabled. Results can be filtered on supported dimensions. + operationId: countEvents + security: + - bearerToken: [] + summary: Counts custom events + tags: + - web-analytics + responses: + '200': + description: '' + content: + application/json: + schema: + properties: + version: + type: number + query: + properties: + since: + type: string + until: + type: string + filter: + type: string + required: + - since + - until + type: object + data: + properties: + projectId: + type: string + country: + type: string + deviceType: + type: string + environment: + type: string + requestPath: + type: string + referrerHostname: + type: string + osName: + type: string + browserName: + type: string + route: + type: string + utmSource: + type: string + utmMedium: + type: string + utmCampaign: + type: string + utmContent: + type: string + utmTerm: + type: string + flags: + type: string + errorMessage: + type: string + entryRevalidateSeconds: + type: string + projectName: + type: string + deploymentId: + type: string + pathType: + type: string + pathTypeVariant: + type: string + requestHostname: + type: string + requestResolvedIp: + type: string + requestMethod: + type: string + requestExtension: + type: string + requestId: + type: string + requestApi: + type: string + referrerUrl: + type: string + serverActionName: + type: string + httpStatus: + type: string + errorCode: + type: string + source: + type: string + edgeType: + type: string + reason: + type: string + edgeNetworkRegion: + type: string + functionRegion: + type: string + imageTransformationRegion: + type: string + dataCacheRegion: + type: string + cause: + type: string + runtime: + type: string + provider: + type: string + isrCacheRegion: + type: string + isrAction: + type: string + cacheResult: + type: string + cacheOperation: + type: string + cacheHostname: + type: string + cachePath: + type: string + cacheHitState: + type: string + cacheHitLevel: + type: string + cacheApi: + type: string + cacheReason: + type: string + pprState: + type: string + clientIp: + type: string + clientIpCountry: + type: string + clientUserAgent: + type: string + httpAccept: + type: string + clientJa4Digest: + type: string + asnId: + type: string + asnName: + type: string + botName: + type: string + botCategory: + type: string + botCategoryLegacy: + type: string + botVerified: + type: string + botCheckResult: + type: string + deepAnalysisCheck: + type: string + wafAction: + type: string + wafRuleId: + type: string + ruleCategory: + type: string + skewProtection: + type: string + functionStartType: + type: string + functionDispatcher: + type: string + isAdditionalRequest: + type: string + originHostname: + type: string + originPath: + type: string + originRoute: + type: string + fetchType: + type: string + fetchIndex: + type: string + imageSource: + type: string + sourceImage: + type: string + sourceImagePathname: + type: string + sourceImageHostname: + type: string + sourceImageHash: + type: string + optimizedQuality: + type: string + optimizedWidthPixels: + type: string + optimizedFormatMimeType: + type: string + vdcOperationOrigin: + type: string + entryName: + type: string + entryId: + type: string + entryItemId: + type: string + tagName: + type: string + cacheTags: + type: string + storeId: + type: string + storeName: + type: string + blobOperationType: + type: string + blobOperationLevel: + type: string + visitorId: + type: string + eventName: + type: string + attributionTarget: + type: string + attributionEventName: + type: string + metricName: + type: string + attributes: + type: string + flagKey: + type: string + flagVariant: + type: string + flagEvaluationReason: + type: string + flagClientName: + type: string + sdkKeyId: + type: string + sdkKeyEnvironment: + type: string + reportingProjectId: + type: string + reportingProjectName: + type: string + eventData: + type: string + middlewareAction: + type: string + middlewareActionTarget: + type: string + aiModel: + type: string + aiGatewayModelId: + type: string + aiProvider: + type: string + aiModelType: + type: string + servedSpeed: + type: string + virtualModelSlug: + type: string + virtualModelKind: + type: string + inferenceEndpointSlug: + type: string + inferenceScope: + type: string + inferenceGeoRegion: + type: string + inferenceProviderRegion: + type: string + requestedInferenceRegion: + type: string + costCurrency: + type: string + marketCostCurrency: + type: string + cachedInputTokensCurrency: + type: string + cacheCreationInputTokensCurrency: + type: string + cacheCreation1hInputTokensCurrency: + type: string + surchargeCostCurrency: + type: string + gatewayCostCurrency: + type: string + keyId: + type: string + keyName: + type: string + authMethod: + type: string + appName: + type: string + codingAgent: + type: string + isByok: + type: string + spendAttribution: + type: string + isPrivateModel: + type: string + isStreaming: + type: string + isRequestZdr: + type: string + hipaaRequested: + type: string + quotaRequested: + type: string + quotaEntityId: + type: string + quotaEntityType: + type: string + videoResolution: + type: string + videoAspectRatio: + type: string + piiRedactionApplied: + type: string + moderationApplied: + type: string + queueName: + type: string + consumerGroup: + type: string + messageId: + type: string + eventType: + type: string + notificationUrl: + type: string + queueRegion: + type: string + sandboxSessionId: + type: string + sandboxName: + type: string + workflowRunId: + type: string + workflowName: + type: string + workflowStatus: + type: string + stepRunId: + type: string + workflowStepName: + type: string + workflowEventType: + type: string + region: + type: string + specVersion: + type: string + contentType: + type: string + rewriteDestinationHostname: + type: string + externalRewriteTargetHost: + type: string + externalRewriteTargetPath: + type: string + commitSha: + type: string + reviewConclusion: + type: string + pullRequestNumber: + type: string + repositoryName: + type: string + repositoryOwner: + type: string + reviewStatus: + type: string + pullRequestState: + type: string + triggeringTag: + type: string + redirectLocation: + type: string + microfrontendsResponseReason: + type: string + microfrontendsMatchedPath: + type: string + microfrontendsDefaultAppDeploymentId: + type: string + microfrontendsDefaultAppProjectId: + type: string + service: + type: string + isPrefetchRequest: + type: string + spendReportGroupBy: + type: string + spendReportDatePart: + type: string + providerAttemptCanonicalSlug: + type: string + providerAttemptCredentialType: + type: string + providerAttemptSuccess: + type: string + providerAttemptStatusCode: + type: string + providerAttemptTimeout: + type: string + providerAttemptIsFinal: + type: string + providerAttemptNumber: + type: string + providerAttemptTotalInRequest: + type: string + generationId: + type: string + sessionId: + type: string + contentCaptureStatus: + type: string + contentCaptureInputs: + type: string + contentCaptureOutputs: + type: string + transcriptStatus: + type: string + transcriptInputs: + type: string + transcriptOutputs: + type: string + providerAttemptError: + type: string + providerAttemptSafetyIdentifier: + type: string + providerAttemptDevSafetyIdentifier: + type: string + providerAttemptRegion: + type: string + providerAttemptModelIndex: + type: string + toolCallType: + type: string + toolCallProvider: + type: string + toolCallSuccess: + type: string + toolCallErrorType: + type: string + toolCallStatusCode: + type: string + environmentId: + type: string + billableRegion: + type: string + direction: + type: string + networkTenancy: + type: string + trafficSource: + type: string + networkId: + type: string + privatelinkEndpointId: + type: string + privatelinkDnsName: + type: string + privatelinkIpAddress: + type: string + visitors: + type: number + count: + type: number + required: + - aiGatewayModelId + - aiModel + - aiModelType + - aiProvider + - appName + - asnId + - asnName + - attributes + - attributionEventName + - attributionTarget + - authMethod + - billableRegion + - blobOperationLevel + - blobOperationType + - botCategory + - botCategoryLegacy + - botCheckResult + - botName + - botVerified + - browserName + - cacheApi + - cacheCreation1hInputTokensCurrency + - cacheCreationInputTokensCurrency + - cacheHitLevel + - cacheHitState + - cacheHostname + - cacheOperation + - cachePath + - cacheReason + - cacheResult + - cacheTags + - cachedInputTokensCurrency + - cause + - clientIp + - clientIpCountry + - clientJa4Digest + - clientUserAgent + - codingAgent + - commitSha + - consumerGroup + - contentCaptureInputs + - contentCaptureOutputs + - contentCaptureStatus + - contentType + - costCurrency + - country + - dataCacheRegion + - deepAnalysisCheck + - deploymentId + - deviceType + - direction + - edgeNetworkRegion + - edgeType + - entryId + - entryItemId + - entryName + - entryRevalidateSeconds + - environment + - environmentId + - errorCode + - errorMessage + - eventData + - eventName + - eventType + - externalRewriteTargetHost + - externalRewriteTargetPath + - fetchIndex + - fetchType + - flagClientName + - flagEvaluationReason + - flagKey + - flagVariant + - flags + - functionDispatcher + - functionRegion + - functionStartType + - gatewayCostCurrency + - generationId + - hipaaRequested + - httpAccept + - httpStatus + - imageSource + - imageTransformationRegion + - inferenceEndpointSlug + - inferenceGeoRegion + - inferenceProviderRegion + - inferenceScope + - isAdditionalRequest + - isByok + - isPrefetchRequest + - isPrivateModel + - isRequestZdr + - isStreaming + - isrAction + - isrCacheRegion + - keyId + - keyName + - marketCostCurrency + - messageId + - metricName + - microfrontendsDefaultAppDeploymentId + - microfrontendsDefaultAppProjectId + - microfrontendsMatchedPath + - microfrontendsResponseReason + - middlewareAction + - middlewareActionTarget + - moderationApplied + - networkId + - networkTenancy + - notificationUrl + - optimizedFormatMimeType + - optimizedQuality + - optimizedWidthPixels + - originHostname + - originPath + - originRoute + - osName + - pathType + - pathTypeVariant + - piiRedactionApplied + - pprState + - privatelinkDnsName + - privatelinkEndpointId + - privatelinkIpAddress + - projectId + - projectName + - provider + - providerAttemptCanonicalSlug + - providerAttemptCredentialType + - providerAttemptDevSafetyIdentifier + - providerAttemptError + - providerAttemptIsFinal + - providerAttemptModelIndex + - providerAttemptNumber + - providerAttemptRegion + - providerAttemptSafetyIdentifier + - providerAttemptStatusCode + - providerAttemptSuccess + - providerAttemptTimeout + - providerAttemptTotalInRequest + - pullRequestNumber + - pullRequestState + - queueName + - queueRegion + - quotaEntityId + - quotaEntityType + - quotaRequested + - reason + - redirectLocation + - referrerHostname + - referrerUrl + - region + - reportingProjectId + - reportingProjectName + - repositoryName + - repositoryOwner + - requestApi + - requestExtension + - requestHostname + - requestId + - requestMethod + - requestPath + - requestResolvedIp + - requestedInferenceRegion + - reviewConclusion + - reviewStatus + - rewriteDestinationHostname + - route + - ruleCategory + - runtime + - sandboxName + - sandboxSessionId + - sdkKeyEnvironment + - sdkKeyId + - servedSpeed + - serverActionName + - service + - sessionId + - skewProtection + - source + - sourceImage + - sourceImageHash + - sourceImageHostname + - sourceImagePathname + - specVersion + - spendAttribution + - spendReportDatePart + - spendReportGroupBy + - stepRunId + - storeId + - storeName + - surchargeCostCurrency + - tagName + - toolCallErrorType + - toolCallProvider + - toolCallStatusCode + - toolCallSuccess + - toolCallType + - trafficSource + - transcriptInputs + - transcriptOutputs + - transcriptStatus + - triggeringTag + - utmCampaign + - utmContent + - utmMedium + - utmSource + - utmTerm + - vdcOperationOrigin + - videoAspectRatio + - videoResolution + - virtualModelKind + - virtualModelSlug + - visitorId + - wafAction + - wafRuleId + - workflowEventType + - workflowName + - workflowRunId + - workflowStatus + - workflowStepName + - count + - visitors + type: object + additionalProperties: + nullable: true + type: number + required: + - data + - query + - version + type: object + '400': + description: One of the provided values in the request query is invalid. + '401': + description: The request is not authorized. + '402': + description: '' + '403': + description: You do not have permission to access this resource. + '404': + description: '' + '410': + description: '' + parameters: + - name: projectId + description: The project identifier or the project name + in: query + required: true + schema: + description: The project identifier or the project name + example: prj_XLKmu1DyR1eY7zq8UgeRKbA7yVLA + type: string + - name: since + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + in: query + required: false + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data from (including) this date and time. + Will be adjusted according to the desired time granularity. + example: '2024-09-01T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: until + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + in: query + required: false + schema: + description: |- + Timestamp in milliseconds, or a valid Date string. + + Selects data until (including) this date. + Will be adjusted according to the desired time granularity. + example: '2024-09-08T00:00:00.000Z' + anyOf: + - type: number + - type: string + - name: filter + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName. + + JSON dimensions filtered by key: flags/, eventData/, for example eventData/plan eq 'pro'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + in: query + required: false + schema: + description: |- + OData-compliant filter. Encode the value when sending it in a URL. + + Allows filtering on one or multiple dimensions. + + Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName. + + JSON dimensions filtered by key: flags/, eventData/, for example eventData/plan eq 'pro'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'. + + Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser. + example: eventName eq 'signup' + type: string + - description: The Team identifier to perform the request on behalf of. + in: query + name: teamId + schema: + type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + x-stackQL-resources: + speed_insights: + id: vercel.web_analytics.speed_insights + name: speed_insights + title: Speed Insights + methods: + toggle: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1speed-insights~1toggle/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + web_insights: + id: vercel.web_analytics.web_insights + name: web_insights + title: Web Insights + methods: + toggle: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1web~1insights~1toggle/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] + pageview_aggregates: + id: vercel.web_analytics.pageview_aggregates + name: pageview_aggregates + title: Pageview Aggregates + methods: + list: + operation: + $ref: '#/paths/~1v1~1query~1web-analytics~1visits~1aggregate/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/pageview_aggregates/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + event_aggregates: + id: vercel.web_analytics.event_aggregates + name: event_aggregates + title: Event Aggregates + methods: + list: + operation: + $ref: '#/paths/~1v1~1query~1web-analytics~1events~1aggregate/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + config: + queryParamPushdown: + top: + paramName: limit + maxValue: 100 + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_aggregates/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + pageview_counts: + id: vercel.web_analytics.pageview_counts + name: pageview_counts + title: Pageview Counts + methods: + list: + operation: + $ref: '#/paths/~1v1~1query~1web-analytics~1visits~1count/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/pageview_counts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + event_counts: + id: vercel.web_analytics.event_counts + name: event_counts + title: Event Counts + methods: + list: + operation: + $ref: '#/paths/~1v1~1query~1web-analytics~1events~1count/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/event_counts/methods/list' + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.vercel.com diff --git a/providers/src/vercel/v00.00.00000/services/webhooks.yaml b/providers/src/vercel/v00.00.00000/services/webhooks.yaml index 20772dfd..166615e2 100644 --- a/providers/src/vercel/v00.00.00000/services/webhooks.yaml +++ b/providers/src/vercel/v00.00.00000/services/webhooks.yaml @@ -1,69 +1,8 @@ openapi: 3.0.3 -servers: - - url: 'https://api.vercel.com' - description: Production API info: - contact: - email: support@vercel.com - name: Vercel Support - url: 'https://vercel.com/support' + title: webhooks API + description: vercel webhooks API version: 0.0.1 - title: Vercel API - webhooks - description: webhooks -components: - schemas: {} - responses: {} - securitySchemes: - bearerToken: - type: http - description: Default authentication mechanism - scheme: bearer - oauth2: - type: oauth2 - flows: - authorizationCode: - authorizationUrl: 'https://api.vercel.com/oauth/authorize' - tokenUrl: 'https://api.vercel.com/oauth/access_token' - scopes: {} - x-stackQL-resources: - webhooks: - id: vercel.webhooks.webhooks - name: webhooks - title: Webhooks - methods: - create_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks/post' - response: - mediaType: application/json - openAPIDocKey: '200' - get_webhooks: - operation: - $ref: '#/paths/~1v1~1webhooks/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1{id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_webhook: - operation: - $ref: '#/paths/~1v1~1webhooks~1{id}/delete' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/get_webhook' - - $ref: '#/components/x-stackQL-resources/webhooks/methods/get_webhooks' - insert: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/create_webhook' - update: [] - delete: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete_webhook' paths: /v1/webhooks: post: @@ -84,38 +23,199 @@ paths: secret: type: string description: The webhook secret used to sign the payload + alertRuleIds: + items: + type: string + type: array events: items: type: string enum: + - ai-gateway.auto-reload.limit-reached + - ai-gateway.balance-depleted + - alerts.triggered + - botid.anomaly - budget.reached - - domain.created + - comment.created + - comment.deleted + - comment.mentioned + - comment.reaction-added + - comment.reaction-removed + - comment.resolved + - comment.unresolved + - comment.updated + - deployment + - deployment-canceled + - deployment-check-rerequested + - deployment-checks-completed + - deployment-error + - deployment-prepared + - deployment-ready + - deployment.blocked + - deployment.build-requested + - deployment.canceled + - deployment.check-rerequested + - deployment.checkrun.cancel + - deployment.checkrun.start + - deployment.checks.failed + - deployment.checks.succeeded + - deployment.cleanup - deployment.created - deployment.error - - deployment.canceled - - deployment.succeeded + - deployment.integration.action.cancel + - deployment.integration.action.cleanup + - deployment.integration.action.start + - deployment.promoted - deployment.ready - - deployment.check-rerequested + - deployment.rollback + - deployment.succeeded + - domain-created + - domain.auto-renew.changed + - domain.certificate.add + - domain.certificate.add.failed + - domain.certificate.deleted + - domain.certificate.renew + - domain.certificate.renew.failed + - domain.created + - domain.dns.records.changed + - domain.renewal + - domain.renewal.failed + - domain.transfer-in.completed + - domain.transfer-in.failed + - domain.transfer-in.started + - edge-config.created + - edge-config.deleted + - edge-config.items.updated + - firewall.attack + - firewall.custom-rule-anomaly + - firewall.system-rule-anomaly + - flag.created + - flag.deleted + - flag.segment.created + - flag.segment.deleted + - flag.segment.updated + - flag.updated + - function.archival-required + - function.removal-required + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed - integration-configuration.permission-upgraded - integration-configuration.removed - integration-configuration.scope-change-confirmed - - project.created - - project.removed - - deployment-checks-completed - - deployment-ready - - deployment-prepared - - deployment-error - - deployment-check-rerequested - - deployment-canceled + - integration-configuration.transferred + - integration-resource.project-connected + - integration-resource.project-disconnected + - marketplace.invoice.created + - marketplace.invoice.notpaid + - marketplace.invoice.overdue + - marketplace.invoice.paid + - marketplace.invoice.refunded + - marketplace.member.changed + - message.created + - message.deleted + - message.mentioned + - message.reaction-added + - message.reaction-removed + - message.updated + - observability.anomaly + - observability.anomaly-error + - observability.error-anomaly + - observability.usage-anomaly - project-created - project-removed - - domain-created - - deployment - - integration-configuration-permission-updated - - integration-configuration-removed - - integration-configuration-scope-change-confirmed - description: The webhooks events + - project.created + - project.domain.created + - project.domain.deleted + - project.domain.moved + - project.domain.unverified + - project.domain.updated + - project.domain.verified + - project.env-variable.created + - project.env-variable.deleted + - project.env-variable.updated + - project.removed + - project.renamed + - project.rolling-release.aborted + - project.rolling-release.approved + - project.rolling-release.completed + - project.rolling-release.started + - test-webhook + - thread.resolved + - thread.unresolved example: deployment.created + description: The webhooks events + x-speakeasy-enums: + budget.reached: BudgetReached + domain.created: DomainCreated + domain.dns.records.changed: DomainDnsRecordsChanged + domain.transfer-in.started: DomainTransferInStarted + domain.transfer-in.completed: DomainTransferInCompleted + domain.transfer-in.failed: DomainTransferInFailed + domain.certificate.add: DomainCertificateAdd + domain.certificate.add.failed: DomainCertificateAddFailed + domain.certificate.renew: DomainCertificateRenew + domain.certificate.renew.failed: DomainCertificateRenewFailed + domain.certificate.deleted: DomainCertificateDeleted + domain.renewal: DomainRenewal + domain.renewal.failed: DomainRenewalFailed + domain.auto-renew.changed: DomainAutoRenewChanged + deployment.created: DeploymentCreated + deployment.cleanup: DeploymentCleanup + deployment.error: DeploymentError + deployment.canceled: DeploymentCanceled + deployment.succeeded: DeploymentSucceeded + deployment.ready: DeploymentReady + deployment.check-rerequested: DeploymentCheckRerequested + deployment.promoted: DeploymentPromoted + deployment.integration.action.start: DeploymentIntegrationActionStart + deployment.integration.action.cancel: DeploymentIntegrationActionCancel + deployment.integration.action.cleanup: DeploymentIntegrationActionCleanup + deployment.checkrun.start: DeploymentCheckrunStart + deployment.checkrun.cancel: DeploymentCheckrunCancel + edge-config.created: EdgeConfigCreated + edge-config.deleted: EdgeConfigDeleted + edge-config.items.updated: EdgeConfigItemsUpdated + firewall.attack: FirewallAttack + integration-configuration.permission-upgraded: IntegrationConfigurationPermissionUpgraded + integration-configuration.removed: IntegrationConfigurationRemoved + integration-configuration.scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmed + integration-resource.project-connected: IntegrationResourceProjectConnected + integration-resource.project-disconnected: IntegrationResourceProjectDisconnected + project.created: ProjectCreated + project.removed: ProjectRemoved + project.domain.created: ProjectDomainCreated + project.domain.updated: ProjectDomainUpdated + project.domain.deleted: ProjectDomainDeleted + project.domain.verified: ProjectDomainVerified + project.domain.unverified: ProjectDomainUnverified + project.domain.moved: ProjectDomainMoved + project.rolling-release.started: ProjectRollingReleaseStarted + project.rolling-release.aborted: ProjectRollingReleaseAborted + project.rolling-release.completed: ProjectRollingReleaseCompleted + project.rolling-release.approved: ProjectRollingReleaseApproved + deployment.checks.failed: DeploymentChecksFailed + deployment.checks.succeeded: DeploymentChecksSucceeded + deployment-checks-completed: DeploymentChecksCompleted + deployment-ready: DeploymentReadyHyphen + deployment-prepared: DeploymentPreparedHyphen + deployment-error: DeploymentErrorHyphen + deployment-check-rerequested: DeploymentCheckRerequestedHyphen + deployment-canceled: DeploymentCanceledHyphen + project-created: ProjectCreatedHyphen + project-removed: ProjectRemovedHyphen + domain-created: DomainCreatedHyphen + deployment: Deployment + integration-configuration-permission-updated: IntegrationConfigurationPermissionUpdatedHyphen + integration-configuration-removed: IntegrationConfigurationRemovedHyphen + integration-configuration-scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmedHyphen + marketplace.invoice.created: MarketplaceInvoiceCreated + marketplace.invoice.paid: MarketplaceInvoicePaid + marketplace.invoice.notpaid: MarketplaceInvoiceNotpaid + marketplace.invoice.refunded: MarketplaceInvoiceRefunded + observability.anomaly: ObservabilityAnomaly + observability.anomaly-error: ObservabilityAnomalyError + test-webhook: TestWebhook type: array description: The webhooks events example: deployment.created @@ -126,7 +226,7 @@ paths: url: type: string description: A string with the URL of the webhook - example: 'https://my-webhook.com' + example: https://my-webhook.com ownerId: type: string description: The unique ID of the team the webhook belongs to @@ -147,27 +247,35 @@ paths: example: - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB required: - - secret + - createdAt - events - id - - url - ownerId - - createdAt + - secret - updatedAt + - url type: object '400': description: One of the provided values in the request body is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug requestBody: content: application/json: @@ -180,7 +288,7 @@ paths: properties: url: format: uri - pattern: '^https?://' + pattern: ^https?:// type: string events: minItems: 1 @@ -190,17 +298,67 @@ paths: enum: - budget.reached - domain.created + - domain.dns.records.changed + - domain.transfer-in.started + - domain.transfer-in.completed + - domain.transfer-in.failed + - domain.certificate.add + - domain.certificate.add.failed + - domain.certificate.renew + - domain.certificate.renew.failed + - domain.certificate.deleted + - domain.renewal + - domain.renewal.failed + - domain.auto-renew.changed - deployment.created + - deployment.build-requested + - deployment.cleanup - deployment.error + - deployment.blocked - deployment.canceled - deployment.succeeded - deployment.ready - deployment.check-rerequested + - deployment.promoted + - deployment.rollback + - deployment.integration.action.start + - deployment.integration.action.cancel + - deployment.integration.action.cleanup + - deployment.checkrun.start + - deployment.checkrun.cancel + - edge-config.created + - edge-config.deleted + - edge-config.items.updated + - firewall.attack + - firewall.system-rule-anomaly + - firewall.custom-rule-anomaly + - function.archival-required + - function.removal-required + - alerts.triggered - integration-configuration.permission-upgraded - integration-configuration.removed - integration-configuration.scope-change-confirmed + - integration-configuration.transferred + - integration-resource.project-connected + - integration-resource.project-disconnected - project.created - project.removed + - project.renamed + - project.env-variable.created + - project.env-variable.updated + - project.env-variable.deleted + - project.domain.created + - project.domain.updated + - project.domain.deleted + - project.domain.verified + - project.domain.unverified + - project.domain.moved + - project.rolling-release.started + - project.rolling-release.aborted + - project.rolling-release.completed + - project.rolling-release.approved + - deployment.checks.failed + - deployment.checks.succeeded - deployment-checks-completed - deployment-ready - deployment-prepared @@ -214,13 +372,121 @@ paths: - integration-configuration-permission-updated - integration-configuration-removed - integration-configuration-scope-change-confirmed + - marketplace.member.changed + - marketplace.invoice.created + - marketplace.invoice.paid + - marketplace.invoice.notpaid + - marketplace.invoice.overdue + - marketplace.invoice.refunded + - ai-gateway.balance-depleted + - ai-gateway.auto-reload.limit-reached + - observability.anomaly + - observability.anomaly-error + - observability.usage-anomaly + - observability.error-anomaly + - botid.anomaly + - flag.created + - flag.updated + - flag.deleted + - flag.segment.created + - flag.segment.updated + - flag.segment.deleted + - test-webhook + - message.created + - message.updated + - message.deleted + - thread.resolved + - thread.unresolved + - message.reaction-added + - message.reaction-removed + - message.mentioned + - comment.created + - comment.updated + - comment.deleted + - comment.resolved + - comment.unresolved + - comment.reaction-added + - comment.reaction-removed + - comment.mentioned + x-speakeasy-enums: + budget.reached: BudgetReached + domain.created: DomainCreated + domain.dns.records.changed: DomainDnsRecordsChanged + domain.transfer-in.started: DomainTransferInStarted + domain.transfer-in.completed: DomainTransferInCompleted + domain.transfer-in.failed: DomainTransferInFailed + domain.certificate.add: DomainCertificateAdd + domain.certificate.add.failed: DomainCertificateAddFailed + domain.certificate.renew: DomainCertificateRenew + domain.certificate.renew.failed: DomainCertificateRenewFailed + domain.certificate.deleted: DomainCertificateDeleted + domain.renewal: DomainRenewal + domain.renewal.failed: DomainRenewalFailed + domain.auto-renew.changed: DomainAutoRenewChanged + deployment.created: DeploymentCreated + deployment.cleanup: DeploymentCleanup + deployment.error: DeploymentError + deployment.canceled: DeploymentCanceled + deployment.succeeded: DeploymentSucceeded + deployment.ready: DeploymentReady + deployment.check-rerequested: DeploymentCheckRerequested + deployment.promoted: DeploymentPromoted + deployment.integration.action.start: DeploymentIntegrationActionStart + deployment.integration.action.cancel: DeploymentIntegrationActionCancel + deployment.integration.action.cleanup: DeploymentIntegrationActionCleanup + deployment.checkrun.start: DeploymentCheckrunStart + deployment.checkrun.cancel: DeploymentCheckrunCancel + edge-config.created: EdgeConfigCreated + edge-config.deleted: EdgeConfigDeleted + edge-config.items.updated: EdgeConfigItemsUpdated + firewall.attack: FirewallAttack + integration-configuration.permission-upgraded: IntegrationConfigurationPermissionUpgraded + integration-configuration.removed: IntegrationConfigurationRemoved + integration-configuration.scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmed + integration-resource.project-connected: IntegrationResourceProjectConnected + integration-resource.project-disconnected: IntegrationResourceProjectDisconnected + project.created: ProjectCreated + project.removed: ProjectRemoved + project.domain.created: ProjectDomainCreated + project.domain.updated: ProjectDomainUpdated + project.domain.deleted: ProjectDomainDeleted + project.domain.verified: ProjectDomainVerified + project.domain.unverified: ProjectDomainUnverified + project.domain.moved: ProjectDomainMoved + project.rolling-release.started: ProjectRollingReleaseStarted + project.rolling-release.aborted: ProjectRollingReleaseAborted + project.rolling-release.completed: ProjectRollingReleaseCompleted + project.rolling-release.approved: ProjectRollingReleaseApproved + deployment.checks.failed: DeploymentChecksFailed + deployment.checks.succeeded: DeploymentChecksSucceeded + deployment-checks-completed: DeploymentChecksCompleted + deployment-ready: DeploymentReadyHyphen + deployment-prepared: DeploymentPreparedHyphen + deployment-error: DeploymentErrorHyphen + deployment-check-rerequested: DeploymentCheckRerequestedHyphen + deployment-canceled: DeploymentCanceledHyphen + project-created: ProjectCreatedHyphen + project-removed: ProjectRemovedHyphen + domain-created: DomainCreatedHyphen + deployment: Deployment + integration-configuration-permission-updated: IntegrationConfigurationPermissionUpdatedHyphen + integration-configuration-removed: IntegrationConfigurationRemovedHyphen + integration-configuration-scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmedHyphen + marketplace.invoice.created: MarketplaceInvoiceCreated + marketplace.invoice.paid: MarketplaceInvoicePaid + marketplace.invoice.notpaid: MarketplaceInvoiceNotpaid + marketplace.invoice.refunded: MarketplaceInvoiceRefunded + observability.anomaly: ObservabilityAnomaly + observability.anomaly-error: ObservabilityAnomalyError + test-webhook: TestWebhook projectIds: minItems: 1 maxItems: 50 type: array items: - pattern: '^[a-zA-z0-9_]+$' + pattern: ^[a-zA-z0-9_]+$ type: string + required: true get: description: Get a list of webhooks operationId: getWebhooks @@ -235,234 +501,34 @@ paths: content: application/json: schema: - oneOf: - - items: - properties: - projectsMetadata: - nullable: true - items: - properties: - id: - type: string - name: - type: string - framework: - nullable: true - type: string - enum: - - blitzjs - - nextjs - - gatsby - - remix - - astro - - hexo - - eleventy - - docusaurus-2 - - docusaurus - - preact - - solidstart - - dojo - - ember - - vue - - scully - - ionic-angular - - angular - - polymer - - svelte - - sveltekit - - sveltekit-1 - - ionic-react - - create-react-app - - gridsome - - umijs - - sapper - - saber - - stencil - - nuxtjs - - redwoodjs - - hugo - - jekyll - - brunch - - middleman - - zola - - hydrogen - - vite - - vitepress - - vuepress - - parcel - - sanity - - storybook - latestDeployment: - type: string - required: - - id - - name - type: object - type: array - events: - items: - type: string - enum: - - budget.reached - - domain.created - - deployment.created - - deployment.error - - deployment.canceled - - deployment.succeeded - - deployment.ready - - deployment.check-rerequested - - integration-configuration.permission-upgraded - - integration-configuration.removed - - integration-configuration.scope-change-confirmed - - project.created - - project.removed - - deployment-checks-completed - - deployment-ready - - deployment-prepared - - deployment-error - - deployment-check-rerequested - - deployment-canceled - - project-created - - project-removed - - domain-created - - deployment - - integration-configuration-permission-updated - - integration-configuration-removed - - integration-configuration-scope-change-confirmed - description: The webhooks events - example: deployment.created - type: array - description: The webhooks events - example: deployment.created - id: - type: string - description: The webhook id - example: account_hook_GflD6EYyo7F4ViYS - url: - type: string - description: A string with the URL of the webhook - example: 'https://my-webhook.com' - ownerId: - type: string - description: The unique ID of the team the webhook belongs to - example: ZspSRT4ljIEEmMHgoDwKWDei - createdAt: - type: number - description: A number containing the date when the webhook was created in in milliseconds - example: 1567024758130 - updatedAt: - type: number - description: A number containing the date when the webhook was updated in in milliseconds - example: 1567024758130 - projectIds: - items: - type: string - type: array - description: The ID of the projects the webhook is associated with - example: - - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB - required: - - projectsMetadata - - events - - id - - url - - ownerId - - createdAt - - updatedAt - type: object - type: array - - items: - properties: - events: - items: - type: string - enum: - - budget.reached - - domain.created - - deployment.created - - deployment.error - - deployment.canceled - - deployment.succeeded - - deployment.ready - - deployment.check-rerequested - - integration-configuration.permission-upgraded - - integration-configuration.removed - - integration-configuration.scope-change-confirmed - - project.created - - project.removed - - deployment-checks-completed - - deployment-ready - - deployment-prepared - - deployment-error - - deployment-check-rerequested - - deployment-canceled - - project-created - - project-removed - - domain-created - - deployment - - integration-configuration-permission-updated - - integration-configuration-removed - - integration-configuration-scope-change-confirmed - description: The webhooks events - example: deployment.created - type: array - description: The webhooks events - example: deployment.created - id: - type: string - description: The webhook id - example: account_hook_GflD6EYyo7F4ViYS - url: - type: string - description: A string with the URL of the webhook - example: 'https://my-webhook.com' - ownerId: - type: string - description: The unique ID of the team the webhook belongs to - example: ZspSRT4ljIEEmMHgoDwKWDei - createdAt: - type: number - description: A number containing the date when the webhook was created in in milliseconds - example: 1567024758130 - updatedAt: - type: number - description: A number containing the date when the webhook was updated in in milliseconds - example: 1567024758130 - projectIds: - items: - type: string - type: array - description: The ID of the projects the webhook is associated with - example: - - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB - required: - - events - - id - - url - - ownerId - - createdAt - - updatedAt - type: object - type: array + $ref: '#/components/schemas/GetWebhooksResponse' '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - name: projectId in: query schema: - pattern: '^[a-zA-z0-9_]+$' + pattern: ^[a-zA-z0-9_]+$ type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string - '/v1/webhooks/{id}': + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug + /v1/webhooks/{id}: get: description: Get a webhook operationId: getWebhook @@ -478,38 +544,199 @@ paths: application/json: schema: properties: + alertRuleIds: + items: + type: string + type: array events: items: type: string enum: + - ai-gateway.auto-reload.limit-reached + - ai-gateway.balance-depleted + - alerts.triggered + - botid.anomaly - budget.reached - - domain.created + - comment.created + - comment.deleted + - comment.mentioned + - comment.reaction-added + - comment.reaction-removed + - comment.resolved + - comment.unresolved + - comment.updated + - deployment + - deployment-canceled + - deployment-check-rerequested + - deployment-checks-completed + - deployment-error + - deployment-prepared + - deployment-ready + - deployment.blocked + - deployment.build-requested + - deployment.canceled + - deployment.check-rerequested + - deployment.checkrun.cancel + - deployment.checkrun.start + - deployment.checks.failed + - deployment.checks.succeeded + - deployment.cleanup - deployment.created - deployment.error - - deployment.canceled - - deployment.succeeded + - deployment.integration.action.cancel + - deployment.integration.action.cleanup + - deployment.integration.action.start + - deployment.promoted - deployment.ready - - deployment.check-rerequested + - deployment.rollback + - deployment.succeeded + - domain-created + - domain.auto-renew.changed + - domain.certificate.add + - domain.certificate.add.failed + - domain.certificate.deleted + - domain.certificate.renew + - domain.certificate.renew.failed + - domain.created + - domain.dns.records.changed + - domain.renewal + - domain.renewal.failed + - domain.transfer-in.completed + - domain.transfer-in.failed + - domain.transfer-in.started + - edge-config.created + - edge-config.deleted + - edge-config.items.updated + - firewall.attack + - firewall.custom-rule-anomaly + - firewall.system-rule-anomaly + - flag.created + - flag.deleted + - flag.segment.created + - flag.segment.deleted + - flag.segment.updated + - flag.updated + - function.archival-required + - function.removal-required + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed - integration-configuration.permission-upgraded - integration-configuration.removed - integration-configuration.scope-change-confirmed - - project.created - - project.removed - - deployment-checks-completed - - deployment-ready - - deployment-prepared - - deployment-error - - deployment-check-rerequested - - deployment-canceled + - integration-configuration.transferred + - integration-resource.project-connected + - integration-resource.project-disconnected + - marketplace.invoice.created + - marketplace.invoice.notpaid + - marketplace.invoice.overdue + - marketplace.invoice.paid + - marketplace.invoice.refunded + - marketplace.member.changed + - message.created + - message.deleted + - message.mentioned + - message.reaction-added + - message.reaction-removed + - message.updated + - observability.anomaly + - observability.anomaly-error + - observability.error-anomaly + - observability.usage-anomaly - project-created - project-removed - - domain-created - - deployment - - integration-configuration-permission-updated - - integration-configuration-removed - - integration-configuration-scope-change-confirmed - description: The webhooks events + - project.created + - project.domain.created + - project.domain.deleted + - project.domain.moved + - project.domain.unverified + - project.domain.updated + - project.domain.verified + - project.env-variable.created + - project.env-variable.deleted + - project.env-variable.updated + - project.removed + - project.renamed + - project.rolling-release.aborted + - project.rolling-release.approved + - project.rolling-release.completed + - project.rolling-release.started + - test-webhook + - thread.resolved + - thread.unresolved example: deployment.created + description: The webhooks events + x-speakeasy-enums: + budget.reached: BudgetReached + domain.created: DomainCreated + domain.dns.records.changed: DomainDnsRecordsChanged + domain.transfer-in.started: DomainTransferInStarted + domain.transfer-in.completed: DomainTransferInCompleted + domain.transfer-in.failed: DomainTransferInFailed + domain.certificate.add: DomainCertificateAdd + domain.certificate.add.failed: DomainCertificateAddFailed + domain.certificate.renew: DomainCertificateRenew + domain.certificate.renew.failed: DomainCertificateRenewFailed + domain.certificate.deleted: DomainCertificateDeleted + domain.renewal: DomainRenewal + domain.renewal.failed: DomainRenewalFailed + domain.auto-renew.changed: DomainAutoRenewChanged + deployment.created: DeploymentCreated + deployment.cleanup: DeploymentCleanup + deployment.error: DeploymentError + deployment.canceled: DeploymentCanceled + deployment.succeeded: DeploymentSucceeded + deployment.ready: DeploymentReady + deployment.check-rerequested: DeploymentCheckRerequested + deployment.promoted: DeploymentPromoted + deployment.integration.action.start: DeploymentIntegrationActionStart + deployment.integration.action.cancel: DeploymentIntegrationActionCancel + deployment.integration.action.cleanup: DeploymentIntegrationActionCleanup + deployment.checkrun.start: DeploymentCheckrunStart + deployment.checkrun.cancel: DeploymentCheckrunCancel + edge-config.created: EdgeConfigCreated + edge-config.deleted: EdgeConfigDeleted + edge-config.items.updated: EdgeConfigItemsUpdated + firewall.attack: FirewallAttack + integration-configuration.permission-upgraded: IntegrationConfigurationPermissionUpgraded + integration-configuration.removed: IntegrationConfigurationRemoved + integration-configuration.scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmed + integration-resource.project-connected: IntegrationResourceProjectConnected + integration-resource.project-disconnected: IntegrationResourceProjectDisconnected + project.created: ProjectCreated + project.removed: ProjectRemoved + project.domain.created: ProjectDomainCreated + project.domain.updated: ProjectDomainUpdated + project.domain.deleted: ProjectDomainDeleted + project.domain.verified: ProjectDomainVerified + project.domain.unverified: ProjectDomainUnverified + project.domain.moved: ProjectDomainMoved + project.rolling-release.started: ProjectRollingReleaseStarted + project.rolling-release.aborted: ProjectRollingReleaseAborted + project.rolling-release.completed: ProjectRollingReleaseCompleted + project.rolling-release.approved: ProjectRollingReleaseApproved + deployment.checks.failed: DeploymentChecksFailed + deployment.checks.succeeded: DeploymentChecksSucceeded + deployment-checks-completed: DeploymentChecksCompleted + deployment-ready: DeploymentReadyHyphen + deployment-prepared: DeploymentPreparedHyphen + deployment-error: DeploymentErrorHyphen + deployment-check-rerequested: DeploymentCheckRerequestedHyphen + deployment-canceled: DeploymentCanceledHyphen + project-created: ProjectCreatedHyphen + project-removed: ProjectRemovedHyphen + domain-created: DomainCreatedHyphen + deployment: Deployment + integration-configuration-permission-updated: IntegrationConfigurationPermissionUpdatedHyphen + integration-configuration-removed: IntegrationConfigurationRemovedHyphen + integration-configuration-scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmedHyphen + marketplace.invoice.created: MarketplaceInvoiceCreated + marketplace.invoice.paid: MarketplaceInvoicePaid + marketplace.invoice.notpaid: MarketplaceInvoiceNotpaid + marketplace.invoice.refunded: MarketplaceInvoiceRefunded + observability.anomaly: ObservabilityAnomaly + observability.anomaly-error: ObservabilityAnomalyError + test-webhook: TestWebhook type: array description: The webhooks events example: deployment.created @@ -520,7 +747,7 @@ paths: url: type: string description: A string with the URL of the webhook - example: 'https://my-webhook.com' + example: https://my-webhook.com ownerId: type: string description: The unique ID of the team the webhook belongs to @@ -541,31 +768,39 @@ paths: example: - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB required: + - createdAt - events - id - - url - ownerId - - createdAt - updatedAt + - url type: object '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - name: id in: path required: true schema: type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug delete: description: Deletes a webhook operationId: deleteWebhook @@ -580,18 +815,423 @@ paths: '400': description: One of the provided values in the request query is invalid. '401': - description: '' + description: The request is not authorized. '403': description: You do not have permission to access this resource. + '410': + description: '' parameters: - name: id in: path required: true schema: type: string - - description: The Team identifier or slug to perform the request on behalf of. + - description: The Team identifier to perform the request on behalf of. in: query name: teamId - required: true schema: type: string + example: team_1a2b3c4d5e6f7g8h9i0j1k2l + - description: The Team slug to perform the request on behalf of. + in: query + name: slug + schema: + type: string + example: my-team-url-slug +components: + schemas: + GetWebhooksResponse: + type: object + properties: + webhooks: + type: array + items: + properties: + projectsMetadata: + nullable: true + items: + properties: + id: + type: string + name: + type: string + framework: + nullable: true + type: string + enum: + - actix-web + - angular + - ash + - astro + - axum + - blitzjs + - brunch + - bun + - container + - create-react-app + - django + - docusaurus + - docusaurus-2 + - dojo + - eleventy + - elysia + - ember + - eve + - express + - factory-eve + - fastapi + - fasthtml + - fastify + - flask + - gatsby + - go + - gridsome + - h3 + - hexo + - hono + - hugo + - hydrogen + - ionic-angular + - ionic-react + - jekyll + - koa + - mastra + - middleman + - nestjs + - nextjs + - nitro + - node + - nuxtjs + - parcel + - polymer + - preact + - python + - react-router + - redwoodjs + - remix + - ruby + - rust + - saber + - sanity + - sanity-v2 + - sapper + - scully + - services + - solidstart + - solidstart-1 + - stencil + - storybook + - svelte + - sveltekit + - sveltekit-1 + - tanstack-start + - tanstack-start-lovable + - umijs + - vite + - vitepress + - vue + - vuepress + - xmcp + - zola + - null + latestDeployment: + type: string + required: + - id + - name + type: object + type: array + alertRuleIds: + items: + type: string + type: array + events: + items: + type: string + enum: + - ai-gateway.auto-reload.limit-reached + - ai-gateway.balance-depleted + - alerts.triggered + - botid.anomaly + - budget.reached + - comment.created + - comment.deleted + - comment.mentioned + - comment.reaction-added + - comment.reaction-removed + - comment.resolved + - comment.unresolved + - comment.updated + - deployment + - deployment-canceled + - deployment-check-rerequested + - deployment-checks-completed + - deployment-error + - deployment-prepared + - deployment-ready + - deployment.blocked + - deployment.build-requested + - deployment.canceled + - deployment.check-rerequested + - deployment.checkrun.cancel + - deployment.checkrun.start + - deployment.checks.failed + - deployment.checks.succeeded + - deployment.cleanup + - deployment.created + - deployment.error + - deployment.integration.action.cancel + - deployment.integration.action.cleanup + - deployment.integration.action.start + - deployment.promoted + - deployment.ready + - deployment.rollback + - deployment.succeeded + - domain-created + - domain.auto-renew.changed + - domain.certificate.add + - domain.certificate.add.failed + - domain.certificate.deleted + - domain.certificate.renew + - domain.certificate.renew.failed + - domain.created + - domain.dns.records.changed + - domain.renewal + - domain.renewal.failed + - domain.transfer-in.completed + - domain.transfer-in.failed + - domain.transfer-in.started + - edge-config.created + - edge-config.deleted + - edge-config.items.updated + - firewall.attack + - firewall.custom-rule-anomaly + - firewall.system-rule-anomaly + - flag.created + - flag.deleted + - flag.segment.created + - flag.segment.deleted + - flag.segment.updated + - flag.updated + - function.archival-required + - function.removal-required + - integration-configuration-permission-updated + - integration-configuration-removed + - integration-configuration-scope-change-confirmed + - integration-configuration.permission-upgraded + - integration-configuration.removed + - integration-configuration.scope-change-confirmed + - integration-configuration.transferred + - integration-resource.project-connected + - integration-resource.project-disconnected + - marketplace.invoice.created + - marketplace.invoice.notpaid + - marketplace.invoice.overdue + - marketplace.invoice.paid + - marketplace.invoice.refunded + - marketplace.member.changed + - message.created + - message.deleted + - message.mentioned + - message.reaction-added + - message.reaction-removed + - message.updated + - observability.anomaly + - observability.anomaly-error + - observability.error-anomaly + - observability.usage-anomaly + - project-created + - project-removed + - project.created + - project.domain.created + - project.domain.deleted + - project.domain.moved + - project.domain.unverified + - project.domain.updated + - project.domain.verified + - project.env-variable.created + - project.env-variable.deleted + - project.env-variable.updated + - project.removed + - project.renamed + - project.rolling-release.aborted + - project.rolling-release.approved + - project.rolling-release.completed + - project.rolling-release.started + - test-webhook + - thread.resolved + - thread.unresolved + example: deployment.created + description: The webhooks events + x-speakeasy-enums: + budget.reached: BudgetReached + domain.created: DomainCreated + domain.dns.records.changed: DomainDnsRecordsChanged + domain.transfer-in.started: DomainTransferInStarted + domain.transfer-in.completed: DomainTransferInCompleted + domain.transfer-in.failed: DomainTransferInFailed + domain.certificate.add: DomainCertificateAdd + domain.certificate.add.failed: DomainCertificateAddFailed + domain.certificate.renew: DomainCertificateRenew + domain.certificate.renew.failed: DomainCertificateRenewFailed + domain.certificate.deleted: DomainCertificateDeleted + domain.renewal: DomainRenewal + domain.renewal.failed: DomainRenewalFailed + domain.auto-renew.changed: DomainAutoRenewChanged + deployment.created: DeploymentCreated + deployment.cleanup: DeploymentCleanup + deployment.error: DeploymentError + deployment.canceled: DeploymentCanceled + deployment.succeeded: DeploymentSucceeded + deployment.ready: DeploymentReady + deployment.check-rerequested: DeploymentCheckRerequested + deployment.promoted: DeploymentPromoted + deployment.integration.action.start: DeploymentIntegrationActionStart + deployment.integration.action.cancel: DeploymentIntegrationActionCancel + deployment.integration.action.cleanup: DeploymentIntegrationActionCleanup + deployment.checkrun.start: DeploymentCheckrunStart + deployment.checkrun.cancel: DeploymentCheckrunCancel + edge-config.created: EdgeConfigCreated + edge-config.deleted: EdgeConfigDeleted + edge-config.items.updated: EdgeConfigItemsUpdated + firewall.attack: FirewallAttack + integration-configuration.permission-upgraded: IntegrationConfigurationPermissionUpgraded + integration-configuration.removed: IntegrationConfigurationRemoved + integration-configuration.scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmed + integration-resource.project-connected: IntegrationResourceProjectConnected + integration-resource.project-disconnected: IntegrationResourceProjectDisconnected + project.created: ProjectCreated + project.removed: ProjectRemoved + project.domain.created: ProjectDomainCreated + project.domain.updated: ProjectDomainUpdated + project.domain.deleted: ProjectDomainDeleted + project.domain.verified: ProjectDomainVerified + project.domain.unverified: ProjectDomainUnverified + project.domain.moved: ProjectDomainMoved + project.rolling-release.started: ProjectRollingReleaseStarted + project.rolling-release.aborted: ProjectRollingReleaseAborted + project.rolling-release.completed: ProjectRollingReleaseCompleted + project.rolling-release.approved: ProjectRollingReleaseApproved + deployment.checks.failed: DeploymentChecksFailed + deployment.checks.succeeded: DeploymentChecksSucceeded + deployment-checks-completed: DeploymentChecksCompleted + deployment-ready: DeploymentReadyHyphen + deployment-prepared: DeploymentPreparedHyphen + deployment-error: DeploymentErrorHyphen + deployment-check-rerequested: DeploymentCheckRerequestedHyphen + deployment-canceled: DeploymentCanceledHyphen + project-created: ProjectCreatedHyphen + project-removed: ProjectRemovedHyphen + domain-created: DomainCreatedHyphen + deployment: Deployment + integration-configuration-permission-updated: IntegrationConfigurationPermissionUpdatedHyphen + integration-configuration-removed: IntegrationConfigurationRemovedHyphen + integration-configuration-scope-change-confirmed: IntegrationConfigurationScopeChangeConfirmedHyphen + marketplace.invoice.created: MarketplaceInvoiceCreated + marketplace.invoice.paid: MarketplaceInvoicePaid + marketplace.invoice.notpaid: MarketplaceInvoiceNotpaid + marketplace.invoice.refunded: MarketplaceInvoiceRefunded + observability.anomaly: ObservabilityAnomaly + observability.anomaly-error: ObservabilityAnomalyError + test-webhook: TestWebhook + type: array + description: The webhooks events + example: deployment.created + id: + type: string + description: The webhook id + example: account_hook_GflD6EYyo7F4ViYS + url: + type: string + description: A string with the URL of the webhook + example: https://my-webhook.com + ownerId: + type: string + description: The unique ID of the team the webhook belongs to + example: ZspSRT4ljIEEmMHgoDwKWDei + createdAt: + type: number + description: A number containing the date when the webhook was created in in milliseconds + example: 1567024758130 + updatedAt: + type: number + description: A number containing the date when the webhook was updated in in milliseconds + example: 1567024758130 + projectIds: + items: + type: string + type: array + description: The ID of the projects the webhook is associated with + example: + - prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB + required: + - createdAt + - events + - id + - ownerId + - projectsMetadata + - updatedAt + - url + type: object + x-stackQL-resources: + webhooks: + id: vercel.webhooks.webhooks + name: webhooks + title: Webhooks + methods: + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1v1~1webhooks/post' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + list: + operation: + $ref: '#/paths/~1v1~1webhooks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.webhooks + overrideMediaType: application/json + schema_override: + $ref: '#/components/schemas/GetWebhooksResponse' + transform: + body: |- + {{- $wrapped := printf "{\"webhooks\":%s}" . -}} + {{- $wrapped -}} + type: golang_template_text_v0.3.0 + request: + nativeCasing: camel + get: + operation: + $ref: '#/paths/~1v1~1webhooks~1{id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + request: + nativeCasing: camel + delete: + operation: + $ref: '#/paths/~1v1~1webhooks~1{id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + request: + nativeCasing: camel + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/get' + - $ref: '#/components/x-stackQL-resources/webhooks/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/create' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete' + replace: [] +servers: + - url: https://api.vercel.com